在 Pygame 上,如何让一个精灵移向另一个精灵?

问题描述

我正在尝试在 Pygame(特别是 Pycharm)上制作我的第一款游戏,而您必须尝试躲避敌人。我可以弄清楚如何让它在触到你时你就输了,但首先不知道如何让它向你移动。我有从屏幕中间开始的玩家,以及在任何地方随机生成的敌人。这是我到目前为止的代码

(我对编码很陌生,所以任何其他答案都让我感到困惑。)

import random
# intialize the pygame
pygame.init()

# screen size
screen = pygame.display.set_mode((1000,1000))

# title + icon
pygame.display.set_caption("Sick Shield")
icon = pygame.image.load('anti-virus.jpg')
pygame.display.set_icon(icon)

#player
playerImg = pygame.image.load('player.png')
playerX = 460
playerY = 460
playerX_change = 0
playerY_change = 0

#enemy
enemyImg = pygame.image.load('virus.png')
enemyX = random.randint(0,460)
enemyY = random.randint(0,460)
enemyX_change = 0
enemyY_change = 0



def update(self,player):
    self.hunt_player(player)

def player(x,y):
    screen.blit(playerImg,(playerX,playerY))

def enemy(x,y):
    screen.blit(enemyImg,(enemyX,enemyY))

# game loop
running = True
while running:

    screen.fill((20,60))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        #character movement
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                playerX_change = -1
            if event.key == pygame.K_RIGHT:
                playerX_change = 1
            if event.key == pygame.K_UP:
                playerY_change = -1
            if event.key == pygame.K_DOWN:
                playerY_change = 1
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                playerY_change = 0
            if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
                playerX_change = 0

    playerY += playerY_change
    playerX += playerX_change

    #boundries
    if playerX <= 0:
        playerX = 0
    elif playerX >= 946:
        playerX = 946
    if playerY <= 0:
        playerY = 0
    elif playerY >= 946:
        playerY = 946

    player(playerX,playerY)
    enemy(enemyX,enemyY)
    pygame.display.update()```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)