【发布时间】:2017-01-02 18:32:03
【问题描述】:
这是我的代码。我试图让精灵四处移动。有课程是因为这只是一个项目的开始。
import pygame, sys
pygame.init()
surf = pygame.display.set_mode((1280, 720))
blackorwhiteorsomething = (0, 0, 0)
surf.fill(blackorwhiteorsomething)
fps_clock = pygame.time.Clock()
pygame.display.flip()
class Player(pygame.sprite.Sprite):
def __init__(self, name):
self.name = name
self.image = pygame.Surface((22, 22))
self.image.fill((130, 100, 200))
self.rect = self.image.get_rect(x = 100, y = 300)
self.x_vel = 0
self.y_vel = 0
def speed(self, speed):
self.speed = speed
def update(self, keys):
if keys[pygame.K_DOWN]:
self.y_vel = 1
elif keys[pygame.K_UP]:
self.y_vel = -1
else:
self.y_vel = 0
if keys[pygame.K_LEFT]:
self.x_vel = -1
elif keys[pygame.K_RIGHT]:
self.x_vel = 1
else:
self.x_vel = 0
def update1(self, keys):
if keys[pygame.K_s]:
self.y_vel = 1
elif keys[pygame.K_w]:
self.y_vel = -1
else:
self.y_vel = 0
if keys[pygame.K_a]:
self.x_vel = -1
elif keys[pygame.K_s]:
self.x_vel = 1
else:
self.x_vel = 0
def draw(self, surface):
surface.blit(self.image, self.rect)
player = Player('Tank')
def main():
while True:
keys = pygame.key.get_pressed()
player.draw(surf)
player.update(keys)
player.update1(keys)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
pygame.display.update()
fps_clock.tick(60)
main()
不会引发错误,但精灵不会移动。帮助! (PS,我在这方面有点像新手,所以如果它是愚蠢的,不要太苛刻。)
【问题讨论】:
-
问问自己你真正更新的位置在哪里
-
在您的方法
update和update1中更新速度x_vel和y_vel。但你永远不会更新实际位置。 -
啊,知道是什么了。愚蠢的错误。抱歉耽误您的时间。
标签: python python-2.7 pygame