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

制作一款打飞机游戏18:敌人子弹

今天,我们将对这个敌人做更多的事情,让它移动得更多,更接近于实际的游戏体验。我们还会让它发射子弹。

敌人行为设计

  • 初步设想‌:首先,我们要明确,我们现在做的都是初步的工作,只是创造一个敌人来测试游戏中的元素和可能遇到的问题。
  • 多行为敌人‌:我们可能想要有多个敌人,每个敌人都有不同的行为。为此,我们可以为敌人设置一个“大脑”变量,用来标识它的行为类型。
  • 年龄变量‌:此外,我还想为敌人增加一个“年龄”属性,用H来表示。这样,我们可以根据敌人的年龄来决定它的行为。

实现敌人动画

  • 动画实现‌:在实现敌人的动画时,我们遇到了一些问题,比如如何优雅地处理敌人的移动和停留。
  • 代码优化‌:我们意识到,游戏中有很多相似的系统可以合并,以提高代码的重用性。
  • 调试过程‌:在调试过程中,我们发现了一些问题,比如敌人的移动速度、停留时间等,都需要不断调整以达到最佳效果。

子弹系统

  • 子弹创建‌:接下来,我们为敌人创建了子弹系统。首先,我们需要创建一个子弹的精灵(sprite)。
  • 代码重用‌:为了代码的重用性,我们尝试将发射子弹的代码抽象出来,使其既可以用于敌人子弹,也可以用于玩家子弹。

敌人生成与销毁

  • 敌人生成‌:为了让游戏更加有趣,我们决定让敌人不断生成。为此,我们编写了一个函数来定时生成新的敌人。
  • 随机生成‌:为了让游戏更具挑战性,我们尝试让敌人在随机位置生成。然而,这样做也带来了一些问题,比如敌人可能会重叠或出现在不合逻辑的位置。
  • 敌人销毁‌:当敌人飞出屏幕或达到某种条件时,我们需要将其销毁。为此,我们编写了相应的逻辑来处理敌人的销毁。

function dobuls(arr)for s in all(arr) dos.x+=s.sxs.y+=s.sys.si+=0.5if flr(s.si)>#s.sani thens.si=1endif s.y<-16 or s.y>130 thendel(arr,s)endend
end

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

相关文章:

  • 量子金融工程:蒙特卡洛算法误差压缩至0.3%
  • 【刷题Day24】I/O模型(浅)
  • Rust 学习笔记:安装 Rust
  • YOLOv11架构革新:基于增强型空间-通道协同模块(ESE)解决SE注意力机制中的通道信息丢失问题
  • Linux驱动开发2 - 内核定时器驱动
  • 【android bluetooth 协议分析 06】【l2cap详解 6】【L2CA_Register函数解析】
  • Certimate本地化自动化 SSL/TLS 证书管理解决方案
  • 探索Hadoop:大数据世界的基石
  • RabbitMQ复习笔记
  • HarmonyOS-ArkUI: 组件内转场(transition)
  • create_function()漏洞利用
  • vue | 不同 vue 版本对复杂泛型的支持情况 · vue3.2 VS vue3.5
  • Linux的进程间通信
  • 鸿蒙NEXT开发网络相关工具类(ArkTs)
  • Windows:注册表配置应用
  • 从0到1掌握机器学习核心概念:用Python亲手构建你的第一个AI模型(超多代码+可视化)
  • 杂谈-有感而发
  • Oracle创建触发器实例
  • 力扣hot100_链表(3)_python版本
  • 在 UniApp 中获取当前页面地址
  • 【专题刷题】滑动窗口(四):
  • 华为仓颉编程语言基础概述 II
  • 【Unity笔记】Unity音效管理:ScriptableObject配置 + 音量控制 + 编辑器预览播放自动化实现
  • linux系统调用
  • 深入解析 Linux 系统中库的加载机制:从静态链接到动态运行时
  • 身份证实名认证:通往数字安全与便捷生活的钥匙
  • 出现 ORA-00904: “TENANT_ID“: 标识符无效 解决方法
  • openEuler Developer Day 2025举办!麒麟信安共筑坚实软件根基
  • MySQL数据库精研之旅第十期:打造高效联合查询的实战宝典
  • Spring Security:企业级安全架构的设计哲学与工程实践