Как определить, находится ли черепаха в радиусе x & y, а затем что-то сделать? - PullRequest
0 голосов
/ 02 декабря 2018

В настоящее время я пытаюсь сделать игру, и в игре мне бы хотелось, чтобы, если персонаж находится над объектом, он поднимает его.Это то, что у меня есть до сих пор:

import turtle
import time

default = turtle.clone()
scar = turtle.clone()

def pickupScar():
    if default.distance(-7,48) > 5.0:
        default.changeshape('defaultscar.gif')

wn = turtle.Screen()
wn.setup(500,500)
wn.bgpic('TrumpTowers.gif')
wn.register_shape('default.gif')
wn.register_shape('scar.gif')
wn.register_shape('defaultscar.gif')

turtle.hideturtle()
default.shape('default.gif')
scar.shape('scar.gif')

default.pu()
default.left(90)
default.bk(35)

scar.pu()
scar.left(90)
scar.fd(45)
scar.speed(-1)

default.ondrag(default.goto)

Кто-нибудь знает, как я буду делать def pickupScar, поскольку я новичок в python & turtle.Если вы понимаете, о чем моя игра, пожалуйста, не судите меня, это для школьного проекта, и я не мог придумать ни одной игровой идеи.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Поскольку у меня нет ваших изображений и я не понимаю, о чем ваша игра, ниже приведен пример функциональности, которую вы описываете.На экране черный круг и розовый квадрат.Вы можете перетащить круг, и если вы перетащите его на квадрат, то вырастет голова, а ноги станут черепахой.Перетаскивая квадрат, он превращается в круг:

from turtle import Screen, Turtle

def drag(x, y):
    default.ondrag(None)  # disable handler inside handler

    default.goto(x, y)

    if default.distance(scar) < 40:
        default.shape('turtle')
    elif default.shape() == 'turtle':
        default.shape('circle')

    default.ondrag(drag)

wn = Screen()
wn.setup(500, 500)

scar = Turtle('square', visible=False)
scar.shapesize(4)
scar.color('pink')
scar.penup()
scar.left(90)
scar.forward(50)
scar.showturtle()

default = Turtle('circle', visible=False)
default.shapesize(2)
default.speed('fastest')
default.penup()
default.left(90)
default.backward(50)
default.showturtle()

default.ondrag(drag)

wn.mainloop()
0 голосов
/ 02 декабря 2018

Я не знаю turtle-graphics, но в реальном мире для определения расстояния между двумя точками (для 2D поверхностей) мы используем Теорема Пифагора .

Если какой-то объект находится на (x1, y1), а другой на (x2, y2), расстояние будет

dist=sqrt((x1-x2)^2 + (y1-y2)^2)

Так, если dist <= R, черепаха (или что-то еще) будет in R radius from desired point

...