cocos2d-lua消除游戏实战(一)主场景和游戏场景设计

举报
鱼酱 发表于 2022/01/06 23:06:23 2022/01/06
【摘要】 使用版本为3.7,官方最新版本。 一、会用到的知识点和注意事项            使用ccui.button,3.7版本框架与之前是有差别的,需要注意我们不在使用cc.ui,而是使用ccui(详细的可以看看luabinding)。 ccui.b...

使用版本为3.7,官方最新版本。

一、会用到的知识点和注意事项

  

    

  •    使用ccui.button,3.7版本框架与之前是有差别的,需要注意我们不在使用cc.ui,而是使用ccui(详细的可以看看luabinding)。 ccui.button.create会调用luabinding ,luabinding会调用C++静态方法。
  •     display.newTTFLabel({text = tostring(self.highSorce), font = "font/earth38"})  ,使用label标签的时候我们可以去display.lua看看它是如何实现的。内部调用的跟button的时序差不多的,调用luabinding,然后luabinding调用C++。而且我们要注意 font/earth38,这个不要加earth38的扩展名,不信自己加一下试一试。
  •      游戏资源下面有下载地址,我会在项目完成之后,上传完整版本。

 

注意:这个本来是书上的例子,但是3.6和3.7版本有差异,算是大版本更新吧,官网是这么说的。我就升级了一下这个小项目。

二、主场景设计

                            有一个背景 mainBg.png

                          开始按钮startBtn_N.png 

点击迁移场景到游戏场景

 

 

 

 


  
  1. local MenuScene = class("MenuScene", function()
  2. return display.newScene("MenuScene")
  3. end)
  4. function MenuScene:ctor()
  5. -- 1.加载精灵帧
  6. display.addSpriteFrames("fruit.plist", "fruit.png")
  7. -- 2.背景图片
  8. display.newSprite("mainBG.png")
  9. :pos(display.cx,display.cy)
  10. :addTo(self)
  11. -- 3.开始按钮
  12. local btn = ccui.Button:create("startBtn_N.png","startBtn_S.png","",1)
  13. btn:align(display.CENTER, display.cx, display.cy - 80)
  14. btn:addTo(self)
  15. btn:addTouchEventListener(function(event)
  16. print("TODO: switch to PlayScene!")
  17. local playScene = import("app.scenes.PlayScene"):new()
  18. display.replaceScene(playScene, "turnOffTiles", 0.5)
  19. end)
  20. end
  21. function MenuScene:onEnter()
  22. end
  23. function MenuScene:onExit()
  24. end
  25. return MenuScene

 

 

 

三、游戏场景

 

 

 

 

 

 

 


  
  1. local PlayScene = class("PlayScene", function()
  2. return display.newScene("PlayScene")
  3. end)
  4. function PlayScene:ctor()
  5. -- init value
  6. self.highSorce = 0
  7. self.stage = 1
  8. self.target = 123
  9. self.curSorce = 0
  10. self:initUI()
  11. end
  12. function PlayScene:initUI()
  13. -- 背景图片
  14. display.newSprite("playBG.png")
  15. :pos(display.cx, display.cy)
  16. :addTo(self)
  17. -- high sorce
  18. display.newSprite("#high_score.png")
  19. :align(display.LEFT_CENTER, display.left + 15, display.top - 30)
  20. :addTo(self)
  21. display.newSprite("#highscore_part.png")
  22. :align(display.LEFT_CENTER, display.cx + 10, display.top - 26)
  23. :addTo(self)
  24. self.highSorceLabel = display.newTTFLabel({text = tostring(self.highSorce), font = "font/earth38"})
  25. :align(display.CENTER, display.cx + 105, display.top - 24)
  26. :addTo(self)
  27. -- 声音
  28. display.newSprite("#sound.png")
  29. :align(display.CENTER, display.right - 60, display.top - 30)
  30. :addTo(self)
  31. -- stage
  32. display.newSprite("#stage.png")
  33. :align(display.LEFT_CENTER, display.left + 15, display.top - 80)
  34. :addTo(self)
  35. display.newSprite("#stage_part.png")
  36. :align(display.LEFT_CENTER, display.left + 170, display.top - 80)
  37. :addTo(self)
  38. self.highStageLabel = display.newTTFLabel({text = tostring(self.stage), font = "font/earth32"})
  39. :align(display.CENTER, display.left + 214, display.top - 78)
  40. :addTo(self)
  41. -- target
  42. display.newSprite("#tarcet.png")
  43. :align(display.LEFT_CENTER, display.cx - 50, display.top - 80)
  44. :addTo(self)
  45. display.newSprite("#tarcet_part.png")
  46. :align(display.LEFT_CENTER, display.cx + 130, display.top - 78)
  47. :addTo(self)
  48. self.highTargetLabel = display.newTTFLabel({text = tostring(self.target), font = "font/earth32"})
  49. :align(display.CENTER, display.cx + 195, display.top - 76)
  50. :addTo(self)
  51. -- current sorce
  52. display.newSprite("#score_now.png")
  53. :align(display.CENTER, display.cx, display.top - 150)
  54. :addTo(self)
  55. self.curSorceLabel = display.newTTFLabel({text = tostring(self.curSorce), font = "font/earth48"})
  56. :align(display.CENTER, display.cx, display.top - 150)
  57. :addTo(self)
  58. -- TODO:倒计时条
  59. end
  60. function PlayScene:onEnter()
  61. end
  62. function PlayScene:onExit()
  63. end
  64. return PlayScene

 

 

 

 

 

 

四、项目效果展示:

 

资源下载

 

 

文章来源: yujiang.blog.csdn.net,作者:鱼酱2333,版权归原作者所有,如需转载,请联系作者。

原文链接:yujiang.blog.csdn.net/article/details/78659632

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。