遇到冲突时遇到麻烦

问题描述 投票:0回答:1

我在获取子弹(名为小行星)和僵尸时遇到了麻烦。更具体地说,我很难让我的游戏记录这两个乌龟之间的碰撞,当您将小于号转换为大于号时,它变得更加奇怪。我不知道我的代码在做什么,不胜感激。(我已经包含了我的全部代码,因为我不确定问题的根源,我只知道哪个部分不起作用,所以我建议从那里开始。

#the bullet that doesn't hit it's target

#Turtle Graphics game 
import turtle
import random
import time

#set up screen 
wn = turtle.Screen()
wn.bgcolor("grey")

finish= False

def randor1():
    rand=random.randint(-280,280)

def randor2():
    rand=random.randint(50,280)

 def check_target_pos():
   #side boundary checking 
    if zombie.xcor() > 280 or zombie.xcor() <- 280:
        zombie.right(180)

    #top/bottom boundary checking 
    if zombie.ycor() > 280 or zombie.ycor() <- 280:
        zombie.right(180)

 def check_turtle_pos():
  #side boundary checking 
    if asteroid.xcor() > 280 or asteroid.xcor() <- 280:
        asteroid.right(180)

   #top/bottom boundary checking 
    if asteroid.ycor() > 280 or asteroid.ycor() <- 280:
        asteroid.right(180)

def new_asteroid():# the turtle bullet,will change the name later on
    for i in range(50):
        asteroid.forward(10)
    asteroid.goto(0,0)


def k2():#turn turtle left
    asteroid.left(45)


def k3():#turn turtle right
    asteroid.right(45)


#Draw border for arena
mypen = turtle.Turtle()
mypen.penup()
mypen.setposition(-300,-300)
mypen.pendown()
mypen.pensize(3)
for side in range(4):
    mypen.forward(600)
    mypen.left(90)
    mypen.hideturtle()


#create turtle turtle, again will change name later
asteroid = turtle.Turtle()
asteroid.color("green")
asteroid.shape("turtle")
asteroid.penup()
asteroid.speed(0)


 #create turtle zombie
def zombies():
    global zombie
    zombie= turtle.Turtle()
    zombie.hideturtle()
    zombie.color("green")
    zombie.shape("circle")
    zombie.penup()
    zombie.speed(0)

    x= random.randint(-280,280)
    y= random.randint(50,280)

    zombie.goto(x,y)
    zombie.showturtle()

zombies()

while (finish!= True):
    check_target_pos()
    check_turtle_pos()

    zombie.forward(1)
    def end():
        finish==True
        wn.bye()
    if asteroid.distance(zombie)<40: #problem area
        end()    

    wn.onkey(new_asteroid, "space")#shoot button.
    wn.onkey(k2, "Left")#turn left button
    wn.onkey(k3, "Right") #turn right button
    wn.onkey(end, "e")#exit
    wn.listen()#so all the on key functions above work

我在获取子弹(名为小行星)和僵尸时遇到了麻烦。更具体地说,我在让我的游戏记录这两只乌龟之间的碰撞时遇到了麻烦,它甚至变得...

python collision-detection turtle-graphics
1个回答
0
投票

我可以看看asteroid.distance()的代码吗?

© www.soinside.com 2019 - 2024. All rights reserved.