【cocos2d-x lua】飞机大战小游戏6:碰撞检测

本文详细介绍了使用cocos2d-xlua开发飞机大战游戏的过程,包括完善角色血量、得分系统,添加动画效果,以及实现碰撞检测功能,确保游戏基本玩法的完整性和互动性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【cocos2d-x lua】飞机大战小游戏6:碰撞检测

现在有主角飞机、敌机、子弹,但还不能进行游戏,需要进行碰撞检测方可实现玩法。



一、完善血量、得分

为了完善玩法,实现不同敌机的区别,需要修改敌机类,为敌机添加血量、分数等,同时也要为主角飞机添加血量,添加得分。

修改后的敌机类:

local EnemyItem = class("EnemyItem",function (frame,life,score,level)
    local enemy = cc.Sprite:createWithSpriteFrameName(frame)
    enemy.life = life * level --敌机生命值
	enemy.score = score * level --敌机可得分数
	enemy.level = level --敌机等级:1、2、3
	return enemy
end)

function EnemyItem:getLife()
	return self.life
end

function EnemyItem:getScore()
	return self.score
end

function EnemyItem:getLevel()
	return self.level
end

function EnemyItem:loseLife()
	self.life = self.life - 1
end

return EnemyItem

修改敌机层:

local Enemy_A_Life = 1
local Enemy_B_Life = 3
local Enemy_C_Life = 7

local Enemy_A_SCORE = 5
local Enemy_B_SCORE = 10
local Enemy_C_SCORE = 15

local Enemy_A_Level = 1
local Enemy_B_Level = 2
local Enemy_C_Level = 3


function EnemyLayer:addEnemyA()
	local enemy = EnemyItem.new("enemy1.png",Enemy_A_Life,Enemy_A_SCORE,Enemy_A_Level) 
	...
end

为主角飞机添加血量:

planeLayer.hp = 15

二、添加分数、血量标签

分数标签

    -- 分数标签
    self.sorceLabel = CCLabelBMFont:create(self.score,"font/font.fnt")
        :align(display.LEFT_TOP, display.left+20, display.top-20)
        :setColor(cc.c3b(143,146,147))
        :addTo(self)

血量标签

    -- 血量标签
    self.hpLabel = CCLabelTTF:create("剩余血量" .. self.plane.hp,"Arial",20,cc.size(120,100))
        :align(display.LEFT_TOP, display.left, display.top-50)
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值