Eclipse: while-l oop не работает, если нет оператора print - PullRequest
0 голосов
/ 28 марта 2020

Я экспериментирую с затмением и столкнулся со странным явлением, которое не могу исправить. В то время как l oop работает, только если был оператор print. Однако, как только я его удаляю, пока l oop перестает работать (в этом случае перестает обновлять черепаху). Я пробовал Google для этой проблемы безрезультатно. Следовательно, я хотел бы обратиться за чьей-то помощью по этому поводу. Заранее большое спасибо:)

PS. Я только извлек необходимый код из моего скрипта для загрузки. Там нет ошибок в настоящее время.

# Initialise frame-tracking for pointer drawing
secondPerFrame = 0.04
nextFrame =0

# Initialise screen
screen = turtle.Screen()
screen.setup(600,600)
screen.tracer(0)
screen.colormode(255)

# Initialise turtle for drawing of pointer
pointerTurt = turtle.Turtle()
pointerTurt.speed(0)
pointerTurt.width(10)
pointerTurt.hideturtle()

# Initialise variables
wheelRadius = 250
startForce = 30

def update_pointer_direction():
    pointerTurt.clear()   
    pointerTurt.goto(0,0)
    pointerTurt.pendown()
    pointerTurt.forward(wheelRadius *0.75)
    pointerTurt.penup()
    screen.update()

def decay_wheel_spinforce():
    global startForce
    if (startForce > 0):
        partialStartForce = startForce * 0.005
        startForce -= random.random() * partialStartForce

    if (startForce < 0.005):
        startForce =0

while True :

    if (nextFrame < time.perf_counter()):        
        update_pointer_direction()       
        nextFrame = time.perf_counter() + secondPerFrame

    print()
    decay_wheel_spinforce()         
    pointerTurt.left(startForce)

1 Ответ

0 голосов
/ 29 марта 2020

Я понял, что совершил очень начинающую ошибку после игры с abit. decay_wheel_spinforce () будет работать так же быстро, как и неограниченно, и будет быстро установлен на 0. Эта проблема была решена путем включения time.sleep (0.01), чтобы убедиться, что функция не работает слишком быстро.

...