【问题标题】:Any alternatives to CanvasRenderingContext2D on Java?Java 上 CanvasRenderingContext2D 的任何替代方案?
【发布时间】:2017-12-25 03:04:16
【问题描述】:
我有一个用 JavaScript 编写的简单游戏。游戏的渲染器使用 CanvasRenderingContext2D。现在我想在 Java 上重新制作我的游戏,但我遇到了麻烦。
在 Java 上是否有 CanvasRenderingContext2D 的替代方案?我需要 ctx.save()、ctx.scale()、ctx.translation() 等方法。我尝试使用 Graphics2D,但这不是一个好的解决方案。
【问题讨论】:
标签:
javascript
java
game-engine
renderer
【解决方案1】:
Graphics2D 在功能上大致相当于CanvasRenderingContext2D,所以我不知道为什么你会说Graphics2D 不是一个好的解决方案。
如果您不想在 Java 中使用 Graphics2D,另一种选择是使用 JavaFX Canvas 和 GraphicsContext,在功能上也大致相当于在 HTML Canvas 上呈现。
所有这些 API 或多或少都做同样的事情(2D 渲染),但在我看来,Java2D/Graphics2D 是最好的设计(特别是在 API 与实现完全分离的意义上,因此您可以轻松更改目标 - 例如,我编写了 Graphics2D 子类,它们以 SVG 和 PDF 格式编写输出,而无需更改调用代码)。