简体中文
English 简体中文 繁體中文
Methodox 首页

在 Glaze! 中制作 Sky Hopper

复杂度: 20s(1 个图)(?) 技能水平: ★★★★☆(高级)
难度: ★★★☆☆(中级)
收获: ★★★★☆(高)
阅读时间: 15 分钟
状态: 编写中(WIP)
修订版本: 001
最后更新: 2025-06-11

实时图形调试很困难,尤其是因为 Glaze 是一个底层图形框架。

本教程仍在编写中,尚未完成。

要求:

  1. Divooka Community 版,或带有 Glaze! 工作负载的 Divooka Compute
  2. 一台 Windows PC/笔记本电脑(Divooka 的 GUI 编辑器目前仅支持 Windows)
  3. 30 分钟到 1.5 小时的时间,取决于你的技能水平

你将学到的技术:

  1. 从文件加载资源
  2. 实现形状之间的 2D 碰撞
  3. 高级状态管理
  4. 从零开始创建 GUI

涉及的语言特性:

  • 过程式上下文
  • 状态管理
  • 函数(使用 Custom Event)
  • Glaze! 交互式媒体框架

有帮助的预备知识

  • 了解 Divooka 中的过程式上下文
  • 了解如何在 Divooka 中调试过程式程序

概览

图:最终结果的屏幕截图
图:最终结果的屏幕截图

总的来说,这项任务的主要技术难点是 2D 碰撞检测。其余部分(状态处理等)在任何过程式应用程序中都很常见。完成本教程后,你将对 2D 电子游戏的工作原理有扎实的理解。

下面是 Divooka 中设置的快照。

Divooka 中的设置

涉及的游戏知识:

  1. 实体生成与管理
  2. 碰撞检测
  3. 坐标系
  4. 刚体运动学
  5. HUD 与渲染顺序
  6. 键盘事件

准备工作

资源下载

文件夹结构

(游戏文件夹的屏幕截图/目录树)

程序设置

最简单的可运行游戏

一只青蛙 移动的背景

组织程序的各个部分

拼合各部分 添加 GUI

整理

添加音效(SFX)

调试与测试

结语

在本教程中,我们了解了如何使用 Glaze! 在 Divooka 中制作 Sky Hopper。从软件工程的角度看,主要难点在于碰撞处理以及源代码和资源的管理。

借助本教程介绍的技术,你现在已经能够开发带有 HUD 和实体对象的简单 2D 电子游戏——不过,你还无法处理“可变形”的对象,例如 Angry Birds 中的那种。

进一步开发

为简单起见,我们使用自定义事件来拆分过程式逻辑;更好的方法是把函数定义为子图。

你可以对游戏做出的一些改进:

  1. 在小鸟扇动翅膀、撞击或死亡时添加音效。
  2. 处理管道的程序化生成:自动删除移出视野的管道,并即时生成新的管道
  3. 更好地处理背景图像

参考资料

  • 视频演练:YouTube
  • Glaze! 框架文档:Wiki
  • Glaze! 音频 API:Wiki
  • 图形和音频资源下载:此处
  • 完成的 Divooka 程序下载:此处