65.9K
CodeProject 正在变化。 阅读更多。
Home

CMapEditor

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (9投票s)

2003年10月9日

2分钟阅读

viewsIcon

48743

downloadIcon

1236

一个简单高效的接口,用于使用多级数值矩阵。

引言

CMapEditor 是一个简单高效的接口,用于使用多级数值矩阵。它可以轻松地用于游戏或其他需要通用地图结构的程序。

函数

如何使用 CMapEditor

#include "CMapEditor.h"

在您的代码中包含 .h 文件。同时请记住,CMapEditor 需要您的机器上存在 <vector> 头文件。

要初始化地图,只需使用

 CMapEditor meEditor(WIDTH,HEIGHT,LEVELS);

CMapEditor *meEditor = new CMapEditor(WIDTH,HEIGHT,LEVELS);

要设置地图中的单元格值,请使用

 meEditor->SetMapValue(X,Y,LEVEL,VALUE);

您还可以使用高级操作,例如区域填充或类似拖动的功能

 meEditor->Fill(X,Y,LEVEL,REPLACE_VALUE,VALUE);

 meEditor->StartDrag(X,Y,LEVEL);
 meEditor->EndDrag(DX,DY,VALUE);

CMapEditor 还支持基本的撤销和重做操作。您可以通过调用来决定将要撤销的内容

 meEditor->NextUndo();

在执行其他操作之前。例如

 meEditor->NextUndo();
 meEditor->SetMapValue(X,Y,LEVEL,VALUE);
 eEditor->Fill(X,Y,LEVEL,REPLACE_VALUE,VALUE);
 ...

在这种情况下,SetMapValue()Fill() 的效果将一起撤销。要执行撤销和重做,只需使用

 meEditor->Undo();

 meEditor->Redo();

我为什么要编写这个类

实际上,这个类的目的是让我学习。而且我确实学到了。事实上,类编程以前是一种奇怪的思考方式,因此,我决定从基础开始,并开始学习它。好的,我已经掌握了基础知识,但是如果您对我的类编程方式有任何意见,请告诉我。其次,我想熟悉匈牙利命名法(我所有的其他项目都是一团糟),所以如果您对这方面也有意见,请告诉我。最后,我学会了如何使用向量,这我没有预料到(实际上,我甚至不知道它们是什么),而且它们似乎非常有用。我决定编写这个类的另一个原因是,我想为 CodeProject 贡献一些有用的东西。

历史

  • 最后更新 (2003年10月15日)
    • 我修复了一些内存泄漏问题。现在类的析构函数是正确的。
© . All rights reserved.