2016-02-25 49 views
2

所以我想創建一個2D橫向卷軸javafx遊戲。JavaFX橫向卷軸遊戲:如何在「擴展」場景中生成交互式對象

到目前爲止,我用AnimationTimer來控制我角色的移動。但現在我有點卡住試圖讓舞臺移動。

我可以再次使用AnimationTimer移動非交互式元素。但是我對如何在遊戲中生成交互元素缺乏一個想法。

例如,可以說玩家走了很多步,並拿起皮卡。現在我該如何將這款皮卡放在舞臺上,以便在稍後的比賽中進行。要嘗試解釋我的問題,不妨考慮這個討厭的圖片我在油漆畫:

enter image description here

最初,只有綠色邊界之間的屏幕是玩家可見。玩家必須向前走(因此屏幕也必須向前走),並且應該在兩面牆之間找到拾取。如何將外部場景的可見視圖放置在視圖中,以便只有當玩家達到視圖時才能看到視圖?

回答

0

簡單的方法:將所有內容添加到場景中,並給它絕對座標。您通過更改場景中的座標來移動播放器。根據玩家開始滾動的位置而定。在您滾動背景的同時,您還可以移動所有其他物體的相同x和y座標。可見視圖具有給定的寬度和高度。根據玩家的位置,查看寬度/高度和對象範圍,對象在滾動期間變得可見。

+1

我知道這種方法......但有兩個問題:我爲可變屏幕尺寸製作,因此我不能硬編碼這些拾音器的位置,而必須相對於舞臺的寬度/高度(有些幫助,如果可能的話,即使一個例子也適用於此)。下一個問題是有太多的元素移動。是不是有一種方法可以將它們全部放入某個容器中,然後移動該容器?因爲我想避免在脈衝更新中執行如此多的任務..... – user3271166

+0

如果您創建示例代碼,則更有可能獲得幫助。可變屏幕尺寸不是問題。當然,你可以把它放在各種容器(如窗格)中,但優化通常是一切工作時發生的過程。 – Roland