繁体   English   中英

查找距离 X1 和 Y1

[英]Find distance X1 and 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()函数find_distance()两个问题:

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

首先,它实际上什么都不做。 由于distance未声明为全局变量,因此它只是一个局部变量。 所以这会计算一个距离并且不做任何处理。

其次,您正在(重新)定义乌龟内置的功能,即distance()方法。 我会这样做:

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

根据 此处的文档:

为了获得“猎人”和“猎物”的位置,您需要使用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 位置。 祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM