Я делаю проект для своего класса Computer Science, где мы используем pygame для перемещения объекта по экрану. Я не использую спрайты pygame, а скорее изображения, импортированные в pygame, и использую их для использования в качестве пользовательских спрайтов. Когда я пытаюсь переместить объект Bunny или «Player» по экрану, он, похоже, обновляет позицию. Это объект Player, я пытаюсь изменить позицию:
class Player(object):
def __init__(self, x, y, filename):
self.x = x
self.y = y
self.image = pygame.transform.scale(pygame.image.load(filename), (150, 200))
self.moving_left = False
self.moving_right = False
self.moving_up = False
self.moving_down = False
def moveUpdate(self):
if self.moving_left:
self.x -= 25
pygame.display.update()
if self.moving_right:
self.y += 25
pygame.display.update()
if self.moving_up:
self.y -= 25
pygame.display.update()
if self.moving_down:
self.y += 25
pygame.display.update()
def moveEvent(self, event):
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
self.moving_left = True
if event.key == pygame.K_RIGHT:
self.moving_right = True
if event.key == pygame.K_UP:
self.moving_up = True
if event.key == pygame.K_DOWN:
self.moving_down = True
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
self.moving_left = False
if event.key == pygame.K_RIGHT:
self.moving_right = False
if event.key == pygame.K_UP:
self.moving_up = False
if event.key == pygame.K_DOWN:
self.moving_down = False
def draw(self, screen):
screen.blit(self.image, (self.x, self.y))
И этот класс я использую для запуска самой игры:
class Game(object):
def __init__(self):
self.screensize = [1000, 1000]
self.white = [255, 255, 255]
self.black = [0, 0, 0]
self.screen = pygame.display.set_mode(self.screensize)
#self.bunny = pygame.transform.scale(pygame.image.load('bunny.png'), (150, 200))
self.clock = pygame.time.Clock()
self.player = Player(500, 500, 'bunny.png')
def Run(self):
run = True
while run:
self.clock.tick(60)
self.screen.fill(self.white)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.quit()
exit()
elif event.type == pygame.K_ESCAPE:
run = False
pygame.quit()
exit()
# - Objects Event Handle -
self.player.moveEvent(event)
# - Updates -
#self.player.moveUpdate()
# - Draws -
self.player.draw(self.screen)
pygame.display.flip()
game = Game()
game.Run()