我一直致力于为Microbit制作一个程序,灵感来自几年前我看过的一些基本块脚本。 AI控制的像素和玩家控制的像素的功能按照预期工作 - 一个令人烦恼的和游戏破坏的错误 - 玩家船只在AI船完成其功能时重置为其生成位置。
我怀疑这是因为我在代码的开头有一个指定的船位,然后在函数本身中对其进行修改。删除这会导致错误,其中未引用变量 - 但是,我不能单独留下问题。我欢迎任何指导。代码如下。
from microbit import *
import random
enemyXpos = 4
playerXpos = 2
while True:
display.set_pixel(enemyXpos,0,4)
display.set_pixel(playerXpos,4,6)
def laser(laserXpos, laserYpos):
laserXpos = playerXpos
laserYpos = 3
for i in range (4):
display.set_pixel(laserXpos,laserYpos,9)
if laserYpos > 0:
display.set_pixel(laserXpos,laserYpos,0)
laserYpos -= 1
display.set_pixel(laserXpos,laserYpos,9)
if laserYpos == 0 and laserXpos == enemyXpos:
display.show(all_booms, delay=200)
score = score + 1
continue
elif laserYpos == 0:
display.set_pixel(bombXpos,bombYpos,0)
laserYpos = newlaserYpos
sleep (200)
def enemy_left(enemyXpos, playerXpos):
enemyXpos = 4
for i in range (4):
display.clear()
enemyXpos -= 1
display.set_pixel(enemyXpos,0,4)
display.set_pixel(playerXpos,4,6)
if button_a.is_pressed() and button_b.is_pressed():
laser(laserXpos,laserYpos)
elif button_a.is_pressed() and playerXpos > 0:
playerXpos -= 1
elif button_b.is_pressed() and playerXpos < 4:
playerXpos += 1
sleep(200)
def enemy_right(enemyXpos, playerXpos):
enemyXpos = 0
for i in range (4):
display.clear()
enemyXpos += 1
display.set_pixel(enemyXpos,0,4)
display.set_pixel(playerXpos,4,6)
if button_a.is_pressed() and button_b.is_pressed():
laser(laserXpos,laserYpos)
elif button_a.is_pressed() and playerXpos > 0:
playerXpos -= 1
elif button_b.is_pressed() and playerXpos < 4:
playerXpos += 1
sleep(200)
enemy_left(enemyXpos, playerXpos)
enemy_right(enemyXpos, playerXpos)