2017-08-13 105 views
2

我目前正在改造几年前在Swing/AWT中制作的游戏,这次使用JavaFX。我目前的困境是最初的游戏有一个“手电筒”,其中我首先创建了一个空白的黑色图层,然后创建一个多边形并使用混合模式从该图层中减去它。从那里开始,该图层以透明的方式绘制,表现出一切都很黑暗,玩家手中拿着一个手电筒。在JavaFX中为画布创建“阴影”图层?

我很难搞清楚如何在JavaFX中实现它。我想我可以创建一个空白的黑色图像,并且可以创建一个GraphicsContext,我可以设置一个混合模式以从图像中减去,但图像不支持这种类型的JavaFX渲染,并且在实际上,WritableImage是一个独立的类,它只允许使用PixelWriter,我必须手动设置每个像素。

我知道可能有很多我仍然不了解JavaFX,因为我之前只做过几个应用程序。有没有人有关于如何去实现这个功能的建议?如果我能让它看起来比原来好看,那会很好。

以下是旧游戏的图片供参考。

Generic Zombie Shooter

回答

0

我是能够实现类似于我在画之间的黑色层找东西时,所有的游戏实体绘制并在HUD绘制。我用80%不透明度绘制它,然后用5%不透明度和混合模式SRC_OVER绘制手电筒多边形。玩了很多不同的混合模式,但MULTIPLY绝对不是要走的路。

+0

我真的很希望能有更好的方法来用JavaFX实现这种效果,但我想我应该很高兴它是可能的。我知道JavaFX并不打算用于游戏。 –