欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【quick-cocos2d-lua】 coinflip翻金币游戏

程序员文章站 2024-03-18 19:58:28
...

等级选择场景和Level1游戏场景:

【quick-cocos2d-lua】 coinflip翻金币游戏【quick-cocos2d-lua】 coinflip翻金币游戏

项目组成:

【quick-cocos2d-lua】 coinflip翻金币游戏

 

等级选择场景:第一页为4排4列组成的16个按钮,一共有7页,按钮矩阵下面有显示页数的图标。按住页面往左拖动,可进行翻页,一次可翻多页。翻页完成后,下面显示页数的图标也跳动到对应的页数。各个类之间关系及类的主要作用:

                                LevelsListCell(每一页的组成,按钮)

                                          ↑

ChooseLevelScene→LevelsList(7页及页数指针)

                                           ↓                                                      

                               继承于:PageControl

                                           ↓  

                                 继承于:ScrollView

 

 

Level1游戏场景:任意点击一个金币,则其上下左右以及自己进行翻转,原为金色则翻转之后变银色,原为银色则反之。当所有的都显示为金色时,则这一关胜利通过。

 

主要代码分析:

①ChooseLevelScene:主要是创建一个levels list

local rect = cc.rect(display.left, display.bottom + 180, display.width, display.height - 280)
self.levelsList = LevelsList.new(rect)
self.levelsList:addEventListener("onTapLevelIcon", handler(self, self.onTapLevelIcon))
self:addChild(self.levelsList)

 

②LevelsList:创建list页面及选项按钮,以及页面显示指针

function LevelsList:ctor(rect)
    LevelsList.super.ctor(self, rect, PageControl.DIRECTION_HORIZONTAL)

    -- add cells
    local rows, cols = 4, 4
    if display.height > 1000 then rows = rows + 1 end

    local numPages = math.ceil(Levels.numLevels() / (rows * cols))
    local levelIndex = 1

    for pageIndex = 1, numPages do
        local endLevelIndex = levelIndex + (rows * cols) - 1
        if endLevelIndex > Levels.numLevels() then
            endLevelIndex = Levels.numLevels()
        end
        local cell = LevelsListCell.new(cc.size(display.width, rect.height), levelIndex, endLevelIndex, rows, cols)
        cell:addEventListener("onTapLevelIcon", function(event) return self:onTapLevelIcon(event) end)
        self:addCell(cell)
        levelIndex = endLevelIndex + 1
    end

    -- add indicators
    local x = (self:getClippingRect().width - LevelsList.INDICATOR_MARGIN * (numPages - 1)) / 2
    local y = self:getClippingRect().y + 20

    self.indicator_ = display.newSprite("#LevelListsCellSelected.png")
    self.indicator_:setPosition(x, y)
    self.indicator_.firstX_ = x

    for pageIndex = 1, numPages do
        local icon = display.newSprite("#LevelListsCellIndicator.png")
        icon:setPosition(x, y)
        self:addChild(icon)
        x = x + LevelsList.INDICATOR_MARGIN
    end

    self:addChild(self.indicator_)
end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇: C语言简单入门:变量

下一篇: