首页 > 解决方案 > 如何让我的火箭在击中边界时回到原来的位置?

问题描述

我是编程新手,从 pygame 零开始。我正在制作一个小游戏,你向外星人发射火箭。但是我的火箭在发射时一直卡在边界上,我做了一个重新加载功能,但我希望它自动运行(当它击中边界或外星人回到正常位置时)。任何人都可以帮助我吗?

alien = Actor('alien', (100,100))
ship =Actor('ship', (500,400))
rocket_fire = Actor('rocket_fire', (500,400))


WIDTH = 1000
HEIGHT =500

def draw():
    screen.clear()
    screen.blit('space_back', (0,0))
    rocket_fire.draw()
    ship.draw()
    alien.draw()

def move_ship(ship):
    if keyboard.left:
        ship.x -= 3
        rocket_fire.x -= 3

    elif keyboard.right:
        ship.x += 3
        rocket_fire.x += 3

    elif keyboard.space:
        animate(rocket_fire, pos = (ship.x,0))

    elif keyboard.r:
        rocket_fire.pos = (ship.x,ship.y)

def move_alien(alien):
    alien.right +=2

    if alien.left > WIDTH:
        alien.right = 0
    collide = rocket_fire.colliderect(alien)

    if collide == 0:
        alien.image = 'alien'
    elif collide == 1:
        alien.image = 'nuclear_explosion'

def update():
    rocket_fire.draw()
    ship.draw()
    alien.draw()
    move_ship(ship)
    move_alien(alien)

标签: pythonpgzero

解决方案


您可以尝试在“collide == 1”之后将初始值分配给“rocket_fire”。

elif collide == 1:
    alien.image = 'nuclear_explosion'
    // rocket_fire = (500,400) -> this is just a representation to assign position; not accurate as per the code

推荐阅读