2012-03-01 154 views
1

我目前正在研究2D遊戲項目(Java),但到目前爲止,任何遊戲邏輯或AI都被粗暴地實現。例如,假設我需要在屏幕頂部隨機定位一組精靈,我將使用Random類來完成這個任務。我只是簡單地使用Random.nextInt(產生的x軸大小);雖然這確實起作用,但我很想知道我應該如何處理這類事情。作爲第二種場景(這就是爲什麼我把AI放在標題中,儘管它不是真的是 AI),假設我想讓我的角色隨機閃爍,像一個生活般的時尚。我在這裏要做的是使用Random類來計算閃爍的百分比(可能是20%)並每秒調用一次。基本遊戲邏輯/ ai設計

任何建議,我應該如何真正去這個將不勝感激。

+1

聽起來不錯。有什麼問題? – 2012-03-01 12:20:35

回答

2

Google針對Craig Reynolds撰寫的題爲「Steering Behaviors」的文章。它解決了這個問題,你會發現很棒的想法,開始具體地提供一些好的想法,讓精靈羣體呈現'智能'的運動。在他的不同行爲中,如植絨等,關鍵在於讓任何給定的精靈的屬性依賴於某些其他精靈的屬性。甚至可以說,就像 - 只有當兩個鄰居剛剛眨眼時,任何給定的精靈纔會閃爍。這些線上的東西或其他。

希望這會有所幫助!

+1

Reynolds論文是用C++編寫的,但是Java的實現都在網絡上。 – 2012-03-01 15:01:33

+0

這很好(對於這樣一個遲到的回覆感到抱歉),我將在接下來的日子裏看這篇文章。 – AaronDS 2012-03-05 21:52:57

+0

沒問題 - 這裏有另一對酷的資源。 Keith Peters在「高級ActionScript 3動畫」中涵蓋了Steering Behaviors,並且還有另外一本介紹性書籍「Making Things Move:Actionscript 3動畫」。這些例子都在actionscript 3中,但寫作很清晰,你可以很容易地翻譯。塞滿了對遊戲開發非常重要的想法。 – 2012-03-09 20:49:18

1

您是否使用OOP(面向對象方法)?如果沒有,你一定要考慮一下。 Java非常簡單,可以加快開發時間並縮短代碼。我會做一個精靈類,並給他們一個函數,說actionSpawn,或actionMove(我喜歡用word動作開始我的「動作」功能,因此他們很容易識別)。在這個函數中,你可以封裝Random.nextInt函數來設置精靈的x和/或y位置。

您可以使用相同的方法使它們閃爍。

+0

是的,這實際上是我已經在做的。我不會與其他程序員合作太多(如果有的話),所以當我想出一些東西時,我經常會假設其他人都以不同的方式做事。謝謝! – AaronDS 2012-03-01 13:18:14