上周我在这里分享了一篇文章,描述了一个重写我的手机游戏的项目,一堆人对源代码表示很感兴趣。所以我回来了,带着我承诺的代码回来了 你可以在 https://github.com/lucamoller/pandadoodle-rust-wasm 找到它。一些免责声明。这些代码是为了好玩而写的,最初只是给我看的。为了与大家分享,我试着把代码清理/整理了一下(相信我,它仍然混乱得多),但仍有很多事情可以做。另外,这些代码并不是为了 "锈化"。恰恰相反,我是想看看用Rust编写非Rust风格的代码能走多远(我在文章中谈到了这一点),所以你可能会发现一些奇怪的东西。如果有些东西伤害了你的眼睛,请原谅我 :) 不过,我还是很愿意听取反馈意见的!如果你发现了反常规的问题,请告诉我。如果你发现了一个反常规或你认为可以用更简单或更优雅的方式来完成的东西,我很乐意听到。我最终使用了大量的Rc+内部可变性,因为这使得代码更容易翻译/管理/归纳。与浏览器的渲染瓶颈相比,这些模式对性能的影响似乎可以忽略不计(仅仅是使用WASM而不是Javascript,我就得到了很多执行游戏逻辑的空间),所以我在添加一些Rc的地方之前没有多想,这将使我的生活更轻松 :P 谈到性能,我做了一些工作来改善安卓版Firefox上的东西(当我第一次发布时,游戏在那里运行得很慢),这似乎有很大的影响:在我的手机上,帧数从20到40。感觉更容易忍受了,但仍然比Chrome慢。我怀疑火狐浏览器正在以根本不同的方式进行画布渲染,而我无法对其进行优化(有些人认为这可能与另一篇帖子中的画布指纹保护有关,但我还没有找到激活/停用这些保护的标志来确认它)。最后,请随时提出关于代码的任何问题。我很乐意尝试回答!
flaky_test可以使用这个库We regrettably lack nominations,
so as I can't choose fresh quotations,
at last nor this time,
I'll offer this rhyme
to quell all discombombulations.
原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。