2013-10-26 25 views
2

我今年11歲,我用Java,HTML和CSS編程。那麼我有一個遊戲,它是一個Minecraft 2D平臺遊戲。檢測圖像何時與某種顏色相交?

好吧,我邊上有一些水,我想要做的是當玩家與水相交時,我希望它放慢速度。這是一個例子,如果有一種方法可以做到這一點,以防萬一你還不明白我的目標。

if (player.intersectsColor("0026FF")) 
    playerSpeed = 2; 
else 
    playerSpeed = 3; 
+0

諾亞,對不起,其他用戶在這裏低調你,而不是提出建議或要求更澄清的問題。你問是否Minecraft有這樣一種方法與intersectsColor,或者你問這是否是一個正確的方法來做到這一點,如果方法確實存在? – 2013-10-26 00:30:22

+0

@BrianReindel我添加的代碼就是這樣一個例子,如果這種方法存在於Image類中。我問的是如何在'Image''播放器與某種顏色相交時執行代碼,在這種情況下,藍色代碼爲0026FF。我想要的是當玩家進入水中(0026FF)時,然後將playerSpeed整數減1。我說'playerSpeed = 2'而不是'playerSpeed - '的原因是因爲這將會在一個循環中運行,它會做的是每毫秒在水中花費的時間減去它。 –

+0

您可能會發現,您在http://gamedev.stackexchange.com/或甚至是Minecraft的其中一個社區https://minecraft.net/community上的反應會更大。對於Minecraft來說,它比Java更具體。 – 2013-10-26 14:18:50

回答

2

我建議你代表水不是靠它的顏色,而是靠它的位置。這樣您就可以檢查玩家是否在代表水的「瓦片」中,並相應地調整速度。

這你可以在x/y座標的簡單比較(調整爲「平鋪」 /「播放器」的大小)做

如果你沒有很好的網狀瓷磚,但曲線/多邊形,您需要閱讀幾何圖形以及如何計算(可能是彎曲的)線交點。確切的算法將取決於使用的曲線。

我鼓勵你使用顏色本身的交集很多雙重原因:

  1. 在單一顏色限制「相交」的動態彩色地形/物體的能力後
  2. 你不能有具有相同顏色的兩種不同terrain.object類型
  3. 具有地形/物體的顏色(例如棕色)不會告訴您玩家遇到哪個藍色地形/物體(例如,它是第一個還是第二個胸部?)

如果你想真的想要用顏色表示地形,你可以將玩家的遊戲內座標轉換爲屏幕座標,並查看屏幕上該座標處的顏色像素(在玩家在場景中渲染之前),但這很混亂。

+0

好吧,我把水放在背景圖上,它的彎曲,這就是我需要幫助 –

+0

看最後一個 –