如何使用Pygame使Visual Health Meter跟随播放器?

时间:2015-07-12 20:11:42

标签: python pygame

我遇到的问题是找到合并玩家位置并添加到其中的方法我正在试图解决这个问题,以帮助向我的孩子解释谁正在学习pygame并不断提出问题我的知识范围。

health healthbar player Better example

我的目标:是有一个 Visual Life Meter 跟随或停留在其上方的玩家/敌人,以便跟踪其中的碰撞检测更直观的方式。

我陷入了如何将播放器img的PlayerPos与精灵表结合起来的概念

我的问题区域是了解如何为健康标记做粘贴当前玩家位置

playerpos +玩家x位置,玩家y位置+10像素

int main(int argc, char* argv[]) {
    std::string base_path = argv[0];
    // The rest is the same
}

当我在棋盘上移动玩家时,它会增加玩家位置

    #How I keep the player position
playerpos=[50,50]


#How I keep health bar above the player position
healthbarpos=[


#the player image
PLAYER = pygame.image.load('player.png')
#the position of the player [x,y]
playerPos = [0,0]

我的新手假设是我需要存储玩家当前x位置加0,因为它从相同的x位置开始,并且玩家当前y位置+ 10像素

我理解

   #if a key is pressed
    elif event.type == KEYDOWN:
        #if the right arrow is pressed
        if event.key == K_RIGHT and playerPos[0] < MAPWIDTH - 1:
            #change the player's x position
            playerPos[0] += 1
        if event.key == K_LEFT and playerPos[0] > 0:
            #change the player's x position
            playerPos[0] -= 1
        if event.key == K_UP and playerPos[1] > 0:
            #change the player's x position
            playerPos[1] -= 1
        if event.key == K_DOWN and playerPos[1] < MAPHEIGHT -1:
            #change the player's x position
            playerPos[1] += 1

所以我假设

 pygame.draw.rect(window, color, (x,y,width,height), thickness)

我相信在理论上足以理解下面的生命计量部分

pygame.draw.rect(window, color, (player x position ,player y position + 10 pixels,width,height), thickness)

1 个答案:

答案 0 :(得分:0)

我的建议是不要为健康栏和播放器使用单独的坐标。有两组坐标是不必要的复杂。

绘制播放器和运动条时,使用从播放器派生的坐标,并应用偏移量。

screen.blit(healthbar, (playerPos[0], playerPos[1] - heightOfHealthBar))

或绘图功能中的类似内容。