過去数年間、C++ と Java を少しコーディングしてきましたが、今では Python から始めました。目標はゲームを作ることです。しかし、プレイヤーが左右に動く基本的なアニメーションの部分で、左の「速度」が右の「速度」よりも速いことに気付きました。私の「速度」の値はまったく同じですが。
更新機能:
def update(self,dt,game):
last=self.rect.copy()
self.time+=dt
if self.left:
self.rect.x-=300*dt
if self.right:
self.rect.x+=300*dt
左の速度を 300 ではなく 250 に変更すると、同じように動作することに気付きました。たとえば、左キーと右キーの両方を押すと、プレーヤーはまったく同じ場所にとどまります。ただし、左右の速度が両方とも 300 の場合、プレーヤーはゆっくりと左に移動します。
私のゲームループ:
while 1:
dt=clock.tick(60)
if dt>1000/60.0:
dt=1000/60.0
for event in pygame.event.get():
if event.type==pygame.QUIT:
return
if event.type==pygame.KEYDOWN and event.key==pygame.K_ESCAPE:
return
if event.type==pygame.KEYDOWN and event.key==pygame.K_LEFT:
self.player.left=True
self.player.image=self.player.leftimages[1]
if event.type==pygame.KEYDOWN and event.key==pygame.K_RIGHT:
self.player.right=True
self.player.image=self.player.rightimages[1]
if event.type==pygame.KEYUP and event.key==pygame.K_LEFT:
self.player.left=False
self.player.image=self.player.leftimages[0]
if event.type==pygame.KEYUP and event.key==pygame.K_RIGHT:
self.player.right=False
self.player.image=self.player.rightimages[0]
self.tilemap.update(dt/1000.0,self)
screen.fill((0,0,0))
self.tilemap.draw(screen)
pygame.display.update()
タイル マップ エディターで作成したマップをインポートできるように、Richard Jones の tmx ライブラリを使用しています。これが私の奇妙な質問に答えるのに十分な情報であることを願っています. 私は他のプログラミングの友人に尋ねましたが、彼はそれが奇妙だと感じました。
一部のコードがオフになっている可能性があります。これは、元のコードからコピーして貼り付けただけで、さらにいくつかのものが含まれているためです。しかし、私は動きを制御する最も基本的な部分を抽出しました.
お時間をいただきありがとうございます!