2017-08-13 35 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並不打算用於遊戲。 –