Skip to content

Commit 20d304a

Browse files
committed
zz
1 parent ad9d796 commit 20d304a

File tree

6 files changed

+77
-0
lines changed

6 files changed

+77
-0
lines changed

docs/public/st0067-01.png

212 KB
Loading

docs/public/st0067-02.png

100 KB
Loading

docs/public/st0067-03.png

56 KB
Loading

docs/public/st0067-04.png

103 KB
Loading

docs/smalltalk/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ title: 碎碎念
66

77
“碎碎念”是本站发布日常随笔的栏目,内容包括项目进展、小点子、有趣的讨论等。
88

9+
10+
# 使用凹语言开发Dora SSR游戏
11+
12+
- 2025-01-12: [使用凹语言开发Dora SSR游戏](st0067.md)
913
- 2024-12-26: [使用GitHub Actions自动化构建凹语言应用](st0066.md)
1014
- 2024-12-19: [凹语言跻身PLDB排行榜前200名](st0065.md)
1115
- 2024-12-13: [凹语言获 2024 上海数智融合开源技术应用创新竞赛 一等奖](st0064.md)

docs/smalltalk/st0067.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# 使用凹语言开发Dora SSR游戏
2+
3+
- 时间:2025-01-12
4+
- 撰稿:凹语言开发组
5+
- 转载请注明原文链接:[https://wa-lang.org/smalltalk/st0067.html](https://wa-lang.org/smalltalk/st0067.html)
6+
7+
---
8+
9+
Dora SSR是一款开源的2D游戏引擎,具有多语言支持、跨平台、高效开发工具链、丰富游戏功能等诸多优势,能帮助开发者快速制作游戏。最近Dora SSR作者增加了对凹语言开发游戏脚本的支持,具体可以参考 [给凹语言编写游戏引擎绑定的故事](https://mp.weixin.qq.com/s/rk9LlKo2M8N5li9CNZrbhw)。这里将简单展示如何使他凹语言开发一个Dora SSR游戏演示程序。
10+
11+
## 1. Dora SSR引擎
12+
13+
在开始开发之前,除了安装凹语言环境,还需要安装 Dora SSR 游戏引擎。该引擎支持多种平台,包括 Windows、Linux、macOS、iOS 和 Android。具体的安装步骤和要求,请参见官方快速开始指南:[Dora SSR 快速开始](https://dora-ssr.net/zh-Hans/docs/tutorial/quick-start/)
14+
15+
![](/st0067-01.png)
16+
17+
## 2. 创建新项目
18+
19+
在 Dora SSR 引擎的二进制程序启动以后,在浏览器中打开 Dora SSR 的 Web IDE,右键点击左侧游戏资源树,选择「新建」并创建名为「Hello」的新文件夹。
20+
21+
![](/st0067-02.png)
22+
23+
## 3. 凹语言编写游戏代码
24+
25+
首席克隆 [dora-wa](https://github.com/IppClub/dora-wa) 仓库,然后按照仓库的 readme.md 文档将 `src/main.wa` 修改为以下代码:
26+
27+
```go
28+
import "dora"
29+
30+
func init {
31+
// create a sprite
32+
sprite := dora.NewSpriteWithFile("Image/logo.png")
33+
34+
// create a root node of the game scene tree
35+
root := dora.NewNode()
36+
37+
// mount the sprite to the root node of the game scene tree
38+
root.AddChild(sprite.Node)
39+
40+
// receive and process tap event to move the sprite
41+
root.OnTapBegan(func(touch: dora.Touch) {
42+
sprite.PerformDef(dora.ActionDefMoveTo(
43+
1.0, // duration, unit is second
44+
sprite.GetPosition(), // start position
45+
touch.GetLocation(), // end position
46+
dora.EaseOutBack, // easing function
47+
), false)
48+
})
49+
}
50+
```
51+
52+
其中`dora.NewSpriteWithFile("Image/logo.png")`是创建了一个Logo精灵。因此还需要一个`Image/logo.png`路径的图片文件,可以自行找一个Logo图片放到该路径下。
53+
54+
构建生成 WASM 文件:
55+
56+
```
57+
wa build -optimize
58+
```
59+
60+
## 4. 上传并运行游戏
61+
62+
在 Dora SSR Web IDE 中,右键点击新创建的文件夹「Hello」,选择「上传」并上传编译好的 WASM 文件 init.wasm。
63+
64+
![](/st0067-03.png)
65+
66+
然后运行的效果如下:
67+
68+
![](/st0067-04.png)
69+
70+
## 5. 后记
71+
72+
这是一个简单甚至简陋的教程,目前展示的程序和凹语言本身都是,但是在程序跑起来的瞬间依然激动。Dora SSR和凹语言两个都是诞生于民间的草根开源项目,项目发起人纯萃是因为热爱而启动并维护各自项目多年。而现在这两个来自不同领域的国产草根项目居然在一个极为小众的领域会师(这让我回想起2023年底在成都的国产编程语言会师场景),我终于可以用自己的语言在一个同样是国产的游戏引擎上玩耍小游戏开发了。虽然一切挑战才刚刚开始,但是Dora SSR作为凹语言社区的第一个种子项目,更让我们看到了未来无限的可能性。
73+

0 commit comments

Comments
 (0)