您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關lua腳本調用cocos2d-x如何創建精靈、Tmx地圖的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
各位同學大家好,小編今天在此與各位一起通過Lua腳本實現一下用cocos2d-x 2.0.4來創建精靈、及Tmx地圖,為大家進入IOS游戲開發提供一個學習實例。各位老人、高手、專家、大神請自覺飄過哈當然要想拍磚請手下留情。
如果大蝦們肯留下個腳印或其它相關學習實例就萬分感謝了。
開發環境的搭建就不介紹了哈,大家可以度娘、谷哥一翻。
好啦,不費話了,開始正式編碼啦。再廢話一下,不知道lua腳本的請度娘、谷哥掃下盲
先創建好項目,如果不懂的,可直接從cocos2d-x的samples下搞個項目過來改改就好。
1)通過lua調用cocos2d-x創建精靈
準備一張精靈的四個方向的行走圖片
定義createSprite腳本方法來生成精靈
--創建精靈 local sprite = nil --定義精靈變量 local function createSprite() local layer = CCLayer:create()--定義圖層 local frame0 --定義精靈默認顯示圖片幀 --通過CCSpriteFrame創建幀動畫 frame0 = CCSpriteFrame:create("p_w_picpaths/spirit001_32.png", CCRectMake(blockWH*0, blockWH*0, blockWH, blockWH)) --按幀動畫初始化精靈 sprite = CCSprite:createWithSpriteFrame(frame0) --設置精靈默認起始位置 sprite:setPosition(ccp(winSize.width / 2 - 64, winSize.height / 3)) --把精靈增加入圖層 layer:addChild(sprite) return layer --把圖層返回,供CCScene用 end
2)通過lua調用cocos2d-x實現精靈幀動畫
根據精靈圖片特點:第一行為向下行走動畫;第二行為向左行走動畫;第三行為向右行走動畫;第四行為向上行走動畫。
--創建精靈幀動畫動作 local animation = nil --定義動作 direction:精靈方向(上、下、左、右)local function createAnimaByDirection(direction) local frame0,frame1,frame2,frame3 --定義四幀精靈動畫 frame0 = CCSpriteFrame:create("TileMaps/spirit001_32.png", CCRectMake(blockWH*0, blockWH*direction, blockWH, blockWH)) frame1 = CCSpriteFrame:create("TileMaps/spirit001_32.png", CCRectMake(blockWH*1, blockWH*direction, blockWH, blockWH)) frame2 = CCSpriteFrame:create("TileMaps/spirit001_32.png", CCRectMake(blockWH*2, blockWH*direction, blockWH, blockWH)) frame3 = CCSpriteFrame:create("TileMaps/spirit001_32.png", CCRectMake(blockWH*1, blockWH*direction, blockWH, blockWH)) --創建數組,用于存放精靈幀動作 local frameArray = CCArray:create() frameArray:addObject(frame0) frameArray:addObject(frame1) frameArray:addObject(frame2) frameArray:addObject(frame3) --通過CCAnimation:createWithSpriteFrames創建動畫 --參數1:幀動作數組;參數2:每幀動畫播放時間 animation = CCAnimation:createWithSpriteFrames(frameArray, 0.2) animation:setLoops(10) --把動畫返回供精靈使用 return CCAnimate:create(animation) end
3)創建菜單控制精靈動畫
為了方便實例演示,我們創建四個菜單項來控制精靈的上、下、左、右動畫的播放。
--定義菜單項 local menuLeft,menuRight,menuLeft,menuRight,menu --創建控制菜單 local function createControllerMenu() local layer = CCLayer:create() --初始化菜單項 menuLeft = CCMenuItemImage:create("Images/menu/leftNormal.png", "Images/menu/leftPress.png") menuLeft:registerScriptTapHandler(runLeft)--點擊處理函數 menuLeft:setPosition(ccp(menuLeft:getContentSize().width/2*3/2, menuLeft:getContentSize().height*2))--菜單項位置 menuUp = CCMenuItemImage:create("Images/menu/upNormal.png", "Images/menu/upPress.png") menuUp:registerScriptTapHandler(runUp) menuUp:setPosition(ccp(menuLeft:getContentSize().width/2*3/2+menuLeft:getContentSize().width, menuLeft:getContentSize().height*3)) menuRight = CCMenuItemImage:create("Images/menu/rightNormal.png", "Images/menu/rightPress.png") menuRight:registerScriptTapHandler(runRight) menuRight:setPosition(ccp(menuLeft:getContentSize().width/2*3/2+menuLeft:getContentSize().width*2, menuLeft:getContentSize().height*2)) menuDown = CCMenuItemImage:create("Images/menu/downNormal.png", "Images/menu/downPress.png") menuDown:registerScriptTapHandler(runDown) menuDown:setPosition(ccp(menuLeft:getContentSize().width/2*3/2+menuLeft:getContentSize().width, menuLeft:getContentSize().height)) --創建菜單 menu = CCMenu:create(); menu:addChild(menuLeft)--把菜單項加入到菜單 menu:addChild(menuUp) menu:addChild(menuRight) menu:addChild(menuDown) menu:setPosition(ccp(0, 0)) --把菜單加入到圖層 layer:addChild(menu) return layer end --精靈向左行走動畫local function runLeft() sprite:runAction(createAnimaByDirection(left))--步驟2中的方法創建 end--其它方向的行走動畫控制方法與runLeft相同,所以不詳細列出。--其中 left:1;down:0;right:2;up:3分別對應精靈圖片的相應方向
至此,我們就完成了通過lua腳本調用cocos2d-x實現精靈創建、精靈行走動畫控制的腳本代碼編寫了。
運行結果是:按下左行走菜單時播放精靈向左行走動畫;按下右行走菜單時播放精靈向右行走動畫;按下下行走菜單時播放精靈向下行走動畫;按下上行走菜單時播放精靈向上行走動畫。
4)通過lua腳本調用cocos2d-x創建tmx地圖
Tiled 這個地圖編輯工具可以編輯了2D的很多很多游戲地圖,只要你想得到的都行,具體使用方法及軟件下載安裝大家度娘一下就有一堆資料了,這里就不啰嗦了。
先用tiled創建好地圖文件如:test-tilemap.tmx然后就可以寫lua腳本進行創建操作啦,代碼如下:
--創建tmx地圖圖層 local function CreateTileMapLayer() local layer = CCLayer:create() --以文件名方式創建TMX地圖 local map = CCTMXTiledMap:create("TileMaps/test-tilemap.tmx") layer:addChild(map)--把tmx地圖添加到圖層 return layer end
簡單吧幾行腳本即可創建出tmx地圖圖層了。當然這只是個例子,具體游戲中還會有更多的事件要處理的了。
5)顯示到手機屏幕
把以上步驟中創建的各個圖層加入到場景中,然后就可以顯示到手機屏幕上啦。
--創建場景 local scene = CCScene:create() scene:addChild(CreateTileMapLayer())--把tmx地圖層加入場景 scene:addChild(createSprite())--把精靈層加入場景 scene:addChild(createControllerMenu())--把控制菜單層加入場景 CCDirector:sharedDirector():replaceScene(scene)--把場景顯示到手機屏幕上
感謝各位的閱讀!關于“lua腳本調用cocos2d-x如何創建精靈、Tmx地圖”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。