cocos2d-x笔记(十一)Lua开发飞机大战-5-让飞机动起来
2014-04-21 19:09
387 查看
再上一篇已经将飞机添加到了游戏,下一步就要让它动起来。主要要响应触摸事件。
在C++中通过重写ccTouchBegan()、ccTouchMoved()、ccTouchEnded()三个函数来响应触摸事件。在Lua只需将响应函数注册到分发器中就可以了。
1.先设置该图层可以触摸,然后注册响应函数onTouch
2.onTouch函数有3个参数,第一个是事件的类型(began、moved、ended),后面两个参数就不用多说了。
3.分别实现3个触摸事件
4.在onTouchMoved函数中出现了一个没见过的函数PlaneLayer.containsTouchLocation(x,y)。这个方法用来判断想触摸点是否在飞机的位置上。
在C++中通过重写ccTouchBegan()、ccTouchMoved()、ccTouchEnded()三个函数来响应触摸事件。在Lua只需将响应函数注册到分发器中就可以了。
1.先设置该图层可以触摸,然后注册响应函数onTouch
gameLayer:setTouchEnabled(true) gameLayer:registerScriptTouchHandler(onTouch)
2.onTouch函数有3个参数,第一个是事件的类型(began、moved、ended),后面两个参数就不用多说了。
function onTouch(eventType, x, y) if eventType == "began" then return onTouchBegan(x, y) elseif eventType == "moved" then return onTouchMoved(x, y) else return onTouchEnded(x, y) end end
3.分别实现3个触摸事件
local touchBeginPoint = nil function onTouchBegan(x, y) touchBeginPoint = {x = x, y = y} return true end function onTouchMoved(x, y) if PlaneLayer.alive() and PlaneLayer.containsTouchLocation(x,y) then --local offset = ccpSub(ccp(touchBeginPoint['x'],touchBeginPoint['y']),ccp(x,y)) --local toPoint = ccpAdd(ccp(PlaneLayer.getPlane():getPositionX(),PlaneLayer.getPlane():getPositionY()),offset) PlaneLayer.moveTo(x,y) end end function onTouchEnded(x, y) end
4.在onTouchMoved函数中出现了一个没见过的函数PlaneLayer.containsTouchLocation(x,y)。这个方法用来判断想触摸点是否在飞机的位置上。
function containsTouchLocation(x,y) local planeRect = plane:boundingBox() planeRect.origin.x = planeRect.origin.x - 15 planeRect.origin.y = planeRect.origin.y - 15 planeRect.size.width = planeRect.size.width + 30 planeRect.size.height = planeRect.size.height + 30 local b = planeRect:containsPoint(ccp(x,y)) return b end
相关文章推荐
- cocos2d-x笔记(九)Lua开发飞机大战-3-背景图的滚动
- cocos2d-x笔记(十)Lua开发飞机大战-4-创建主角
- cocos2d-x笔记(十一)Lua发展飞机战争-5- 让飞机动
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(1)
- Cocos2d-x 3.2 lua飞机大战开发实例(一)背景地图,飞机,子弹的封装,以及lua中定时器的使用
- quick-cocos2d-x从零开始游戏开发笔记(二):Lua语言基础学习
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 03.游戏界面 背景层实现滚动
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 06.游戏界面 主角飞机产生子弹
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(5)
- cocos2d-x(十一)Lua开发飞机大战-6-添加子弹
- cocos2d-x笔记(八)Lua开发飞机大战-2-游戏加载界面
- 【学习笔记】【Cocos2d-x Lua脚本开发】如何使用Lua脚本调用自定义类
- 【学习笔记】【Cocos2d-x Lua脚本开发】Lua中创建自定义类
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 04.游戏界面 主角飞机的添加
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 07.游戏界面 敌机的产生与移动
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 08.游戏界面 碰撞检测
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 01整体的游戏组成
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 09.游戏界面 道具
- 小小菜之Cocos2d-x游戏开发旅程——项目实例:飞机大战(3)
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 10.游戏界面 特效