Skip to content
On this page

使用凹语言开发Dora SSR游戏


Dora SSR是一款开源的2D游戏引擎,具有多语言支持、跨平台、高效开发工具链、丰富游戏功能等诸多优势,能帮助开发者快速制作游戏。最近Dora SSR作者增加了对凹语言开发游戏脚本的支持,具体可以参考 给凹语言编写游戏引擎绑定的故事。这里将简单展示如何使他凹语言开发一个Dora SSR游戏演示程序。

1. Dora SSR引擎

在开始开发之前,除了安装凹语言环境,还需要安装 Dora SSR 游戏引擎。该引擎支持多种平台,包括 Windows、Linux、macOS、iOS 和 Android。具体的安装步骤和要求,请参见官方快速开始指南:Dora SSR 快速开始

2. 创建新项目

在 Dora SSR 引擎的二进制程序启动以后,在浏览器中打开 Dora SSR 的 Web IDE,右键点击左侧游戏资源树,选择「新建」并创建名为「Hello」的新文件夹。

3. 凹语言编写游戏代码

首先克隆 https://github.com/IppClub/dora-wa 仓库,然后按照仓库的 readme.md 文档将 src/main.wa 修改为以下代码:

go
import "dora"

func init {
	// create a sprite
	sprite := dora.NewSpriteWithFile("Image/logo.png")

	// create a root node of the game scene tree
	root := dora.NewNode()

	// mount the sprite to the root node of the game scene tree
	root.AddChild(sprite.Node)

	// receive and process tap event to move the sprite
	root.OnTapBegan(func(touch: dora.Touch) {
		sprite.PerformDef(dora.ActionDefMoveTo(
			1.0,                  // duration, unit is second
			sprite.GetPosition(), // start position
			touch.GetLocation(),  // end position
			dora.EaseOutBack,     // easing function
		), false)
	})
}

其中dora.NewSpriteWithFile("Image/logo.png")是创建了一个Logo精灵。因此还需要一个Image/logo.png路径的图片文件,可以自行找一个Logo图片放到该路径下。

构建生成 WASM 文件:

wa build -optimize

成功将生成output/init.wasm文件。

4. 上传并运行游戏

在 Dora SSR Web IDE 中,右键点击新创建的文件夹「Hello」,选择「上传」并上传编译好的 WASM 文件 init.wasm和Logo图片文件。

然后运行的效果如下:

5. 后记

这是一个简单甚至简陋的教程,目前展示的程序和凹语言本身都是,但是在程序跑起来的瞬间依然激动。Dora SSR和凹语言两个都是诞生于民间的草根开源项目,项目发起人纯萃是因为热爱而启动并维护各自项目多年。而现在这两个来自不同领域的国产草根项目居然在一个极为小众的领域会师(这让我回想起2023年底在成都的国产编程语言会师场景),我终于可以用自己的语言在一个同样是国产的游戏引擎上玩耍小游戏开发了。虽然一切挑战才刚刚开始,但是Dora SSR作为凹语言社区的第一个种子项目,更让我们看到了未来无限的可能性。