[cocos2dx lua]cocos2dx lua入门

最基本的层

[plain] view plaincopy

  1. function createInGameLayer()   
  2.         local inGameLayer = cc.Layer:create()  
  3.         return inGameLayer  
  4.     end  

最基本的场景

[plain] view plaincopy

  1.  local sceneGame = cc.Scene:create()  
  2.     sceneGame:addChild(createInGameLayer())  
  3.   
  4. cc.Director:getInstance():runWithScene(sceneGame)  
  5. cc.Director:getInstance():replaceScene(cc.TransitionFade:create(1,WelcomeScene.createScene()))  

最基本的精灵

[plain] view plaincopy

  1. function createInGameLayer()   
  2.         local inGameLayer = cc.Layer:create()  
  3.         local bg = cc.Sprite:create("farm.jpg")  
  4.         bg:setAnchorPoint(0,0)  
  5.         inGameLayer:addChild(bg)  
  6.         return inGameLayer  
  7. end  

最基本的定时器

[plain] view plaincopy

  1. local function tick()  
  2.             
  3.        end  
  4.   
  5.        cc.Director:getInstance():getScheduler():scheduleScriptFunc(tick, 0, false)  

最基本的触摸事件

[plain] view plaincopy

  1. local touchBeginPoint = nil  
  2.         local function onTouchBegan(touch, event)  
  3.             local location = touch:getLocation()  
  4.             cclog("onTouchBegan: %0.2f, %0.2f", location.x, location.y)  
  5.             touchBeginPoint = {x = location.x, y = location.y}  
  6.             -- CCTOUCHBEGAN event must return true  
  7.             --[[多点  
  8.              for i = 1,table.getn(touches) do  
  9.              local location = touches[i]:getLocation()  
  10.              Sprite1.addNewSpriteWithCoords(Helper.currentLayer, location)  
  11.              end  
  12.             ]]--  
  13.             return true  
  14.         end  
  15.   
  16.         local function onTouchMoved(touch, event)  
  17.             local location = touch:getLocation()  
  18.             cclog("onTouchMoved: %0.2f, %0.2f", location.x, location.y)  
  19.             if touchBeginPoint then  
  20.                 local cx, cy = layerFarm:getPosition()  
  21.                 layerFarm:setPosition(cx + location.x - touchBeginPoint.x,  
  22.                                       cy + location.y - touchBeginPoint.y)  
  23.                 touchBeginPoint = {x = location.x, y = location.y}  
  24.             end  
  25.         end  
  26.   
  27.         local function onTouchEnded(touch, event)  
  28.             local location = touch:getLocation()  
  29.             cclog("onTouchEnded: %0.2f, %0.2f", location.x, location.y)  
  30.             touchBeginPoint = nil  
  31.             spriteDog.isPaused = false  
  32.         end  
  33.   
  34.         local listener = cc.EventListenerTouchOneByOne:create()  
  35.         --local listener = cc.EventListenerTouchAllAtOnce:create() 多点  
  36.         listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )  
  37.         listener:registerScriptHandler(onTouchMoved,cc.Handler.EVENT_TOUCH_MOVED )  
  38.         listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )  
  39.         local eventDispatcher = layerFarm:getEventDispatcher()  
  40.         eventDispatcher:addEventListenerWithSceneGraphPriority(listener, layerFarm)  

最基本的音乐

[plain] view plaincopy

  1. --local bgMusicPath = CCFileUtils:getInstance():fullPathForFilename("background.ogg")  
  2.   
  3.    local bgMusicPath = cc.FileUtils:getInstance():fullPathForFilename("background.mp3")  
  4.   
  5.    cc.SimpleAudioEngine:getInstance():playMusic(bgMusicPath, true)  
  6.    local effectPath = cc.FileUtils:getInstance():fullPathForFilename("effect1.wav")  
  7.   
  8.    cc.SimpleAudioEngine:getInstance():preloadEffect(effectPath)  
  9.   
  10.    local function menuCallbackOpenPopup()  
  11.            -- loop test sound effect  
  12.            local effectPath = cc.FileUtils:getInstance():fullPathForFilename("effect1.wav")  
  13.            effectID = cc.SimpleAudioEngine:getInstance():playEffect(effectPath)  
  14.            menuPopup:setVisible(true)  
  15.        end  

最基本的加载图片

[plain] view plaincopy

  1. cc.Director:getInstance():getTextureCache():addImageAsync("DartBlood.png",imageLoaded)  
  2. local texture0 = cc.Director:getInstance():getTextureCache():addImage( "Images/grossini_dance_atlas.png")  
  3.   
  4. function LoadingScene.imageLoaded( pObj)  
  5.     -- body  
  6. end  
  7.   
  8. cc.Director:getInstance():getTextureCache():removeTextureForKey("Images/grossinis_sister1-testalpha.png")  
  9. cc.Director:getInstance():getTextureCache():removeAllTextures()  
  10. cc.Director:getInstance():getTextureCache():removeUnusedTextures()  
  11.   
  12. local cache = cc.SpriteFrameCache:getInstance()  
  13. cache:addSpriteFrames("animations/grossini_gray.plist", "animations/grossini_gray.png")  
  14. SpriteFrameTest.m_pSprite1 = cc.Sprite:createWithSpriteFrameName("grossini_dance_01.png")  

最基础的动作

[plain] view plaincopy

  1. local function CallFucnCallback1()  
  2.       
  3. end  
  4.   
  5. local action = cc.Sequence:create(  
  6.         cc.MoveBy:create(2, cc.p(200,0)),  
  7.         cc.CallFunc:create(CallFucnCallback1) )  
  8.  grossini:runAction(action)  

最基础的字符格式化

[plain] view plaincopy

  1. string.format("grossini_dance_%02d.png", j + 1)  

最基础的按钮

[plain] view plaincopy

  1. local start = cc.Sprite:createWithSpriteFrameName("start.png")  
  2.   
  3.   
  4. local  startItem = cc.MenuItemSprite:create(start, start, start)  
  5.   
  6.   
  7. local function menuCallback(sender)  
  8.     cclog("menuCallback...")  
  9.     --tolua.cast(ret:getParent(), "cc.LayerMultiplex"):switchTo(1)  
  10. end  
  11.   
  12.   
  13. startItem:registerScriptTapHandler(menuCallback)  
  14. startItem:setPosition(50,50)  
  15.   
  16.   
  17. local  menu = cc.Menu:create()  
  18. menu:addChild(startItem)  
  19. menu:setPosition(0,0)  
  20. layer:addChild(menu)  
时间: 2024-11-01 05:57:05

[cocos2dx lua]cocos2dx lua入门的相关文章

移植quick2.2.3的项目到cocos2d-x 3.4 lua及cocos2d-x 3.4 lua触摸BUG

我们的第二个游戏 Lulala 是采用我修改过的 quick 2.2.3 开发的,这个项目已经完成. Lulala 完成后,我们立项了一个新的游戏 HHL,此时我转向了 cocos2d-x lua,具体原因我在 从 quick 转向 cocos2d-x 3.3 lua 一文中做过介绍. 在 HHL 中,我本想将以前在 quick 中修改的东西,全部移到到 cocos2d-x 3.x 中来,但仔细考虑后放弃了.我修改了太多的 C++ 代码,同样的工作我不可能在 cocos2d-x 3.x 中再来做

Lua极简入门指南(一):函数篇_Lua

Lua 和其他很多语言一样,函数调用时参数列表被包裹在括号中: 复制代码 代码如下: print('Hello World') 特别的情况是,如果函数调用时只有一个参数,并且此参数为字符串 literal(字面量)或者 table 构造器(constructor)时,包裹参数的括号可以省略: 复制代码 代码如下: print 'Hello World' <--> print('Hello World') type{}              <--> type({}) Lua 为

Lua极简入门指南(三): loadfile和错误处理_Lua

编译 Lua 虽然是解释性语言,但 Lua 源码总是被编译为中间形式后再执行. dofile 用于载入并执行一个 Lua 文件,相比之下,loadfile 用于载入一个 Lua 文件,但并不执行,确切的说 loadfile 编译了一个 chunk,并返回此被编译的 chunk(被作为一个函数): 复制代码 代码如下: c = loadfile('./test.lua') c() dofile 可以被实现为: 复制代码 代码如下: function dofile(filename)     loc

Lua极简入门指南(六):模块_Lua

从用户的角度来看,一个模块能够通过 require 加载并返回一个 table,模块导出的接口都被定义在此 table 中(此 table 被作为一个 namespace).所有的标准库都是模块.标准库被预先加载了,就像这样: 复制代码 代码如下: math = require 'math' string = require 'string' require 函数 使用 require 函数加载模块能够避免多次重复加载模块.加载一个模块: 复制代码 代码如下: require 'modulena

c++ 传char*给lua 然后lua再返回char* 值不相同

问题描述 c++ 传char*给lua 然后lua再返回char* 值不相同 C++的代码: int main() { lua_State* L = luaL_newstate(); luaL_openlibs(L); luaL_dofile(L, "a.lua"); lua_getglobal(L, "test"); char* str = new char[3]; str[0] = 0; str[1] = 65; str[2] = 66; lua_pushstr

mac 系统上安装lua后 lua:commond not found 求救

问题描述 mac 系统上安装lua后 lua:commond not found 求救 TazideMacBook-Pro:~ aqzre$ cd lua-5.3.1 TazideMacBook-Pro:lua-5.3.1 aqzre$ make macosx test cd src && /Applications/Xcode.app/Contents/Developer/usr/bin/make macosx /Applications/Xcode.app/Contents/Devel

在C++使用LUA交互,LUA实现闭包,C++/LUA相互闭包

LUA可谓是配置文件神器,具体功能用过才知道,接近两年没用了抽了俩小时熟悉了下基本的用法. 包括C/LUA堆栈操作 函数相互调用 以及LUA的闭包 C++和LUA相互闭包 想要灵活使用LUA必须先要学习 LUA和C的堆栈交互模型 类似于汇编函数调用方式了 很有意思. 要学习LUA首先要理解LUA和C/C++交互的堆栈lua_State  这里引用网友的一篇文章很详细 http://wind-catalpa.blog.163.com/blog/static/11475354320131191031

Cocos2D-X手机游戏开发入门

Cocos2D-X简介: cocos2d-x是一款使用 C++ 开发的免费.开源.跨平台的2D手机游戏引擎,支持 Android, iOS和Windows Phone这三种主流的智能手机操作系统,以及 Windows XP和Windows 7. Cocos2D-X入门(1) 制作一个动态的精灵 Cocos2D-X入门(2) 场景的切换及特效 Cocos2D-X入门(3)图片文字显示 Cocos2D-X入门(4)Touch 事件:移动精灵 Cocos2D-X入门(5)CCAction:动作 Coc

Lua脚本语言入门笔记_Lua

什么是Lua Lua 是一个小巧的脚本语言.是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy.Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发. 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行.Lua并没