cocos2dx lua语言讲解 (动作,定时器,触摸事件,工程的类的讲解)
2018-03-20 14:07
543 查看
MainScene部分
// display.newScene 创建一个场景
// 在quick里面我们的控件、精灵 一般是加载到场景上的
local MainScene = class("MainScene", function()
return display.newScene("MainScene")
end)
function MainScene:ctor()
//创建精灵
// local bg = cc.Sprite:create("Zombatar_1.jpg");
// bg:setPosition(display.cx,display.cy);
// self:addChild(bg);
// cc.ui.UILabel.new({
// UILabelType = 2, text = "Hello, World", size = 64})
// :align(display.CENTER, display.cx, display.cy)
// :addTo(self)
//display 精灵
// local sprite = display.newSprite("bg_startgame-hd.png");// 底层是和上述的是一样的
// sprite:setPosition(display.cx,display.cy);
// self:addChild(sprite);
local sprite1 = display.newSprite("#miner_0701.png");
sprite1:setPosition(display.cx,display.cy/2.0)
self:addChild(sprite1);
//不带# 是从文件中找得 带# 是从缓存中查找的
local item = cc.MenuItemImage:create("CloseSelected.png","CloseSelected.png")
item:registerScriptTapHandler(function(psender)
item:setTag(101);
print("Hello")
//print(number) --item tag
local GameScene = require("app.scenes.GameScene");
local scene = GameScene:new()
cc.Director:getInstance():replaceScene(scene)
//display.replaceScene(scene, "jumpZoom", 2.0)
end)
local menu = cc.Menu:create(item)
self:addChild(menu);
end
function MainScene:onEnter()
end
function MainScene:onExit()
end
return MainScene
GameScene 部分 是从MainScene跳转来的
// display.newScene 创建一个场景
// 在quick里面我们的控件、精灵 一般是加载到场景上的
local MainScene = class("MainScene", function()
return display.newScene("MainScene")
end)
function MainScene:ctor()
//创建精灵
// local bg = cc.Sprite:create("Zombatar_1.jpg");
// bg:setPosition(display.cx,display.cy);
// self:addChild(bg);
// cc.ui.UILabel.new({
// UILabelType = 2, text = "Hello, World", size = 64})
// :align(display.CENTER, display.cx, display.cy)
// :addTo(self)
//display 精灵
// local sprite = display.newSprite("bg_startgame-hd.png");// 底层是和上述的是一样的
// sprite:setPosition(display.cx,display.cy);
// self:addChild(sprite);
local sprite1 = display.newSprite("#miner_0701.png");
sprite1:setPosition(display.cx,display.cy/2.0)
self:addChild(sprite1);
//不带# 是从文件中找得 带# 是从缓存中查找的
local item = cc.MenuItemImage:create("CloseSelected.png","CloseSelected.png")
item:registerScriptTapHandler(function(psender)
item:setTag(101);
print("Hello")
//print(number) --item tag
local GameScene = require("app.scenes.GameScene");
local scene = GameScene:new()
cc.Director:getInstance():replaceScene(scene)
//display.replaceScene(scene, "jumpZoom", 2.0)
end)
local menu = cc.Menu:create(item)
self:addChild(menu);
end
function MainScene:onEnter()
end
function MainScene:onExit()
end
return MainScene
GameScene 部分 是从MainScene跳转来的
local GameScene = class("GameScene",function () return display.newScene() end) function GameScene:ctor() //构造函数 local bg = display.newSprite("bg_startgame-hd.png") bg:setPosition(display.cx,display.cx) self:addChild(bg) self.sprite = display.newSprite("100points.png") self.sprite:setPosition(100,100) self:addChild(self.sprite) //动作 self:action() //定时器 self:scheduleDemo() self:TouchDemo() self:musicDemo() end function GameScene:musicDemo() audio.playMusic("backMusic.mp3", true); //循环播放 end function GameScene:TouchDemo() local function onTouchBegan(touch, event) local v = touch:getLocation(); print(v.x) print(v.y) // local target = event:getCurrentTarget(); print("onTouchBegan") return true; end local function onTouchMoved(touch, event) print("Moved") end local function onTouchEnded(touch, event) print("Ended") end local dispatcher = cc.Director:getInstance():getEventDispatcher(); local listener = cc.EventListenerTouchOneByOne:create(); //listener:setSwallowTouches(true) listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN); listener:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED); listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED); dispatcher:addEventListenerWithSceneGraphPriority(listener, self); end --定时器 function GameScene:scheduleDemo() local schedule = cc.Director:getInstance():getScheduler(); local f = handler(self, self.func) // function handler(obj, method) // return function(...) // return method(obj, ...) // end // end self.id = schedule:scheduleScriptFunc(f ,0.1,false) //0 便是每帧都调用 end function GameScene:func( number ) print(self.id) //nil print("&&") print(self) print("**") print(number) //nil local sc = cc.Director:getInstance():getScheduler(); sc:unscheduleScriptEntry(self.id); //关闭定时器 end function GameScene:action() //移动 local move = cc.MoveTo:create(2.0,cc.p(200,200)) //self.sprite:runAction(move) //缩放 local scale = cc.ScaleTo:create(2.0,0.5) //self.sprite:runAction(scale) //旋转 local rotate = cc.RotateBy:create(2.0, 360) //self.sprite:runAction(rorate) //组合 local span = cc.Spawn:create(move,scale,rotate) //self.sprite:runAction(span) //序列 延时 local seque = cc.Sequence:create(move,cc.DelayTime:create(2.0),scale,rotate) //self.sprite:runAction(seque) //call local call = cc.CallFunc:create(function ( sender ) print(sender.getTag()) //101 end) //self.sprite:setTag(101) //self.sprite:runAction(call) //quick 封装的 local move = cca.moveTo(2.0, 200, 200) self.sprite:runAction(move) --帧动画 local frames = display.newFrames("miner_07%02d.png", 1, 10, true) local animation = display.newAnimation(frames, 0.1) local animate = cc.Animate:create(animation) self.sprite:runAction(cc.RepeatForever:create(animate)) end return GameScene
相关文章推荐
- quick-cocos2dx lua语言讲解 (动作,定时器,触摸事件,工程的类的讲解)
- cocos2dx 3.3 + lua 学习笔记(03)--- 触摸事件、定时器、进度条
- Cocos2dx-lua触摸事件处理
- lua 在cocos2dx 2.2 中的触摸事件
- cocos2dx 3.x(定时器或延时动作自动调用button的点击响应事件)实现自动内测
- cocos2dx lua 触摸事件+计时器
- Cocos2dx学习笔记33 Lua语言讲解
- [cocos2dx_Lua]quick中的触摸事件
- cocos2dx-lua基础内容之 用户事件中的触摸事件
- 【Cocos2dx 3.3 Lua】定时器事件
- 4------关于在Cocos2dx中注册触摸事件——Lua(单点触摸)
- cocos2dx中lua注册事件函数详解
- lua 中处理cocos2dx 的button 事件
- cocos2dx学习之路----第九篇(深入理解单点触摸的事件机制)
- cocos2dx ScrollView 测试一 触摸事件优先级和自动调整
- cocos2dx 3.x 自学笔记 <二> cocos2dx 中注册触摸事件touchEvent 2.x 与 3.x
- [cocos2dx]事件分发机制--lua源码(二)
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- 在xcode下构建cocos2dx-lua工程
- Cocos2dx-Lua动作之进度条小谈