跳转到内容
彼岸论坛
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[程序员] 凹语言支持 Wasm4 游戏平台


小天管理

已推荐帖子

凹语言是国内首个面向 WebAssembly 设计的通用编程语言,也是国内首个被 CNCF 基金会 wasm 全景图收录的开源编程语言。在 2022 年刚刚开源时,凹语言开发组以贪吃蛇为例做了第一个案例。具体请参考: https://wa-lang.org/smalltalk/st0018.html

st0018-01.png

在线试玩地址: https://wa-lang.org/wa/snake/

Wasm4 版本的贪吃蛇

Wasm4 是一个使用 WebAssembly 构建复古风格游戏的框架。它提供了一个 160 x 160 像素、64K 内存的游戏主机。通过使用 WebAssembly 技术使得开发的游戏能够在所有网页浏览器和一些低端设备上运行。随着凹语言支持 Wasm4 平台,现在开发者也能使用凹语言轻松开发 Wasm4 游戏。

以下是 Wasm4 贪吃蛇的效果图:

st0046-01.png

实现代码在 waroot/examples/w4-snake 目录下。

Wasm4 快速入门

先安装 wa-v0.15.0 命令行程序,然后执行以下命令:

$ wa init -wasm4
$ tree hello
hello
├── README.md
├── src
│   └── main.wa
└── wa.mod

在 hello 目录生成一个 Wasm4 版本的你好世界例子。其中 main.wa 代码如下:

import "syscall/wasm4"

首先是导入syscall/wasm4包,然后定义 Update 函数:

global smiley = [8]byte{...}

#wa:export update
func Update {
	wasm4.SetDrawColors(2)
	wasm4.Text("Hello from Wa-lang!", 10, 10)

	gamepad := wasm4.GetGamePad1()
	if gamepad&wasm4.BUTTON_1 != 0 {
		wasm4.SetDrawColors(4)
	}

	wasm4.Blit(smiley[:], 76, 76, 8, 8, wasm4.BLIT_1BPP)
	wasm4.Text("Press X to blink", 16, 90)
}

首先是调用wasm4.SetDrawColors设置绘制颜色,然后调用wasm4.Text在屏幕的指定坐标绘制文字。然后根据wasm4.GetGamePad1()获得游戏按键状态,并有条件调整绘制颜色。最后wasm4.Blit()调用绘制一个笑脸精灵。

进入 hello 目录编译和执行:

$ wa build -target=wasm4
$ w4 run output/hello.wasm

st0046-02.png

意见的链接
分享到其他网站

加入讨论

您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.

游客
回复主题...

×   粘贴为富文本.   粘贴为纯文本来代替

  只允许使用75个表情符号.

×   您的链接已自动嵌入.   显示为链接来代替

×   您之前的内容已恢复.   清除编辑器

×   您无法直接粘贴图片.要从网址上传或插入图片.

  • 游客注册

    游客注册

  • 会员

    没有会员可显示

  • 最新的状态更新

    没有最新的状态更新
  • 最近查看

    • 没有会员查看此页面.
×
×
  • 创建新的...