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:
分析:对于电脑,其需要分析出走哪步。自然是枚举所有己方棋子,然后根据枚举的棋子选择一个方向下到某位置。而在这个问题的处理上,暂时实在想不到好的解决办法。所以先实现前面的先,到最后再去处理有关其智能移动的问题。
下一篇则实现其点击的一些效果。
相关文章推荐
- cocos2d-x游戏实例 《简单棋》入门尝试(五) 玩家控制效果的实现
- cocos2d-x游戏实例 《简单棋》入门尝试(六) 棋子吃子情况判定
- cocos2d-x游戏实例 《简单棋》入门尝试(三) 初始化棋子布局信息
- cocos2d-x游戏实例 《简单棋》入门尝试(一) 整体思路
- cocos2d-x游戏实例 《简单棋》入门尝试(二) 初始化程序界面
- cocos2d-x游戏实例(2)-主角根据输入移动
- Cocos2d-x游戏实例-《跑跑跑》制作教程(第五篇)——主角上下移动
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第五步--button控制主角Jump&Crouch
- iphone游戏开发之cocos2d ( 八 )使用加速计(重力感应)控制精灵移动UIAcceleration
- cocos2d-x游戏实例(11)-触屏主角移动轨迹
- cocos2d-x游戏实例(12)-实时拖动主角移动
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第五步--按钮控制主角Jump&Crouch
- cocos2d-x游戏实例(13)-简易摇杆控制主角
- cocos2d-x游戏开发系列教程-坦克大战游戏之虚拟手柄控制坦克移动
- cocos2d-x游戏开发系列教程-坦克大战游戏之虚拟手柄控制坦克移动
- cocos2d-x游戏实例(11)-触屏主角移动轨迹
- Cocos2d-JS 使用cocostudio创建游戏并用摇杆控制游戏实例
- cocos2d-x游戏实例(2)-主角根据输入移动
- cocos2d-x游戏实例(12)-实时拖动主角移动
- 【木头Cocos2d-x 013】游戏实例-《跑跑跑》制作教程(第五篇)——主角上下移动