require(
"src/app/scenes/Utils"
)
"src/app/data/EnermyConfig"
)
localBulletConfig=require(
"src/app/data/BulletConfig"
)
localBulletSprite=import(
".BulletSprite"
)
localEnermySprite=import(
".EnermySprite"
)
localscheduler=require(cc.PACKAGE_NAME..
".scheduler"
)
localGameScene=
class
(
"GameScene"
display.newScene(
)
end)
functionGameScene:ctor()
--加载plist
display.addSpriteFrames(
"explosion.plist"
"explosion.png"
--添加Player精灵
self.player=display.newSprite(
"hero_1.png"
):addTo(self)
self.player:pos(display.cx,display.cy)
self.player:setLocalZOrder(10)
self.touchPos=cc.p(0,0)
self.bullets={}
self.enermy={}
--添加一个TouchLayer接收点击事件
self.touchLayer=display.newColorLayer(cc.c4b(255,255)):addTo(self)
self.touchLayer:setTouchEnabled(
)
self.touchLayer:addNodeEventListener(cc.NODE_TOUCH_EVENT,function(event)
event.name==
"began"
then
self.touchPos=cc.p(event.x,event.y)
elseifevent.name==
"moved"
then
localx=event.x-self.touchPos.x;
localy=event.y-self.touchPos.y;
self:onTouch(x,y);
else
end
return
true
end)
--添加子弹的创建计时器
scheduler.scheduleGlobal(function()
self:createBullet()
self:createEnermy()
self:checkCollision()
end,1)--1为时间
--添加碰撞检测的计时器
scheduler.scheduleGlobal(function()
self:checkCollision()
end
functionGameScene:onTouch(x,y)
--更新飞机的位置,没有对飞机是否会触屏做限制
self.player:pos(self.player:getPositionX()+x,self.player:getPositionY()+y)
end
functionGameScene:createBullet()
localconfig=config_bullets[1]
localbullet=BulletSprite:create(config):addTo(self)
bullet:pos(self.player:getPosition())
self.bullets[bullet]=bullet
end
functionGameScene:createEnermy()
--print(
"createenermyschedule"
)
localconfig=config_enermy[1]
localx=math.random(100,400)
localy=display.height+100
localenermy=EnermySprite:create(config):addTo(self)
enermy:setPosition(cc.p(x,y))
self.enermy[enermy]=enermy
end
functionGameScene:checkCollision()
--这个方法处理碰撞检测,子弹和敌人的碰撞检测,敌人和player的碰撞检测
do
do
):addTo(self)
effectSprite:pos(v_e:getPosition())
--effectSprite:runAction(cc.Sequence(self:createAnimation(
cc.CallFunc:create(function()
effectSprite:removeSelf()
end)
)
effectSprite:runAction(sequence)
true
true
end
end
end
--清除死亡的子弹和敌人
do
then
self.bullets[v_b]=nil
v_b:removeSelf()
end
end
do
then
self.enermy[v_e]=nil
v_e:removeSelf()
end
end
end
--帧动画从1开始
animation
end
functionGameScene:onEnter()
end
functionGameScene:onExit()
end
GameScene
|