找出距离X1和Y1



我正在创建一个游戏,乌龟是猎物,箭是猎人。它们位于屏幕中央的500 X 500"围栏"中。当猎人距离猎物一定距离时,游戏结束。据说距离有错误

import turtle
import random
import math
def difficulty():
global easy , medium , hard
level= input("Select your Difficulty")
easy=100
medium=50
hard=25

def position_prey():
prey.penup()
prey.forward(random.randint(50,100))
prey.shape("turtle")

def create_fence():
fence=turtle.Turtle()
fence.penup()
fence.goto(-250,-250)
fence.pendown()
fence.forward(500)
fence.left(90)
fence.forward(500)
fence.left(90)
fence.forward(500)
fence.left(90)
fence.forward(500)
fence.hideturtle()   

def find_distance(hunter,prey):
prey = x1
hunter = x2
distance=((x2-x1)**2 + (y1-y2)**2)**0.5

def move_hunter(x,y):
hunter.penup()
hunter.goto(x,y)
find_distance(hunter,prey)


def move_prey():
prey.forward(random.randint(100,100))
find_distance(hunter,prey)

def Main():
global hunter, prey
hunter = turtle.Turtle()
prey = turtle.Turtle()

playground=turtle.Screen()
playground.onclick(move_hunter)
find_distance(hunter,prey)

difficulty()
position_prey()
create_fence()
move_prey()
Main()

除了@AaronBerger指出的参数问题外,我还看到了find_distance()函数的两个问题:

def find_distance(hunter,prey):
prey = x1
hunter = x2
distance=((x2-x1)**2 + (y1-y2)**2)**0.5

首先,它实际上什么都没做。由于distance没有被声明为全局的,所以它只是一个局部变量。因此,这计算了一个距离,但对它没有任何作用

其次,您正在(重新(定义已经内置在turtle中的功能,即distance()方法。我会这么做的:

if hunter.distance(prey) < CERTAIN_DISTANCE:
# do something

根据此处的文档:

为了得到"0"的位置;猎人;以及";猎物";,您需要使用turtle.pos(),它将返回一个包含x和y位置的元组。

所以,你的find_distance函数应该是这样的:

def find_distance(hunter, prey):
xHunter, yHunter = hunter.pos()
xPrey, yPrey = prey.pos()
distance=((xPrey-xHunter)**2 + (yPrey-yHunter)**2)**0.5

您最初的问题是,在该方法中,x和y的位置设置不正确。祝你好运

相关内容

最新更新