我有一个简单的游戏是用JavaScript写的。游戏的渲染器使用 CanvasRenderingContext2D。现在我想在Java上重制我的游戏,但我遇到了麻烦。
在Java上是否有CanvasRenderingContext2D的替代品?我需要像ctx.save((,ctx.scale((,ctx.translation((等方法。我尝试使用Graphics2D,但它不是一个好的解决方案。
Graphics2D
在功能上大致等同于CanvasRenderingContext2D
,所以我不确定你为什么会说Graphics2D
不是一个好的解决方案。
如果你不想使用Graphics2D
Java中的另一种选择是使用JavaFXCanvas
和GraphicsContext
,在功能上也大致等同于在HTML Canvas上呈现。
所有这些 API 或多或少都做同样的事情(2D 渲染(,但在我看来,Java2D/Graphics2D
是最好的设计(特别是从某种意义上说,API 与实现完全分离,因此您可以轻松更改目标 - 例如,我编写了Graphics2D
子类,这些子类以 SVG 和 PDF 格式编写输出,而无需更改调用代码(。