quick-cocos2d-x學(xué)習(xí)筆記-Day01

由于公司使用的quick-cocos2d-x引擎的版本是V2.1.4,比較老而且沒(méi)有任何說(shuō)明文檔,所以很多函數(shù)都要看引擎源碼才知道。有些函數(shù)要試一試才能找到正確的寫法,真是挺蛋疼的。不過(guò)認(rèn)真去學(xué)還是會(huì)有收獲滴。

今天“捉蝦”許久,學(xué)的東西不多,不說(shuō)廢話,直接把今天所學(xué)呈上來(lái)。

1、此版本下創(chuàng)建精靈的兩種方式

方式一:傳統(tǒng)方式

sprite1 = CCSprite:create("image/sanli.jpeg")

sprite1:setPosition(display.cx + 400, display.cy - 200)

self:addChild(sprite1, 5)

方式二:display方式

local background = display.newSprite("image/background.png", display.cx, display.cy) self:addChild(background)

顯然display方式比較簡(jiǎn)潔

2、創(chuàng)建label的兩種寫法,跟創(chuàng)建精靈類似:

方式一:

local label1 = CCLabelTTF:create("Hello", "Arial", 32)

label1:setPosition(display.cx + 400, display.cy - 80)

self:addChild(label1, 6)

方式二:

local label = ui.newTTFLabel({

text = "Hello, World",

size = 32,

x = display.cx,

y = display.cy,

align = ui.TEXT_ALIGN_CENTER --整齊豎排

})

self:addChild(label, 7)

3、游戲調(diào)度的三種方式:

--游戲調(diào)度

local function update(dt)

local x, y = label1:getPosition()

label1:setPosition(x - 2, y + 1)

end

--游戲開(kāi)始調(diào)度

--這是一種調(diào)度方法-------------------------------------------------------------

sch = CCDirector:sharedDirector():getScheduler()

sch:scheduleScriptFunc(update, 1/60.0, false) --update是要執(zhí)行的函數(shù),中間是執(zhí)行間隔,最后為是否暫停

--這是第二種調(diào)度方法------------------------------------------------------------

self:scheduleUpdateWithPriorityLua(update, 0)--第二個(gè)參數(shù)是一個(gè)優(yōu)先級(jí),值越小越先執(zhí)行

--這種調(diào)度方式對(duì)應(yīng)的停止調(diào)度為:self:unscheduleUpdate()

--這是第三種調(diào)度方式-------------------------------------------------------------

local? scheduler = require("framework.scheduler")

scheduler.scheduleGlobal(update, 1.0 / 60) --第二個(gè)參數(shù)是執(zhí)行間隔

--第一種和第三種本質(zhì)上是一樣的,用于游戲中計(jì)時(shí)很好用。但是我不知道如果停止調(diào)度 =。=

4、等待一段設(shè)定時(shí)間之后調(diào)用某一函數(shù):

self:performWithDelay(function()

?????? print("-----------等待3秒之后打印了這句話---------------")

end, 3.0)

5、創(chuàng)建文本菜單

local startItem = ui.newTTFLabelMenuItem({

text = "Start",

size = 30,

aligh = ui.TEXT_ALIGN_CENTER,

listener = function ()

print("The start item is touched")

self.player:attack()

end,

x = display.cx,

y = display.cy + 50,

})

local endItem = ui.newTTFLabelMenuItem({

text = "End",

size = 30,

aligh = ui.TEXT_ALIGN_CENTER,

listener = function ()

print("The end item is touched")

self.player:dead()

end,

x = display.cx,

y = display.cy - 50,

})

local menu = ui.newMenu({startItem, endItem})

self:addChild(menu)

6、創(chuàng)建觸摸層:

function MainScene:addTouchLayer()

local function onTouch(eventName, x, y)

if eventName == "began" then

self.player:walkTo({x=x,y=y})

self:unscheduleUpdate()? ? ? --------------------------停止調(diào)度

end

end

--創(chuàng)建觸摸層

self.layerTouch = display.newLayer()

--添加事件監(jiān)聽(tīng)器

self.layerTouch:addTouchEventListener(function(event, x, y)

return onTouch(event, x, y)

end, false)

self.layerTouch:setTouchEnabled(true)

self.layerTouch:setPosition(ccp(0,0))

self.layerTouch:setContentSize(CCSizeMake(display.width, display.height))

self:addChild(self.layerTouch)

end

6、創(chuàng)建和播放動(dòng)畫

--創(chuàng)建并播放角色攻擊動(dòng)畫

function Player:attack()

--創(chuàng)建動(dòng)畫

local frames = display.newFrames("player1-2" .. "-%d.png", 1, 4)

local animation = display.newAnimation(frames, 0.2)

--local frame = display.newSpriteFrame("player1-1-1.png")

transition.playAnimationOnce(self, animation)

end

今天學(xué)的大致就是以上這些,寫得比較亂,沒(méi)有邏輯。有空再系統(tǒng)寫。從標(biāo)簽、菜單、精靈、層、場(chǎng)景、動(dòng)畫和特效到用戶事件、音樂(lè)音效、粒子系統(tǒng)、瓦片地圖和物理引擎,再到數(shù)據(jù)持久化、網(wǎng)絡(luò)通信和性能優(yōu)化等知識(shí),將會(huì)大致地系統(tǒng)地梳理一遍。今天就先到這吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.1程序塊:Lua執(zhí)行的每段代碼,例如一個(gè)源代碼文件或者交互模式中輸入的一行代碼,都稱為一個(gè)程序塊 1.2注釋:...
    c_xiaoqiang閱讀 2,685評(píng)論 0 9
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評(píng)論 19 139
  • 宋-蘇軾《念奴嬌.赤壁懷古》:“大江東去,浪淘盡,千古風(fēng)流人物。故壘西邊,人道是,三國(guó)周郎赤壁。亂石穿空,驚濤拍岸...
    爲(wèi)龍閱讀 612評(píng)論 0 4
  • 當(dāng)需要限制用戶訪問(wèn)某些資源或者在處理請(qǐng)求時(shí)提前處理某些資源時(shí),即可使用過(guò)濾器完成。 1、過(guò)濾器的基本概念 ** ...
    年少懵懂丶流年夢(mèng)閱讀 152評(píng)論 0 0
  • 這篇算是近半年的自我反思吧。 從去年9月份開(kāi)始,我一直處于極度懷疑中:懷疑我工作的價(jià)值,懷疑我生活的意義,懷疑我自...
    泋小溪閱讀 453評(píng)論 1 2

友情鏈接更多精彩內(nèi)容