Cocos2d-x制作跳棋第三步:棋子动作实现及AI算法思想

本文介绍了使用Cocos2d-x制作跳棋游戏时,如何实现棋子的移动和跳跃动作,以及AI算法的基本思想。通过封装棋子动作方法,利用2d-x的Action类进行移动和跳跃效果。同时,阐述了棋盘状态的保存和触摸事件的添加。最后探讨了跳棋AI的搜索策略,应用A*算法寻找最优路径。
摘要由CSDN通过智能技术生成

                 

           上周跟大家分享了Cocos2d-x跳棋制作如何建立工程和界面编写,今天来      跟大家分享一下如何实现棋子相关动作及AI思想。

           

          在跳棋中棋子有两种动作:移动、跳跃。


             在工程建立时我们便为棋子建立了类Chess,我们只需要在类中声明相应的动作方法并在方法中          对动作进行封装即可。


             棋子移动动作比较简单,在2d-x中有相应的Action实现。代码如下:

<span style="font-size:14px;">/****************
函数名:moveto
参数:x(移动目标的x坐标) y(移动目标的y坐标)
返回值:无
作用:将棋子移动到指定坐标
****************/
MoveTo* Chess::moveto(int x,int y)
{
	this->x = x;											//将x坐标存到Chess.x中
	this->y = y;											//将y坐标存到Chess.y中
	ActionInterval *moveto = MoveTo::create(0.3,Point(332+x*tmp,166 + 44.5*y*(sqrt(3)/2)));	        //定义MoveTo对象设置移动动作
	return moveto;														
}</span>
                      在移动方法实现中我们用到MoveTo来实现棋子的移动动作,并且在移动完成后将Chess的坐标          x、y更改。

             MoveTo中第一个参数表示动作完成时间,第二个参数为移动目标位置坐标。


             棋子跳跃动作的实现比较麻烦,我们先把跳跃动作分成两个部分,第一部分是棋子的跳起及落        下,第二部分是棋子移动到指定位置,这两部分是同时进行的,在这里我们用的Spawn对象,Spawn是        组合动作中的一种,它的参数中是动作对象表示参数中的动作对象时同时执行的。其次第一部分棋子跳        起和落下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值