当前位置: 首页 > news >正文

制作一款打飞机游戏68:地面敌人

敌人系统的扩展

今天,我们要对我们的敌人系统进行大量的扩展。具体来说,我想实现以下几点:

  1. 将敌人与地面关联‌:我希望能够区分敌人是地面的还是空中的。
  2. 调整碰撞设置‌:我想对敌人的碰撞进行一些调整,以便在未来实现更复杂的战斗场景,比如BOSS战。
  3. 实现子弹取消功能‌:在某些情况下,我希望某些敌人能够取消所有属于它的子弹。

编辑敌人属性

首先,我们需要编辑敌人的属性。我计划引入几个新属性:

  • 地面敌人/空中敌人‌:用0表示空中敌人,1表示地面敌人(但后面决定用1表示地面敌人,2表示空中敌人)。
  • 碰撞控制‌:通过数字来控制敌人是否可以被玩家飞船或子弹击中。
  • 子弹取消‌:一个标志位,用于控制当敌人被击毁时,是否取消所有属于它的子弹。

实现细节

在实现了基本的属性设置后,我开始填充现有敌人的数据。这里有一些具体的实现细节:

  • 地面敌人的移动‌:地面敌人需要随着背景移动,并且需要在绘制时位于空中敌人的下方。
  • 碰撞检测‌:地面敌人不应与玩家飞船发生碰撞。
  • 绘制顺序‌:通过分层来控制敌人的绘制顺序,确保地面敌人在空中敌人下方。

碰撞与绘制顺序的调整

在Brain Edit中,我调整了敌人的移动和碰撞检测逻辑,以确保地面敌人正确移动并不与玩家飞船发生碰撞。同时,我修改了绘制顺序,使地面敌人始终位于空中敌人的下方。


合并爆发与扩散模式

接下来,我讨论了如何合并爆发(burst)和扩散(spread)模式,以节省代码空间。通过添加一个类型标志,我们可以在扩散模式中实现爆发的效果,而无需创建单独的模式。


子弹速度调整

我还提到了一个问题:有时我们需要调整子弹的速度,但又不想创建全新的模式。因此,我在扩散模式中添加了一个速度调整功能,允许我们在不改变模式结构的情况下调整子弹的速度。

http://www.xdnf.cn/news/957457.html

相关文章:

  • CopyOnWriteArrayList和CopyOnWriteArraySet :并发安全的写时复制机制
  • 新手指南:如何轻松将文件压缩为RAR格式
  • Android多媒体——音/视频数据播放(十八)
  • 如何实现高可用评论服务
  • gtxe2_channel内部参数和寄存器配置-CPLL超频设计,超过6.6Gbps的最高速率
  • OpenHarmony按键分发流程(60%)
  • 4.redis集群
  • rk3568的data分区修改
  • 以太网PHY布局布线指南
  • Houdini POP入门学习07 - 分组
  • 热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
  • 论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
  • 游戏开发中常见的战斗数值英文缩写对照表
  • ubuntu中安装conda的后遗症
  • 3439. 重新安排会议得到最多空余时间 I
  • vue3 报错Missing semicolon
  • Yolov8 目标检测蒸馏学习记录
  • 【2025】pycharm 安装
  • 详解什么是One-Hot Encoding (独热编码)
  • PH热榜 | 2025-06-08
  • Ascend NPU上适配Step-Audio模型
  • C语言数据结构笔记4:子函数中使用的sizeof 指针无法获取数组的实际大小
  • 学习经验分享篇(3)——电机驱动电力电子方向投稿经历
  • 职场生存发展指南 | 边界 / 责任 / 社交 / 情绪
  • 个人自用debian启动
  • C语言 学习 宏命令(预处理) 2025年6月9日14:41:39
  • 【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
  • 机器人模仿学习调研
  • 处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
  • Android实践:查看远程文档