目前在高中的最后一年,我想用pygame在python中制作视频游戏。但是我有一个问题:如何通过跟随我的道路让怪物(精灵)从A点到达B点。 我没有任何代码可以显示,因为我不知道该怎么做。
我希望你能帮助我< 3 My map (in brown the road) 有试用代码
class Niveau_1_Monstres(pygame.sprite.Sprite):
def __init__(self,image,position):
super().__init__()
self.image = pygame.image.load(image).convert_alpha()
self.rect = self.image.get_rect()
self.rect.topleft = position
self.direction = 'droite' ## La direction
def update(self):
pygame.time.delay(5)#mettre 100
#définition de la direction
if self.rect.colliderect(lv1.rectetape1) == True:
self.direction = 'haut'
elif self.rect.colliderect(lv1.rectetape2) == True:
self.direction = 'droite'
elif self.rect.colliderect(lv1.rectetape3) == True:
self.direction = 'bas'
elif self.rect.colliderect(lv1.rectetape4) == True:
self.direction = 'droite'
elif self.rect.colliderect(lv1.rectetape5) == True:
self.direction = 'haut'
elif self.rect.colliderect(lv1.rectetape6) == True:
self.direction = 'droite'
elif self.rect.colliderect(lv1.rectetape7) == True:
self.direction = 'bas'
elif self.rect.colliderect(lv1.rectetape8) == True:
self.direction = 'gauche'
elif self.rect.colliderect(lv1.rectetape9) == True:
self.direction = 'haut'
elif self.rect.colliderect(lv1.rectetape10) == True:
self.direction = 'gauche'
#Mouvelent en fonction de la direction
if self.direction == 'haut':
self.rect.y = self.rect.y-1
elif self.direction == 'bas':
self.rect.y = self.rect.y+1
elif self.direction == 'gauche':
self.rect.x = self.rect.x-1
elif self.direction == 'droite':
self.rect.x = self.rect.x+1
答案 0 :(得分:0)
可以将道路可视化为连接在一起的线列表。您需要做的就是
a)存储每行的起点和终点坐标
[ [(x11, y11), (x12, y12)], [(x21, y21), (x22, y22)], ... ]
b)让你的精灵从每个起始坐标顺序移动到最后一个坐标。 while循环中的一些简单逻辑就可以实现。您可以将代码基于此basic example。