Quick Cocos2dx 与 EnterFrame事件
利用EnterFrame做出行走的效果,效果图如下:
具体操作:
1 给self多加一个bg1用作与bg无限循环换位
2 在AnotherScene:onEnter方法里面新增onEnterFrame的排成
3 写了一个简单的onEnterFrame方法用作每帧去更新
完整代码如下:
local AnotherScene = class("AnotherScene", function()
return display.newScene("AnotherScene")
end) function AnotherScene:ctor()
self.speed = ;
self.curBehaviorId = ;
self.layer = display.newLayer()
self:addChild(self.layer)
self.layer:setTouchEnabled(true)
self.behaviors = {"anim_walk","anim_eat","anim_placeladder","anim_idle","anim_ladderwalk","anim_laddereat","anim_death"};
self.bg = display.newSprite("battle.png",display.cx, display.cy)
self.bg1 = display.newSprite("battle.png",display.cx+self.bg:getContentSize().width, display.cy)
self.layer:addChild(self.bg)
self.layer:addChild(self.bg1)
end function AnotherScene:onTouch(event, x, y)
print("Touched at %d %d",x,y)
self.curBehaviorId = self.curBehaviorId + ;
if self.curBehaviorId > #self.behaviors then
self.curBehaviorId = ;
end
print("Now playing ", self.curBehaviorId , #self.behaviors, self.behaviors[self.curBehaviorId])
self.animation:play(self.behaviors[self.curBehaviorId])
end function AnotherScene:onEnterFrame(dt)
local tempX = self.bg:getPositionX();
local tempW = self.bg:getContentSize().width;
tempX = tempX - self.speed;
if tempX <= display.cx - tempW then
self.bg:setPositionX(display.cx + tempW)
else
self.bg:setPositionX(tempX)
end tempX = self.bg1:getPositionX();
tempW = self.bg1:getContentSize().width;
tempX = tempX - self.speed;
if tempX <= display.cx - tempW then
self.bg1:setPositionX(display.cx + tempW)
else
self.bg1:setPositionX(tempX)
end
end function AnotherScene:onEnter()
ui.newTTFLabel({text = "Yo! Yo! Check Out!", size = , align = ui.TEXT_ALIGN_CENTER})
:pos(display.cx, display.cy)
:addTo(self.layer) local manager = CCArmatureDataManager:sharedArmatureDataManager()
manager:addArmatureFileInfo("Zombie.png","Zombie.plist","Zombie.xml")
local zombie = CCNodeExtend.extend(CCArmature:create("Zombie_ladder"))
zombie:connectMovementEventSignal(function(__evtType, __moveId)
echoInfo("movement, evtType: %d, moveId: %s", __evtType, __moveId)
end)
self.animation = zombie:getAnimation()
self.animation:setAnimationScale(0.5)
self.animation:play("anim_walk")
zombie:setPosition(display.cx, display.cy)
zombie:setScaleX(-)
self.layer:addChild(zombie)
self.layer:addTouchEventListener(function(event,x,y)
return self:onTouch(event, x,y)
end)
self.layer:setTouchEnabled(true)
self:scheduleUpdate(function(dt)
self:onEnterFrame(dt)
end)
end
return AnotherScene
也可以去我的git里面下载源代码和资源:https://github.com/AdoBeatTheWorld/waytomobile
game003即为当前的项目,问我为啥没有把项目分出来,我只能说我.....很.....懒。
Quick Cocos2dx 与 EnterFrame事件的更多相关文章
- quick cocos2d-x 入门---井字棋
学习quick cocos2d-x 第二天 ,使用quick-x 做了一个井字棋游戏 . 我假设读者已经 http://wiki.quick-x.com/doku.php?id=zh_cn阅读了这个链 ...
- quick cocos2dx 3.x 配置win32工程
公司项目主体部分用c++,而ui部分用lua写,所以选择了用quick框架.项目先开发了ios/mac版,这两天试着配置其win32工程,遇到一些问题,记录一下(纯c++版本cocos2dx配置方法应 ...
- 【转载】Quick 中的触摸事件
原文地址 http://cn.cocos2d-x.org/article/index?type=quick_doc&url=/doc/cocos-docs-master/manual/fram ...
- cocos2d-x lua 触摸事件
cocos2d-x lua 触摸事件 version: cocos2d-x 3.6 1.监听 function GameLayer:onEnter() local eventDispatcher = ...
- Mac下搭建quick cocos2d-x编译环境
一. 我知道在你的电脑中一定已经安装好了Xcode(没有自己下载去吧),打开Xcode,开启"偏好设置"对话框(commond + ,).假设打开之后出现的是这种一个对话框,那么直 ...
- Quick Cocos2dx Http通讯
服务端:Python 通讯协议:Http 参考文章: 1 用python实现一个基本的http server服务器 http://blog.sina.com.cn/s/blog_416e3063010 ...
- 用Quick Cocos2dx做一个连连看(一)
呵呵,不知道能不能坚持下来,先写着吧. 预备知识:Quick Cocos2dx 2.2.5基本知识 或者 Cocos2dx基本知识, lua入门 开发工具:Sublime Text 2.0/3.0 原 ...
- quick cocos2d-x 2.2.4 window环境调试
BabeLua简介 BabeLua是一款基于VS2012/2013(简称VS)的免费开源的Lua集成开发环境,在Lua编辑和调试方面,具有如下功能和特性: ●Lua语法高亮 ●语法检查 ●自动补全 ● ...
- Cocos2dx之touch事件
今天看了下ccocos2dx touch事件部分的源码,从CCTouch.CCTouchHandler和CCTouchDispatcher简单的做了分析和总结,先直接看源码吧! 1.CCTouch c ...
随机推荐
- git 使用系列(二)---- 分支和合并
Branching and Merging The Git feature that really makes it stand apart from nearly every other SCM o ...
- web服务器小记
服务器分web服务器,应用程序服务器以及HTTP服务器,此处只解释web服务器,详情: http://www.cnblogs.com/zhaoyl/archive/2012/10/10/2718575 ...
- php并发控制 , 乐观锁
由于悲观锁在开始读取时即开始锁定,因此在并发访问较大的情况下性能会变差.对MySQL Inodb来说,通过指定明确主键方式查找数据会单行锁定,而查询范围操作或者非主键操作将会锁表. 接下来,我们看一下 ...
- EditText的一点深入的了解
最近在开发android下的记事本程序时,频繁的使用EditText控件,折腾来折腾去,算是对其的了解更深入了一些.特将这些收获记录如下: 一.几个属性的介绍 android:gravity=&quo ...
- PHP 上传图片,生成水印,支持文字, gif, png
//admin_upfile.php <html> <meta http-equiv="Content-Type" content="text/html ...
- UMeng崩溃日志如何进行symbiolicate
Application received signal SIGSEGV (null) ( 0 CoreFoundation 0x2f2dde9b + 154 1 libobjc.A.dylib 0x3 ...
- margin
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- UVALive 4031 Integer Transmission(贪心 + DP)
分析:求出最大值和最小值比较简单,使用贪心法,求最小值的时候我们让所有的0尽可能的向后延迟就可以了,求最大值则相反. 关键在于求出可以组合出的数字个数. 这就是组合数学版的dp了,我们让dp[i][j ...
- mytest 截图
- MYSQL启用日志,查看日志,利用mysqlbinlog工具恢复MySQL数据库【转载】
转自 MYSQL启用日志,查看日志,利用mysqlbinlog工具恢复MySQL数据库 - _安静 - 博客园http://www.cnblogs.com/xionghui/archive/2012/ ...