0
我的遊戲中的敵方精靈移動速度相對較慢。當我將速度提高到1以上的任何速度時,他們在左方向移動速度非常快,在正確方向移動速度非常慢。有沒有人知道背後的原因?提高AI精靈的移動速度
class Enemy(pygame.sprite.Sprite):
def __init__(self,x,y,width = 60, height = 55):
pygame.sprite.Sprite.__init__(self)
self.x = x
self.y = y
self.speed = 1
self.s0 = pygame.image.load("Images/Enemy/s0.png")
s1 = pygame.image.load("Images/Enemy/s1.png")
s2 = pygame.image.load("Images/Enemy/s2.png")
s3 = pygame.image.load("Images/Enemy/s3.png")
rs0 = pygame.transform.flip(self.s0 ,True, False)
rs1 = pygame.transform.flip(s1 ,True, False)
rs2 = pygame.transform.flip(s2 ,True, False)
rs3 = pygame.transform.flip(s3 ,True, False)
self.attack = pygame.image.load("Images/Enemy/attack.png")
self.rattack = pygame.image.load("Images/Enemy/rotatedattack.png")
self.images = []
self.images.append(self.s0)
self.images.append(s1)
self.images.append(s2)
self.images.append(s3)
self.rotated_images = []
self.rotated_images.append(rs0)
self.rotated_images.append(rs1)
self.rotated_images.append(rs2)
self.rotated_images.append(rs3)
self.deadimages= [self.attack]
self.index = 0
self.TimeNum=0
self.TimeTarget=10
self.image = self.images[self.index]
self.rect = pygame.Rect(self.x,self.y,width,height)
self.playercollision = False
self.Timer = 0
def update(self,player):
if self.rect.colliderect(player.rect):
print("hey")
self.Timer += 1
if self.Timer >= 10:
if self.rect.x > player.rect.x:
self.image = self.attack
if self.rect.x < player.rect.x:
self.image = self.rattack
if player.rect.x == 0:
self.image = self.s0
def Enemy1Move(self,player):
if player.rect.x > 0 and player.rect.x < 655:
if self.rect.x < player.rect.x:
self.rect.x += self.speed
self.TimeNum+=1
if self.TimeNum == self.TimeTarget:
self.index +=1
if self.index >= len(self.rotated_images):
self.index = 0
self.image = self.rotated_images[self.index]
self.TimeNum = 0
if self.rect.x > player.rect.x:
self.rect.x -= self.speed
self.TimeNum +=1
if self.TimeNum == self.TimeTarget:
self.index +=1
if self.index >= len(self.images):
self.index = 0
self.image = self.images[self.index]
self.TimeNum = 0
更新敵方位置的代碼中的兩個條件都可以在同一個調用中使用。 – usr2564301
抱歉,我不明白你的意思? – Jim
代碼看起來不錯 - 也許是'print()'在代碼中的許多地方的敵人位置,看看它是如何改變的。也許首先你增加速度到位置,但後來你從位置減去一些價值,敵人移動速度變慢。 – furas