华容道游戏的难点就2个
1.如何把棋子显示到指定的位置
2.如何移动
17 | 18 | 19 | 20 |
13 | 14 | 15 | 16 |
9 | 10 | 11 | 12 |
5 | 6 | 7 | 8 |
1 | 2 | 3 | 4 |
对于第一个问题我是 把棋盘 看成 一个 4*5的表 然后 从json里读取每张图片的坐标
编号1的表示曹操,value等于14 表示曹操这张图片的左下角在表里14这个格子的左下角
编号2的表示关羽,value等于10 表示关羽这张图片的左下角在表里10这个格子的左下角
编号3,4,5,6表示将军
编号7,8,9,10表示小兵
[
{"Num":1,"Value":14},
{"Num":2,"Value":10},
{"Num":3,"Value":5},
{"Num":4,"Value":8},
{"Num":5,"Value":13},
{"Num":6,"Value":16},
{"Num":7,"Value":1},
{"Num":8,"Value":4},
{"Num":9,"Value":6},
{"Num":10,"Value":7}
]
对于第二个问题就是单纯的碰撞检测了
在华容道的界面上,如果触摸的是空白的区域则无棋子移动,
如果触摸的是曹操,关羽,将军,小兵这些图片,则判断该图片是否可以移动
按 上,右,下,左 四个方向的顺序进行判断
如果 上 方向可以移动,则向上移动1单位,第二次在触摸这个对象的时候 ,按 上(上次移动方向) ,右,左, 下(上次移动方向的反方向)的方向进行判断是否可移动
类推 如果 下 方向可以移动,则向下移动1单位,第二次在触摸这个对象的时候 ,按 下(上次移动方向),左,右 , 上(上次移动方向的反方向)的方向进行判断是否可移动
这里碰撞判断 我写的是就判断他移动到的位置是不是 空白的,不是则就不能移动到这个位置
Cocos2dx2.2.3 win32
源码 http://yunpan.cn/cQqScHPTI5Mpu (提取码:6412)
apk
http://yunpan.cn/cQqSu7rq6NwST (提取码:0641)
原文链接:https://www.f2er.com/cocos2dx/342544.html