2011-02-09 18 views
1

に「インテリジェンス」を追加: http://www.env3d.org/beta/node/79私はこのウェブサイトから、演習をやっているゲーム

すべてのコードが、すべてです。私は質問3に取り組んでいますが、何も出てこなかった。私は次に何を試すべきか分かりません。何か案は?

+1

ヒント:Foxクラスでmove()メソッドを作成すると、Creatureのmove()メソッドがオーバーライドされます。 [参照してください](http://www.env3d.org/beta/node/79) –

+0

http://gamedev.stackexchange.com/でチェックアウト –

+5

真剣に、しかし。少なくとも、ここで問題を転記し、人々がリンクをたどることを期待しないでください。しかし、それでもなお、SOは特定の技術的な質問に答えるためのものです。あなたが特定の問題を抱えている場合は、少なくとも、試みてください。 –

答えて

1

どのようにオブジェクトを最も近いオブジェクトに移動させますか?最初に、最も近いオブジェクトが何で、どこにあるのかを知る必要があります。

まず、最も近い敵オブジェクトが何であるかを知るためのコードを書くことをお勧めします。 :)

+0

だから、私は距離式を使ってFox自身ではない最も近いオブジェクトを調べます。しかし、私はどのようにして彼を最も近いオブジェクトに向かって「引っ張る」ようにしますか? – bobby

+0

あなたはすでに移動方法を持っていますが、ランダムに方向を選択する部分があり、最も近い生き物がどこにあるかに基づいて移動する方向を選択するコードにコードのその部分を置き換えます。 – jhurtado

1

移動メソッドには他のクリーチャーのコレクションが渡されます。だから、あなたは他のクリーチャーを反復し、このクリーチャー(キツネ)と他のクリーチャー(それがタックスの場合のみ)からの距離を見つけたいでしょう。最短距離とどのタックスであるかを書き留めておき、その方向にキツネを動かしてください。

あなたはキツネとタックスの座標を知っているので、キツネをタックスに近づけるためにキツネを動かすにはどのような方法が必要です。

一般的なアイデアは、あなただけのコードにそれを変換する必要がある

;)

1

は、私が最近similar questionに答え...私はあなたが線形補間

から引き出さいくつかの擬似コードを探していると思います上記のリンク:

speed = 5; // "pixels" per frame 
deltaX = destX - sourceX; 
deltaY = destY - sourceY; 
distance = sqrt(deltaX^2 + deltaY^2); 

moveX = speed/distance * deltaX; 
moveY = speed/distance * deltaY; 

newX = sourceX + moveX; 
newY = sourceY + moveY; 
関連する問題