NPC随机移动出错

时间:2013-12-01 07:03:03

标签: python random pygame windows-vista

我参加了一场比赛。在游戏中有一个玩家和敌人。我决定在随机移动的游戏中添加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) 

0 个答案:

没有答案