私はソフトウェア開発のクラスで卓球ゲームを作っていますが、これは宿題だと言っておかなければならないので、私の理解は限られています。NPC パドルの AI の作成に問題があります。私はKivyとPythonを使用しています。
現在、これを行うことで AIを打ち負かすことはできません。
#ai
self.player2.center_y = self.ball.y
ここself.player2.center_y
で、 は NPC の y 座標 (y 軸上でのみ移動) でありself.ball.y
、 はボールの y 座標です。Kivy サイトのチュートリアルに従って、ゲームの基礎を作成しました。
どうすれば打ち負かすことができる AI を作成できるかわかりません。AI の速度を制限する必要があることはわかっているので、ボールが速くなりすぎるとつかめなくなります。ただし、実際には速度機能はありません。
私が従ったチュートリアルの問題は、すべてを説明していないことです。私は言うことで速度関数を作ることができると信じています
"Every x seconds, the paddle will move x pixels in the y axis."
これは、kivy チュートリアルに従ってボールが提供される方法です。
def serve_ball(self, vel=(10,0)):
self.ball.center = self.center
self.ball.velocity = vel
よし、今度はこれを理解しようとする...vel=(10,0)):
おそらく、10ピクセルのXと0ピクセルのYを移動し、それをに割り当てball.velocity
、明らかにそれが速度を制御する...
class PongApp(App):
def build(self):
game = PongGame()
game.serve_ball()
Clock.schedule_interval(game.update, 1.0/300.0)
return game
Clock.schedule_interval(game.update, 1.0/300.0)
これに関して、ボールが動く速度は…と仮定しても安全でしょうか? つまり、1/300 秒ごとに 10 ピクセル x と 0 y ですか? 1/20くらいに変えると動きがかなり遅くなってしまうので…と思います。
次に、AI を保持する関数を作成する必要があります...おそらく
def AI(self):
self.AI_Speed = self.ball.velocity - 10
self.player1.
私のパドルを指します。
そしてええ..今私は立ち往生しています。この速度を使用してパドルの移動を制御する方法がわかりません。誰にもアイデアはありますか?私の質問は非常に曖昧である可能性が高いため、理解を深める必要がある場合に備えて、ゲームのソースを提供します. ありがとうございました。
psこれは大きな質問であり、多くの質問があることを認識していますが、誰かが答えてくれることを願っています. ありがとう。