用Quick3.3开发微信打飞机 (一) ----------------- 场景切换

用Quick3.3简单开发微信打飞机01

楼主也是初学quick,想写几个简单的小项目入门,想想最简单的还是“微信打飞机”了(之前学cocos2d-js的时候也是从这个项目开始入手的)。

这里只是写一个微信打飞机的Demo,所以,不需要有太多的功能。先简单的分析下:

大概分为四个部分来实现:

1.先新建项目实现一个飞机在屏幕中移动

自定义场景,

精灵的定义

屏幕点击事件

2.在游戏中添加敌人和子弹

数组,

计时器

3.添加碰撞检测

数组中元素的删除,

动画

分数的实现

4.游戏结算

界面的切换,

这里先实现第一部分:

写一个MainScene和一个GameScen,MainScene作为菜单界面,点击菜单界面进入GameScene(游戏主界面),这里需要用到精灵的创建,触屏事件的添加,界面的切换。

下面上代码:

MainScene:

  1. local MainScene = class("MainScene", function()  
  2.     return display.newScene("MainScene")  
  3. end)  
  4.   
  5. function MainScene:ctor()  
  6.     --添加一个背景精灵  
  7.     self.bgSprite = display.newSprite("game_bg.jpg"):addTo(self)  
  8.     self.bgSprite:pos(display.cx,display.cy)   
  9.     --添加一个TouchLayer  
  10.     self.touchLayer = display.newColorLayer(cc.c4b(255,255,255,0)):addTo(self)  
  11.     self.touchLayer:setTouchEnabled(true)  
  12.     self.touchLayer:addNodeEventListener(cc.NODE_TOUCH_EVENT,function(event)  
  13.         if event.name == "ended" then  
  14.             --切换界面  
  15.             local nextScene = require("src.app.scenes.GameScene").new()  
  16.             display.replaceScene(nextScene, "fade", 0.5, cc.c3b(0, 0, 0))  
  17.         end  
  18.         return true  
  19.     end)  
  20. end  
  21.   
  22. function MainScene:onEnter()  
  23. end  
  24.   
  25. function MainScene:onExit()  
  26. end  
  27.       
  28.   
  29. return MainScene  


GameScene代码:

    1. local GameScene = class("GameScene",function ()  
    2.     return display.newScene("GameScene")  
    3. end)  
    4.   
    5. function GameScene:ctor()  
    6.     --添加Player精灵  
    7.     self.player = display.newSprite("hero_1.png"):addTo(self)  
    8.     self.player:pos(display.cx,display.cy)  
    9.     self.player:setLocalZOrder(10)  
    10.     self.touchPos = cc.p(0,0)  
    11.   
    12.     --添加一个TouchLayer接收点击事件  
    13.     self.touchLayer = display.newColorLayer(cc.c4b(255,0,0,255)):addTo(self)  
    14.     self.touchLayer:setTouchEnabled(true)  
    15.     self.touchLayer:addNodeEventListener(cc.NODE_TOUCH_EVENT,function(event)  
    16.         print(event.name)  
    17.         if event.name == "began" then  
    18.             self.touchPos = cc.p(event.x,event.y)  
    19.         elseif event.name == "moved" then  
    20.             local x = event.x - self.touchPos.x ;  
    21.             local y = event.y - self.touchPos.y ;  
    22.             self.touchPos = cc.p(event.x,event.y) ;  
    23.             self:onTouch(x,y) ;  
    24.         else  
    25.             self.touchPos = cc.p(0,0)   
    26.         end  
    27.         return true  
    28.     end)  
    29. end  
    30.   
    31. function GameScene:onTouch(x,y)  
    32.      --更新飞机的位置,没有对飞机是否会触屏做限制  
    33.     self.player:pos(self.player:getPositionX() + x,self.player:getPositionY() + y)  
    34. end  
    35.   
    36. function GameScene:onEnter()  
    37. end  
    38.   
    39. function GameScene:onExit()  
    40. end  
    41.   
    42. return GameScene  
原文地址:https://www.cnblogs.com/dudu580231/p/4807005.html