我参加了一场比赛。在游戏中有一个玩家和敌人。我决定在随机移动的游戏中添加NPC角色。问题是他们没有按预期绘制。
NPC的运行速度不如其他代码。当NPC四处移动时,它会留下大片白色。我认为这是更新的速度,但我不太确定。帧速率约为40 fps。我试图在NPC的更新功能中找到问题,但它看起来很好。但是,当我排除def update(self)
时,NPC仅停止创建奇怪的白色补丁。我正在运行Window Vista,Python 2.6和Pygame。任何帮助表示赞赏。
class NPC(pygame.sprite.Sprite):
change_x = 0
def __init__(self, color, width, height):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface([width, height])
self.image.fill(white)
self.rect = self.image.get_rect()
def update(self):
self.rect.x += self.change_x
speed = 2
Movementlist = ['moveRight', 'moveLeft']
randomMove = random.choice(Movementlist)
if randomMove == 'moveRight':
self.change_x = -6 * speed
elif randomMove == 'moveLeft':
self.change_x = 6 * speed
以下是NPC的创建地点:
if level == 1:
npc = NPC(white, 20, 15)
npc.rect.x = 400
npc.rect.y = 485
NPC_list.add(npc)
all_sprites_list.add(npc)
这是更新:
NPC_list.update()
绘制命令在这里:
# --- Draw Frame
# Set the screen background
if level < 5 or level == 5:
screen.fill(black)
if level == 10:
screen.fill(silver)
all_sprites_list.draw(screen)
# Go ahead and update the screen with what we've drawn.
pygame.display.update()
# Limit to 40 frames per second
clock.tick(40)