Python Turtle 与屏幕边界的碰撞

标签 python collision-detection turtle-graphics python-turtle

如何进行碰撞?所以 turtle/蛇不会开箱即用。我试图让它们留在 (-200, -200) 和 (200, 200) 内。

from turtle import *
from random import *

def bounding_box():
    up()
    right(90)
    forward(200)
    down()
    left(90)
    forward(200)
    left(90)
    forward(400)
    left(90)
    forward(400)
    left(90)
    forward(400)
    left(90)
    forward(200)
    up()
    goto(0,0)
    down()

def drawSnakeRec(segments, length):
    if segments <= 0 or length <= 0:
        return 0
    else:
        color(random(), random(), random())
        forward(length)
        pensize(randint(1,10))
        left(randint(-30, 30))
        return length + drawSnakeRec(segments - 1, randint(1,20))

def drawSnakeIter(segments, length):
    TL = 0
    while segments > 0:
        color(random(), random(), random())
        pensize(randint(1,10))
        forward(length)
        left(randint(-30, 30))
        TL += length
        segments -=1
    return TL


def main():
    segments = int(input("Enter the segments between 0 and 500: "))

    bounding_box()

    hideturtle()
    speed('fast')
    
    if segments < 0 or segments > 500:
        print("Segments is out of range. Segment must be between 0 and 500 inclusive")
        input("Press enter to close")
    else:
        
        x = drawSnakeRec(segments, randint(1, 20))
        print("Recursive Snake's Length is:",x,"Units")
        input("Press Enter to go on Iterative Snake")
        up()
        goto(0,0)
        reset()
        bounding_box()
        y = drawSnakeIter(segments, randint(1,20))
        print("Iterative Snake's Length is:",y," Units")
        input("Press Enter to exit...")
        bye()
main()

最佳答案

如果喜欢,我建议一个大的:

if turtle.ycor() >= 200 or turtle.ycor() <=-200 or  turtle.xcor() >= 200 or turtle.xcor <= -200

这对我有用!

关于Python Turtle 与屏幕边界的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18992225/

相关文章:

java - 碰撞检测和弹跳

python - 如何移动绿色字符以在python中使用onkey?

python - 我如何隐藏 turtle 以前画的东西?

python - 运行 setup.py 时如何获取 Python wheel 的文件名?

python - 作者:美丽汤。我想将 <br> 替换为换行符 : At the time of getText()

python - python中很长的变量名会导致内存浪费吗?

python - Celery为每个任务实例安排了带有到期时间的任务?

java - 如何通过碰撞检测获取对象参数?

python - 让 Sprite 互相弹开

python - 在 Python 中绘制分形树