我正在尝试学习游戏编程(以及一般的编程),因此我使用 pygame 在 Python 中制作了一个简单的侧滚器。
问题是,当我将角色(一个简单的立方体)向左移动时,它比向右移动时移动得更快,如稍后在控制台中所示。
带有循环的主类(我删掉了其中的一些,因为我认为它没有相关性,但如果需要,我可以发布它):
player.speed = 135
player = Player.Cube([255,0,0],600, screen.get_height()*0.8-screen.get_height()*0.125,screen.get_height()*0.125,screen.get_height()*0.125)
running = True
clock = pygame.time.Clock()
while running:
deltaTime = clock.tick(60) / 1000
screen.blit(background, (0, 0))
screen.blit(player.image,(player.rect.x,player.rect.y))
screen.blit(grass,(0,screen.get_height()-grass.get_height()))
keystate = pygame.key.get_pressed()
if keystate[K_RIGHT]:
player.moveRight(deltaTime)
elif keystate[K_LEFT]:
player.moveLeft(deltaTime)
pygame.display.flip()
Run Code Online (Sandbox Code Playgroud)
立方体类:
class Cube(pygame.sprite.Sprite):
speed = 0
def __init__(self, color, left,top, width, height):
# Call the parent class (Sprite) constructor
pygame.sprite.Sprite.__init__(self)
self.left = left
self.top = top
self.image = pygame.Surface([width,height])
self.image.fill(color)
self.rect = pygame.Rect(left, top, width, height)
def …Run Code Online (Sandbox Code Playgroud)