タイトルが言ったように、私は pygame ライブラリを使用して python で RPG エンジンを構築しようとしています。簡単なマッピング エンジンを作成できたので、プレイヤー オブジェクトを作成してみることにしました。現在、gameObjects とメイン クラスの 2 つのクラスがあります。「グリッド サーフェス」全体を移動するプレーヤー オブジェクトを作成することができました。私はこのコードを使用してこれを行いました:
def move(self):
self.start = time.time()
self.timeElapsed = time.time()-self.start
while (self.timeElapsed < .1):
self.timeElapsed = time.time()-self.start
self.x += self.movex
self.y += self.movey
これにより、プレイヤーは選択した速度で移動できるようになり、ゲーム ループ中に呼び出されます。
for event in pygame.event.get():
(code to make the controls, basically modifies the players movex or movey)
player.move()
これはすべて正常に機能しますが、次に必要なステップは、代わりにプレーヤーをスペース間で「スライド」させることです。つまり、プレーヤーは単に次のスペースにジャンプするのではなく、スペース間をスムーズに移動します。私はばかげたことをいくつか試しましたが、これを行う適切な方法を理解できないようです. ありがとう!
編集: 私が言及するのを忘れていた非常に重要なことは、プレーヤーを表示するときに、x と y を 32 で乗算することです。これにより、32x32 グリッドが作成されます。コードは次のとおりです。
screen.blit(player.img, (player.x*32, player.y*32))