Rust WASM 自制俄罗斯方块游戏
起因 事情的起因是在 Switch 上玩 Tetris99 游戏,由于不喜欢这种吃鸡的形式,只想玩小时候的那种掌机模式,于是想到可不可以自己做一个。 有了这个想法以后,打算使用 Rust + WASM,一方面是学习一下新技术,另一方面考虑到能直接在浏览器运行,可以跨平台,甚至可以在电视机上用浏览器打开网页就可以玩。 选定技术栈以后,在 Github 上搜了一下,发现早有人做了类似的工作,不过没关系,主要还是要自己实现一下。 几种技术方案 学习了一圈以后,理解了用 Rust + WASM 实现一个 web 游戏的大体思路。 首先,Rust 的 wasm-bindgen 库必不可少,这是连接 rust 代码和 wasm 之间的桥梁。 其次,既然是 web 游戏,那么免不了要画图,如何画图呢? 大家都不约而同的选择了 HTML 的 canvas,这是一种 html 标准自带的画图方式,比如用下面这样简单的代码,就能画一个矩形。 <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"> </canvas> </body> </html> 所以,本质上我要做的就是用 Rust/WASM 代码 或者 JavaScript 代码,控制这个 <canvas id="myCanvas" ,并且定期刷新,这样就能显示动画效果了。 如果你是个 JavaScript 高手,并且打算全部用 JavaScript 实现,那么现在就可以开始动手了。 但如果是 Rust WASM 的方式,还需要考虑下是 纯 WASM 实现呢? 还是 WASM 实现核心算法逻辑,JavaScript 实现画图这样的组合方式? ...