Cocos2d-x 3.2 lua飞机大战开发实例(二)敌机类的封装,以及碰撞检测的实现

Cocos2d-X 3.2  lua语言飞机大战开发实例(二)

1.  敌机类的封装以及碰撞检测

--

Enemy的类中

require "Cocos2d"

 

local Enemy=class("Enemy",function ()

return cc.Node:create()

end)

 

function Enemy:create(t,x,y)

local enemy=Enemy.new()

enemy:addChild(enemy:init(t,x,y))

return enemy

 

end

 

--构造

function Enemy:ctor()

self.winsize=cc.Director:getInstance():getWinSize()

self.ex=0

self.ey=0

self.type=0

 

self.dirH=true --真为rigth 假为left

self.dirV=true --false  up   true down

self.flyWidth=30  --摇摆的幅度

self.flyX=0   --当前的摇摆值

 

self.count=0           --控制移动的逻辑执行的次数

 

end

 

--init()

function Enemy:init(t,x,y)

local layer=cc.Layer:create()

 

local sp=cc.Sprite:create()

layer:addChild(sp)

 

  --敌机动画

  if t==0 then

     --动画的每一帧

     local sf1=cc.SpriteFrame:create("fonts/Resources/ld1.png",cc.rect(0,0,87,100))

     local sf2=cc.SpriteFrame:create("fonts/Resources/ld1.png",cc.rect(87,0,87,100))

     local allf={ sf1,sf2}

     --创建动画

     local animation=cc.Animation:createWithSpriteFrames(allf,0.1)

     local animate=cc.Animate:create(animation)

     sp:runAction(cc.RepeatForever:create(animate))

    

  elseif t==1 then

   local sf1=cc.SpriteFrame:create("fonts/Resources/ld1.png",cc.rect(0,0,87,100))

     local sf2=cc.SpriteFrame:create("fonts/Resources/ld1.png",cc.rect(87,0,87,100))

     local allf={ sf1,sf2}

     --创建动画

     local animation=cc.Animation:createWithSpriteFrames(allf,0.1)

     local animate=cc.Animate:create(animation)

     sp:runAction(cc.RepeatForever:create(animate))

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值