Python海龟模块冲突不会发生';我不能在最后阶段工作 我的项目有些问题。我想要一个游戏,从右边来5个平手(敌人),你必须射杀他们才能得分。当你达到100点(在代码5中,出于测试原因)后,一个老板来了,你需要杀死它(45次射击)。 我的问题是老

Python海龟模块冲突不会发生';我不能在最后阶段工作 我的项目有些问题。我想要一个游戏,从右边来5个平手(敌人),你必须射杀他们才能得分。当你达到100点(在代码5中,出于测试原因)后,一个老板来了,你需要杀死它(45次射击)。 我的问题是老,python,turtle-graphics,python-turtle,Python,Turtle Graphics,Python Turtle,Python海龟模块冲突不会发生';我不能在最后阶段工作 我的项目有些问题。我想要一个游戏,从右边来5个平手(敌人),你必须射杀他们才能得分。当你达到100点(在代码5中,出于测试原因)后,一个老板来了,你需要杀死它(45次射击)。 我的问题是老板打架。子弹会像预期的那样与敌人相撞,但是当涉及到老板的战斗时,子弹只是忽略了老板。我试着修复碰撞,但我试过的似乎都没用。 我知道上课会更容易,但这是一个学校项目,我们还没有学会上课,所以我们显然不能使用它们。对不起,如果代码有点杂乱无章,我只

Python海龟模块冲突不会发生';我不能在最后阶段工作
我的项目有些问题。我想要一个游戏,从右边来5个平手(敌人),你必须射杀他们才能得分。当你达到100点(在代码5中,出于测试原因)后,一个老板来了,你需要杀死它(45次射击)。
我的问题是老板打架。子弹会像预期的那样与敌人相撞,但是当涉及到老板的战斗时,子弹只是忽略了老板。我试着修复碰撞,但我试过的似乎都没用。
我知道上课会更容易,但这是一个学校项目,我们还没有学会上课,所以我们显然不能使用它们。对不起,如果代码有点杂乱无章,我只是一个学生,正在学习代码。
提前谢谢你的回答。
from playsound import playsound
import turtle, random, time

def up():
    y = ss.ycor()
    ss.sety(y+20)


def down():
    y = ss.ycor()
    ss.sety(y-20)


def left():
    x = ss.xcor()
    ss.setx(x-20)


def right():
    x = ss.xcor()
    ss.setx(x+20)


def shoot():
    laser = turtle.Turtle()
    laser.penup()
    laser.shape("ammos.gif")
    laser.setx(ss.xcor())
    laser.sety(ss.ycor())
    laserl.append(laser)

wn = turtle.Screen()
wn.setup(width=1200, height=900)
wn.bgpic("stardestroyer.png")
wn.tracer(0)
wn.addshape("falcon.gif")
wn.addshape("tiefighter.gif")
wn.addshape("explosion.gif")
wn.addshape("starship.gif")
wn.addshape("ammos.gif")
wn.listen()
wn.onkeypress(up,"Up")
wn.onkeypress(down,"Down")
wn.onkeypress(left,"Left")
wn.onkeypress(right,"Right")
wn.onkeypress(shoot, "space")


ss = turtle.Turtle()
ss.penup()
ss.shape("falcon.gif")

mt = turtle.Turtle()
mt.penup()
mt.shape("tiefighter.gif")
mt.setx(588)
mt.sety(random.randint(-420, 420))

boss = turtle.Turtle()
boss.shape("starship.gif")
boss.penup()
boss.hideturtle()
boss.setx(725)

mt1 = turtle.Turtle()
mt1.penup()
mt1.shape("tiefighter.gif")
mt1.setx(588)
mt1.sety(random.randint(-420, 420))

mt2 = turtle.Turtle()
mt2.penup()
mt2.shape("tiefighter.gif")
mt2.setx(588)
mt2.sety(random.randint(-420, 420))

mt3 = turtle.Turtle()
mt3.penup()
mt3.shape("tiefighter.gif")
mt3.setx(588)
mt3.sety(random.randint(-420, 420))

mt4 = turtle.Turtle()
mt4.penup()
mt4.shape("tiefighter.gif")
mt4.setx(588)
mt4.sety(random.randint(-420, 420))

sb = turtle.Turtle()
sb.hideturtle()
sb.penup()
sb.sety(410)
sb.setx(-595)
sb.color('white')

sb1 = turtle.Turtle()
sb1.hideturtle()
sb1.penup()
sb1.sety(410)
sb1.setx(595)
sb1.color('white')

sb3 = turtle.Turtle()
sb3.hideturtle()
sb3.penup()
sb3.color('white')


score = 0
life = 3
bosshit = 0

alive = True
bossalive = False

laserl = []
mtlist = []

x = 0

while alive:
    sb.clear()
    sb.write(f"{life} életed maradt.",  align="left", font=("Arial", 28, "bold") )

    if alive:
        mt.back(20)
        mt1.back(20)
        mt2.back(20)
        mt3.back(20)
        mt4.back(20)
    
    if bossalive:
        boss.back(4)

    if ss.distance(mt.xcor(), mt.ycor()) < 25:
        mt.hideturtle()
        mt.shape("tiefighter.gif")
        mt.showturtle()
        mt.setx(588)
        mt.sety(random.randint(-425, 426))

        life -= 1        

        sb.clear()
        sb.write(f"{life} életed maradt.", align="left", font=("Arial", 28, "bold") )
        
        if life == 0:
            ss.shape("explosion.gif")
            sb.clear()
            sb.write("Elfogytak az életeid, meghaltál!", align="left", font=("Arial", 28, "bold"))
            time.sleep(2.3)
            sb.clear()
            alive = False
    
    if ss.distance(mt1.xcor(), mt1.ycor()) < 25:
        mt1.hideturtle()
        mt1.shape("tiefighter.gif")
        mt1.showturtle()
        mt1.setx(588)
        mt1.sety(random.randint(-425, 426))

        life -= 1        

        sb.clear()
        sb.write(f"{life} életed maradt.", align="left", font=("Arial", 28, "bold") )
        
        if life == 0:
            ss.shape("explosion.gif")
            sb.clear()
            sb.write("Elfogytak az életeid, meghaltál!", align="left", font=("Arial", 28, "bold"))
            time.sleep(2.3)
            sb.clear()
            alive = False
    
    if ss.distance(mt2.xcor(), mt2.ycor()) < 25:
        mt2.hideturtle()
        mt2.shape("tiefighter.gif")
        mt2.showturtle()
        mt2.setx(588)
        mt2.sety(random.randint(-425, 426))

        life -= 1        

        sb.clear()
        sb.write(f"{life} életed maradt.", align="left", font=("Arial", 28, "bold") )
        
        if life == 0:
            ss.shape("explosion.gif")
            sb.clear()
            sb.write("Elfogytak az életeid, meghaltál!", align="left", font=("Arial", 28, "bold"))
            time.sleep(2.3)
            sb.clear()
            alive = False
    
    if ss.distance(mt3.xcor(), mt3.ycor()) < 25:
        mt3.hideturtle()
        mt3.shape("tiefighter.gif")
        mt3.showturtle()
        mt3.setx(588)
        mt3.sety(random.randint(-425, 426))

        life -= 1        

        sb.clear()
        sb.write(f"{life} életed maradt.", align="left", font=("Arial", 28, "bold") )
        
        if life == 0:
            ss.shape("explosion.gif")
            sb.clear()
            sb.write("Elfogytak az életeid, meghaltál!", align="left", font=("Arial", 28, "bold"))
            time.sleep(2.3)
            sb.clear()
            alive = False
    
    if ss.distance(mt4.xcor(), mt4.ycor()) < 25:
        mt4.hideturtle()
        mt4.shape("tiefighter.gif")
        mt4.showturtle()
        mt4.setx(588)
        mt4.sety(random.randint(-425, 426))

        life -= 1        

        sb.clear()
        sb.write(f"{life} életed maradt.", align="left", font=("Arial", 28, "bold") )

        if life == 0:
            ss.shape("explosion.gif")
            sb.clear()
            sb.write("Elfogytak az életeid, meghaltál!", align="left", font=("Arial", 28, "bold"))
            time.sleep(2.3)
            sb.clear()
            alive = False 
        
        if life == 0:
            ss.shape("explosion.gif")
            sb.clear()
            sb.write("Elfogytak az életeid, meghaltál!", align="left", font=("Arial", 28, "bold"))
            time.sleep(2.3)
            sb.clear()
            alive = False

    if mt.xcor() < -599:
        mt.setx(588)
        mt.sety(random.randint(-425, 426))
    
    if mt1.xcor() < -599:
        mt1.setx(588)
        mt1.sety(random.randint(-425, 426))
    
    if mt2.xcor() < -599:
        mt2.setx(588)
        mt2.sety(random.randint(-425, 426))
    
    if mt3.xcor() < -599:
        mt3.setx(588)
        mt3.sety(random.randint(-425, 426))
    
    if mt4.xcor() < -599:
        mt4.setx(588)
        mt4.sety(random.randint(-425, 426))

    for bullet in laserl:
        
        if bullet.distance(mt) < 30:
            mt.setx(588)
            mt.sety(random.randint(-425, 426))
            score += 1
            sb1.clear()
            sb1.write(f"{score} pontod van.", align="right", font=("Arial", 28, "bold") )
            bullet.setx(700)
            bullet.fd(0)
            bullet.clear()
            bullet.hideturtle()
        elif bullet.distance(mt1) < 30:
            mt1.setx(588)
            mt1.sety(random.randint(-425, 426))
            score += 1
            sb1.clear()
            sb1.write(f"{score} pontod van.", align="right", font=("Arial", 28, "bold") )
            bullet.setx(700)
            bullet.fd(0)
            bullet.clear()
            bullet.hideturtle()
        elif bullet.distance(mt2) < 30:
            mt2.setx(588)
            mt2.sety(random.randint(-425, 426))
            score += 1
            sb1.clear()
            sb1.write(f"{score} pontod van.", align="right", font=("Arial", 28, "bold") )
            bullet.setx(700)
            bullet.fd(0)
            bullet.clear()
            bullet.hideturtle()
        elif bullet.distance(mt3) < 30:
            mt3.setx(588)
            mt3.sety(random.randint(-425, 426))
            score += 1
            sb1.clear()
            sb1.write(f"{score} pontod van.", align="right", font=("Arial", 28, "bold") )
            bullet.setx(700)
            bullet.fd(0)
            bullet.clear()
            bullet.hideturtle()
        elif bullet.distance(mt4) < 30:
            mt4.setx(588)
            mt4.sety(random.randint(-425, 426))
            score += 1
            sb1.clear()
            sb1.write(f"{score} pontod van.", align="right", font=("Arial", 28, "bold") )
            bullet.setx(700)
            bullet.fd(0)
            bullet.clear()
            bullet.hideturtle()
        else:
            bullet.fd(30)   
            
        if bullet.xcor() >= 600:
            bullet.clear()
            bullet.fd(0)
            bullet.hideturtle()

        if score == 5:
            bossalive = True
            mt.setx(700)
            mt.clear()
            mt1.setx(700)
            mt1.clear()
            mt2.setx(700)
            mt2.clear()
            mt3.setx(700)
            mt3.clear()
            mt4.setx(700)
            mt4.clear()
            boss.showturtle()

            if bullet.distance(boss) > 50:
                bosshit += 1
                bullet.setx(700)
                bullet.fd(0)
                bullet.clear()
                bullet.hideturtle()

            if bosshit == 45:
                boss.shape("explosion.gif")
                boss.clear()
                bossalive = False
                sb3.clear()
                sb3.write(f"Legyőzted a főszörnyet, megnyerted a játékot! Elért pontszám:{score}", align="center", font=("Arial", 28, "bold"))
                score += 50
                time.sleep(3)
                alive = False
            if boss.xcor() == -650:
                sb.clear()
                sb.write(f"Nem sikerült legyőznöd a főszörnyet. Elvesztetted a játékot! Elért pontszám: {score}", align="center", font=("Arial", 28, "bold"))
                time.sleep(3)
                alive = False
                    
                
    if ss.xcor() > 599:
        ss.setx(-599)

    if ss.xcor() < -599:
        ss.setx(599)

    if ss.ycor() > 449:
        ss.sety(-449)

    if ss.ycor() < -449:
        ss.sety(449)

    x += 1
    wn.update()
    time.sleep(0.1)
从播放声音导入播放声音
输入海龟,随机,时间
def up():
y=ss.ycor()
赛蒂(y+20)
def down():
y=ss.ycor()
赛蒂党卫军(y-20)
def left():
x=ss.xcor()
ss.setx(x-20)
def right():
x=ss.xcor()
ss.setx(x+20)
def shoot():
激光=海龟。海龟()
雷射
laser.shape(“ammos.gif”)
laser.setx(ss.xcor())
laser.sety(ss.ycor())
激光附加(激光)
wn=tutle.Screen()
wn.设置(宽度=1200,高度=900)
bgpic(“stardestroyer.png”)
wn.tracer(0)
wn.addshape(“falcon.gif”)
wn.addshape(“tiefighter.gif”)
wn.addshape(“explosion.gif”)
wn.addshape(“starship.gif”)
wn.addshape(“ammos.gif”)
听着
wn.onkeypress(向上,“向上”)
wn.onkeypress(向下,“向下”)
wn.onkeypress(左,“左”)
wn.onkeypress(右,“右”)
wn.onkeypress(拍摄,“空间”)
ss=海龟。海龟()
ss.penup()
ss.shape(“falcon.gif”)
mt=海龟。海龟()
彭普山()
mt.shape(“tiefighter.gif”)
塞克斯山(588)
塞蒂山(随机随机随机数(-420420))
boss=turtle.turtle()
boss.shape(“starship.gif”)
老板
老板
boss.setx(725)
mt1=海龟。海龟()
mt1.penup()
mt1.shape(“tiefighter.gif”)
mt1.setx(588)
mt1.sety(random.randint(-420420))
mt2=海龟。海龟()
mt2.penup()
mt2.shape(“tiefighter.gif”)
mt2.setx(588)
mt2.sety(random.randint(-420420))
mt3=海龟。海龟()
mt3.penup()
mt3.shape(“tiefighter.gif”)
mt3.setx(588)
mt3.sety(random.randint(-420420))
mt4=海龟。海龟()
mt4.penup()
mt4.shape(“tiefighter.gif”)
mt4.setx(588)
mt4.sety(random.randint(-420420))
sb=乌龟
某人躲藏起来
(某人)
某人塞蒂(410)
sb.setx(-595)
给某人涂上颜色(“白色”)
sb1=海龟。海龟()
sb1.隐藏目标()
sb1.penup()
sb1.sety(410)
sb1.setx(595)
sb1.颜色(“白色”)
sb3=海龟。海龟()
sb3.隐藏目标()
sb3.penup()
sb3.颜色(“白色”)
分数=0
寿命=3
bosshit=0
活着=真
bossalive=False
激光=[]
mtlist=[]
x=0
在世时:
某人清楚
某人写(f“{life}删除了maradt.”,align=“left”,font=(“Arial”,28,“粗体”))
如果活着:
背山(20)
mt1.背面(20)
mt2.背面(20)
mt3.背面(20)
mt4.背面(20)
如果是bossalive:
老板,回来(4)
如果ss.距离(mt.xcor(),mt.ycor())小于25:
希德图尔山()
mt.shape(“tiefighter.gif”)
秀龟山()
塞克斯山(588)
塞蒂山(随机分布(-425426))
寿命-=1
某人清楚
某人写(f“{life}删除了maradt.”,align=“left”,font=(“Arial”,28,“粗体”))
如果寿命=0:
ss.shape(“explosion.gif”)
某人清楚
某人写下(“Elfogytak azéleteid,Meghallál!”,align=“left”,font=(“Arial”,28,“粗体”))
时间。睡眠(2.3)
某人清楚
活动=错误
如果ss.distance(mt1.xcor(),mt1.ycor())小于25:
mt1.hideturtle()
mt1.shape(“tiefighter.gif”)
mt1.showturtle()
mt1.setx(588)
mt1.sety(random.randint(-425426))
寿命-=1
某人清楚
某人写(f“{life}删除了maradt.”,align=“left”,font=(“Arial”,28,“粗体”))
如果寿命=0:
ss.shape(“explosion.gif”)
某人清楚
某人写下(“Elfogytak azéleteid,Meghallál!”,align=“left”,font=(“Arial”,28,“粗体”))
时间。睡眠(2.3)
某人清楚
活动=错误
如果ss.distance(mt2.xcor(),mt2.ycor())小于25:
mt2.hideturtle()
mt2.shape(“tiefighter.gif”)
mt2.showturtle()
mt2.setx(588)
mt2.sety(random.randint(-425426))
寿命-=1
某人清楚
某人写(f“{life}删除了maradt.”,align=“left”,font=(“Arial”,28,“粗体”))
如果寿命=0:
ss.shape(“explosion.gif”)
某人清楚
某人写下(“Elfogytak azéleteid,Meghallál!”,align=“left”,font=(“Arial”,28,“粗体”))
时间。睡眠(2.3)
某人清楚
活动=错误
如果ss.distance(mt3.xcor(),mt3.ycor())小于25:
mt3.hideturtle()
mt3.shape(“tiefighter.gif”)
mt3.showturtle()
mt3.setx(588)
mt3.sety(random.randint(-425426))
寿命-=1
某人清楚
某人写(f“{life}删除了maradt.”,align=“left”,font=(“Arial”,28,“粗体”))
如果寿命=0:
ss.shape(“explosion.gif”)
某人清楚
某人写下(“Elfogytak azéleteid,Meghallál!”,align=“left”,font=(“Arial”,28,“粗体”))
时间。睡眠(2.3)
某人清楚
活动=错误
如果ss.distance(mt4.xcor(),mt4.ycor())小于25:
mt4.hideturtle()
mt4.shape(“tiefighter.gif”)
mt4.showturtle()
mt4.setx(588)
mt4.sety(random.randint(-425426))
寿命-=1
某人清楚
某人写(f“{life}删除了maradt.”,align=“left”,font=(“Arial”,28,“粗体”))
如果寿命=0:
ss.shape(“explosion.gif”)
某人清楚
某人写下(“Elfogytak azéleteid,Meghallál!”,align=“left”,font=(“Arial”,28,“粗体”))
时间。睡眠(2.3)
某人清楚
活动=错误
#you can edit the value here     \/ to change the radius of the collision detection
if bullet.xcor() - boss.xcor() < 10 and bullet.xcor() - boss.xcor() < 10:
                bosshit += 1
                bullet.setx(700)
                bullet.fd(0)
                bullet.clear()
                bullet.hideturtle()