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 ...
随机推荐
- mongodb状态
基本信息 spock:PRIMARY>db.serverStatus() { "host" :"h6.corp.yongche.org", //主机名 & ...
- SQL中的左连接与右连接有什么区别,点解返回值会不同?(转)
例子,相信你一看就明白,不需要多说 A表(a1,b1,c1) B表(a2,b2) a1 b1 c1 a2 b2 01 数学 95 01 张三 02 语文 90 02 李四 03 英语 80 04 王五 ...
- 解决centos无法上传文件和打开文件夹
使用yum搭建了ftp服务..yum的使用参考:http://blog.csdn.net/enson16855/article/details/9140623 windows使用FileZilla连接 ...
- servlet中路径的获取
1.获取项目的绝对路径 可以request.getRealPath("/"),但是这个方法已经废弃了,最好用this.getServletContext().getRealPath ...
- TriggerPrefab 拖拽物体
模拟经营类游戏 有一个特点,就是 拖拽物体.常见的有<帝国><红警><部落战争><凯撒大帝>等等 2d 拖拽 大部分都是 用 OnDrag 方法来 拖动 ...
- sql 指定范围 获取随机数
DECLARE @nMinimumCount INT= 1DECLARE @nMaximumCount INT= 100SELECT abs(CHECKSUM(NEWID()))%(@nMaximum ...
- java abstract类和abstract方法
Example5_12.java abstract class A { abstract int add(int x,int y); int sub(int x,int y) { return x-y ...
- UVALive 2147 Push!!(队列实现DP)
就我的理解来说这个题,本质上是一个DP题,不应该说是搜索,因为我的做法是把表格中所有的数据都找到,使用队列暴力来遍历出所有状态,因为题目中的数据范围小,所有耗时也小. 首先分析箱子是一个被动物体,人是 ...
- hdu - 2586 How far away ?(最短路共同祖先问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 最近公共祖先问题~~LAC离散算法 题目大意:一个村子里有n个房子,这n个房子用n-1条路连接起 ...
- 多校 Cow Bowling
题目链接:http://acm.hust.edu.cn/vjudge/contest/124435#problem/I 密码:acm Sample Input Sample Output 分析: #i ...