您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x游戏实例 《简单棋》入门尝试(四) 控制棋子移动的一些分析

2013-02-13 02:51 495 查看

一、控制类的分析

现在基本的设置完成了。接下来就是需要自己写了。感觉有点无从下手。但是我想也许可以顺着下棋的过程来写。

1、下棋过程

玩家(代表红方),电脑(代表蓝方)。

(1)玩家:点击想移动的棋子,将其放置于可以放置的位置。

(2)电脑:根据玩家棋子的摆放位置,选择己方需要移动的棋子以及摆放的位置。

(3)玩家和电脑:判断输赢。(自然准备以棋子被吃光为条件)

2、功能分析与实现

2.1 玩家角度分析



图2-1
2.1 .1:

分析:我希望玩家能够在点击红色图片的时候图片放大,让玩家能够知道当前控制的棋子是哪颗。(效果如图2-1)

思路:新建一张放大了的红色图片精灵,放置于被点击的位置。

2.1.2:

分析:点击的红色图片放大之后,其也能提示该位置该对象下一步可达的位置。(效果如图2-1)

思路:程序初始化的时候,初始化四张“提示图片精灵”。当发现结点有可达临结点时,则将其移动到对应位置。

2.1.3:
分析:点击图2-1可达位置(黄色部分),其棋子移动到该可达位置。
思路:定义一个结构体,该结构体存储两次点击的数据。从而实现数据和图片的交换。结构体定义暂时如下:
/*存储点击的点的相关数据*/
typedef struct _TouchedInfo
{
int firstToucheLocation;	//第一次点击时在坐标数组中对应的位置(-1表示空白, 1-21表示对应的坐标下标点)
int currentActiveChessmanCount;	//当前活动的棋子数量,0或者1。当双数次有效点击自然为0,单数次有效点击自然为1。
int secondToucheLocation;	//第二次点击时的位置(-1表示点击空白,0表示点击当前活动的棋子,1-21表示点击活动棋子要跳达的位置)

_TouchedInfo()
{
firstToucheLocation = -1;
currentActiveChessmanCount = 0;
secondToucheLocation = -1;				//默认点击都是空白位置
}
};


2.2 电脑角度分析
2.2.1:
分析:对于电脑,其需要分析出走哪步。自然是枚举所有己方棋子,然后根据枚举的棋子选择一个方向下到某位置。而在这个问题的处理上,暂时实在想不到好的解决办法。所以先实现前面的先,到最后再去处理有关其智能移动的问题。
下一篇则实现其点击的一些效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐