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

一、控制类的分析

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

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:

分析:对于电脑,其需要分析出走哪步。自然是枚举所有己方棋子,然后根据枚举的棋子选择一个方向下到某位置。而在这个问题的处理上,暂时实在想不到好的解决办法。所以先实现前面的先,到最后再去处理有关其智能移动的问题。

下一篇则实现其点击的一些效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值