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

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

【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)
        :setColor(cc.c3b
Cocos2d-x Lua飞机大战游戏开发实例:敌机类封装与碰撞检测实现 碰撞检测的实现则可以让我们在游戏中处理碰撞事件,例如敌机与玩家飞机的碰撞,从而产生相应的游戏效果和逻辑。敌机类的封装和碰撞检测的实现是其中重要的组成部分,它们为游戏的开发和玩法提供了更多的可能性。例如,可以添加敌机的移动和攻击行为,以及更复杂的碰撞检测逻辑,如检测子弹与敌机之间的碰撞等。首先,我们需要创建一个敌机类来表示游戏中的敌机。在游戏的主逻辑中,我们可以使用碰撞检测函数来检测玩家飞机与敌机之间的碰撞,并执行相应的逻辑。接下来,我们将介绍如何实现碰撞检测功能,以便在游戏中检测玩家飞机与敌机之间的碰撞。 阅读详情

相关推荐

三维重建笔记_光束平差法(Bundle Adjustment, BA)

目录 1 光束平差法(Bundle Adjustment, BA) 1.1 SFM (Structure‐from‐Motion) 定义 问题描述 1.2 重投影误差 (Reprojection Error) 目标函数 1.3 使用 Levenberg‐Marquardt Algorithm 进行优化 问题描述 简化目标函数 参考 Gauss‐Newton Method ...

惊鸿一博 2万+

java文字RPG小游戏

斩杀哥布林,勇闯地下城。杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀!

【目录】专栏文章导航

从最强工具链Davinci Configurator模块学习出发掌握AUTOSAR

weixin_47571898的博客 3076

分享Lost里的一个小故事

    这几天看Lost,第一季一共25集,讲一个飞机上的48个人遇空难后困在一个孤岛上,他们为了生存、求救和探索岛上的一些秘密(看到12集还不知道岛上的怪事究竟来源于什么玩意儿)进行的奋斗和人物之间的冲突。    想讲一个Lost里的一个小故事,关于48人中的一个怀孕的女人在空难前的事。    几个月前,女人(长得很乖)知道自己怀孕了。男友不能负起这个责任,和女的分了。同时女的也知

matrix67的专栏 1万+

如何使用box2d做碰撞检测

cocos2dx3.0+vs2012编译通过。 主要是通过body->SetTransform来设置body的位置和角度,然后自己写个ContactListener来监听碰撞事件 源代码下载 #include "HelloWorldScene.h" #include "VisibleRect.h" #include "GLES-Render.h" #include "coco...

weixin_30675967的博客 368

cocos2dx基础篇(23)——简单碰撞检测

【唠叨】     本节来讲讲简单的物理碰撞检测(非Box2D物理碰撞):矩形、圆之间的碰撞检测。   【3.x】     将数学类 CCPoint、CCRect 改为v3.x版本的 Vec2、Rect 就好了。       【简单碰撞检测】     在一些游戏中经常会遇到碰撞检测的情况,如愤怒的小鸟飞出去后,是否与石头发生碰撞。     虽然说有一个Box2D物理碰撞引擎,但是...

携墨的博客 1345

Cocos2d碰撞检测

Cocos2d碰撞检测

weixin_54452658的博客 670

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

解锁密码的专栏 1487

Cocos2d-x 3.2 lua飞机大战开发实例(三)道具的掉落,碰撞检测,声音,分数,爆炸效果,完善游戏的功能细节

Cocos2d-X 3.2  lua语言飞机大战开发实例(三) 7.添加声音,更新分数,添加爆炸效果,道具的掉落、道具的碰撞检测等完善游戏功能  爆炸的效果添加 首先需要在GameData的全局数据中定义所有道具的表        g_allTools={} --所有道具的表 接下来定义一个爆炸类 -- re

解锁密码的专栏 2006

cocos2d-x lua飞机大战小游戏4:敌机

现在,屏幕上就出现源源不断的敌机了。

Waveeeeeee的博客 384

cocos2d-x(十二)Lua开发飞机大战-7-添加敌机

Lua本是一门面向过程的解释性语言。但在开发

Thinking in code 2449

Cocos2d-x 3.x学习笔记:猩先生带你打飞机(五)敌我碰撞处理、分数计算、音乐播放

下面先是介绍下这一节要使用到的相关cocos2d-x的技术 一、粒子特效 粒子特效是什么,这个就百度百度,我只理解到它就是个很酷炫的效果。在cocos2d-x中使用粒子特效很简单,其实他也就是个Node,创建和使用都跟精灵差不多。另外,粒子特效一般用一个plist来描述,就是一个plist做后缀的xml文件,他描述了粒子的特性,可以自定义粒子,创建粒子特效的时候,加载这个plist文件即可。 下

Mr_xin321的专栏 2812

cocos2dx 3.2之Lua飞机项目

1          创建lua飞机项目 cocos new T32Lua -dE:\Installed\cocos2d-x-3.2\cocos2d-x-3.2\projects -l lua 2  项目代码 Common.lua --用于打印日志信息 function cclog(...)     print(string.format(

涂作权的博客 4023

用Quick-Cocos2d-x 3.3简单开发微信打飞机 -03 添加爆炸动画和子弹与敌机的碰撞

这次将实现子弹的配置文件,敌人的配置文件,子弹的精灵和敌人的精灵。以及子弹的发射和敌人的产生。 子弹的分析: 游戏中不可能只有一种子弹,这样子弹就需要一个配置文件,配置文件中有子弹的类型,子弹的贴图,子弹的生命以及子弹的移动速度。 敌人的分析: 同样,游戏中会出现多种敌人,所以,也需要一个敌人的配置文件,其中包括敌人的类型,贴图,速度,生命等属性。 在这里新建了一个目

houjia159的专栏 1464

Quick cocos2dx-Lua中计时器(scheduler)

计时器,就是让系统每隔一段时间调用我们的函数,来处理一些事情,比如飞机战斗游戏中,子弹与敌机之间的碰撞,系统每一帧调用检测函数,检测两者是否碰撞。   quick里面帮我们把cocos2dx lua提供的scheduler封装到了framework里面的scheduler.lua文件里面。 注意:计时器模块在初始化中不会自动载入,所以我们得手动获得这个模块   local

sun___shine的博客 3902

Cocos2d-x3.2总结---使用物理引擎进行碰撞检测

Cocos2d-x3.2总结---使用物理引擎进行碰撞检测 【转自】: http://blog.csdn.net/cbbbc/article/details/38541099   通常在游戏简单逻辑判断和模拟真实的物理世界时,我们只需要在定时器中判断游戏中各个精灵的条件是否满足判断条件就可以了。例如,在飞机大战中,判断我方子弹和敌机是否发生碰撞一般在定时器中通过敌机所在位置的矩形是否包

柒步的专栏 1506

quick-cocos2d-x 飞机大战(打飞机)小demo教程------碰撞检测以及胜负

--其实能把这个文件直接覆盖的,你对比一下没多少区别的 --导入lua文件 --定时器 scheduler = require("framework.scheduler") --主角飞机 local Role = import("..Obj.Role") --敌人 local Enemy = import("..Obj.Enemy") --子弹 local Bullet = import("..O

Crh的专栏 1316

cocos2d-x实战项目【飞机大战-- 子弹与敌机的碰撞

如果不是格子地图,两个精灵的碰撞一般是通过包围盒是否交叉来判定(记得在同一坐标系下) void CGameScene::update(float fDelta) { //通过管理者分别拿到子弹和敌机 Vector<Node*> vecBullet = m_pBulletMgr->getChildren(); Vector<Node*> vecEnemy = m_pEnemyMgr->getChildren(); for (int i = 0; i < vec

weixin_40968046的博客 462

Echarts数据可视化图表案例+数据可视化大屏模板

18个Echarts数据可视化图表案例,每个案例都有代码注释,简单易懂。还有三套echarts可视化大屏模板,案例下载后在编辑器内打开html,可以根据需求修改样式和数据,学习echarts绘图,也可以制作新的数据可视化大屏。

上一篇: 【cocos2d-x lua】飞机大战小游戏5:子弹
Waveeeeeee
博客等级 码龄7年 45粉丝 6原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值