0
我正在繼續我的工作,使用pygame。我目前正在研究敵人的課程。基本上,它會從一邊走到另一邊。我可以讓它在設定的邊界之間行走,但我無法讓圖像顯示敵人面對的正確方向。如果任何人都可以請幫助我或給我一些建議,我真的很感激它。謝謝。Pygame - 製作一個雪碧「走」向正確的方向
我相信我的問題是update()函數。
這裏是我的敵人類
class Enemies(pygame.sprite.Sprite):
enemy_moving_frames_r = []
enemy_moving_frames_l = []
change_x = 0
change_y = 0
boundary_top = 0
boundary_bottom = 0
boundary_left = 0
boundary_right = 0
level = None
player = None
def __init__(self):
pygame.sprite.Sprite.__init__(self)
sprite_sheet = SpriteSheet("stuff/skeleton_7.png")
image = sprite_sheet.get_image(7, 7, 28, 64)
self.enemy_moving_frames_r.append(image)
image = sprite_sheet.get_image(37, 7, 33, 64)
self.enemy_moving_frames_r.append(image)
image = sprite_sheet.get_image(70, 7, 33, 64)
self.enemy_moving_frames_r.append(image)
image = sprite_sheet.get_image(107, 7, 33, 64)
self.enemy_moving_frames_r.append(image)
image = sprite_sheet.get_image(142, 7, 33, 64)
self.enemy_moving_frames_r.append(image)
image = sprite_sheet.get_image(7, 7, 28, 64)
image = pygame.transform.flip(image, True, False)
self.enemy_moving_frames_l.append(image)
image = sprite_sheet.get_image(37, 7, 33, 64)
image = pygame.transform.flip(image, True, False)
self.enemy_moving_frames_l.append(image)
image = sprite_sheet.get_image(70, 7, 33, 64)
image = pygame.transform.flip(image, True, False)
self.enemy_moving_frames_l.append(image)
image = sprite_sheet.get_image(107, 7, 33, 64)
image = pygame.transform.flip(image, True, False)
self.enemy_moving_frames_l.append(image)
image = sprite_sheet.get_image(142, 7, 33, 64)
image = pygame.transform.flip(image, True, False)
self.enemy_moving_frames_l.append(image)
self.image = self.enemy_moving_frames_r[0]
self.rect = self.image.get_rect()
def update(self):
# Move left/right
self.rect.x += self.change_x
cur_pos = self.rect.x - self.level.world_shift
print(cur_pos)
if cur_pos < self.boundary_left:
self.change_x *= -1
frame = (self.rect.x // 30) % len(self.enemy_moving_frames_r)
self.image = self.enemy_moving_frames_r[frame]
elif cur_pos > self.boundary_right:
self.change_x *= -1
frame = (self.rect.x // 30) % len(self.enemy_moving_frames_l)
self.image = self.enemy_moving_frames_l[frame]
您是否收到錯誤?你應該更多地告訴你實際得到的行爲。它看起來像是在精靈跨越邊界時試圖改變動畫,當你應該根據精靈的x速度改變它時。 – ballsatballsdotballs
我沒有收到任何錯誤。精靈「走」,但隨機左右切換。 – user655321