这个项目是我编写Lua和Rust游戏代码,尝试新旧想法并专注于我想在运输项目之外探索的功能的游乐场。
该项目使用Love 2D从Lua访问SDL的渲染和输入轮询功能。
一些代码亮点:
计票的,支持热装
基于协同例程的,可轻松同步编写游戏功能(例如: , )
“多对多”
功能截图
碰撞
地图是使用地图编辑器创作的,该地图编辑器可以在每个tile中嵌入碰撞数据。 Love 2D中的Physics是使用Box2D实现的,但是为每个可碰撞的图块生成Box2D对象将非常低效。 相反,Crystal将地图上的图块合并为较大的多边形,如下图所示。 为了提高性能,碰撞数据的合并是在名为Diamond的Rust模块中实现的,该模块位于lib/diamond 。
导航网格生成
由于碰撞数据是如此自由形式,因此使用基于网格的路径查找会损失很多精度。 这是使用导航文本实现寻路的绝佳借口。 目前,网格生成是