在游戏地图上选择100种情况的最佳方式(MFC,CPoint)

时间:2017-01-07 11:01:50

标签: c++ object if-statement mfc switch-statement

我正在创建一个MFC旧时游戏(类似于龙与地下城),我将我的角色的位置表示为CPoint对象。 地图介于(0,0)到(9,9)之间,10 x 10。 每个点都应该有自己不同的故事。 在每个点与发生的事情之间,每次最佳选择的方式是什么?

我想了几个选择:

一个。我会在每次玩家点击移动按钮时进行检查(例如,他选择向东移动),并做很多事情来检查该位置应该发生什么。

示例:

void CProjectDlg::OnBnClickedWest()
{
    (*Location).x--;
    if(Location->x ==0)
        CWest.EnableWindow(false);
    if(Location->x <9)
        CEast.EnableWindow(true);

    if(Location->x==0 && Location->y==0)
        do something;
    else
        if(Location->x==1 && Location->y==0)
           do something else...;
    etc...;
}

B中。我会做同样的事情,但在所有位置都有一个开关(如果可能的话)。 例如:

void CProjectDlg::OnBnClickedWest()
{
    (*Location).x--;
    if(Location->x ==0)
        CWest.EnableWindow(false);
    if(Location->x <9)
        CEast.EnableWindow(true);

    switch(Location)
       case ((0,0)):
         something;
}

请帮帮我

非常感谢!

1 个答案:

答案 0 :(得分:0)

最后答案是使用基于开关(这是最好的选择100个选项..感谢大家!