我使用turtle编写了一些需要用户交互的代码,但在打开文件时它不起作用

问题描述 投票:0回答:1

如果您将文本复制并粘贴到空闲状态,而不只是打开文件,它就会起作用

这是我不知道出了什么问题的代码,忽略所有打开的文件和音频位,它将成为更大游戏的一部分,并且会随文件一起提供,但其中并不重要。

from turtle import Turtle, Screen
import turtle, winsound, os

def k1():
    screen.onkey(None, "w")
    cy = cursor.ycor()
    cym = cy+100
    cursor.goto(-250, cym)
    credits.color('black')
    if cursor.ycor() == 300:
        cursor.goto(-250,200)
        screen.onkey(k1, "w")
    elif cursor.ycor() == 200:
        play.color('white')
        screen.onkey(k1 , 'w')
    else:
        screen.onkey(k1, "w")
    
def k2():
    screen.onkey(None, "s")
    cy = cursor.ycor()
    cym = cy-100
    cursor.goto(-250, cym)
    play.color('black')
    if cursor.ycor() == 0:
        cursor.goto(-250,100)
        screen.onkey(k2, 's')
    elif cursor.ycor() == 100:
        credits.color('white')
        screen.onkey(k2 , 's')
    else:
        screen.onkey(k2, "s")

def k3():
    screen.onkey(None, 'return')
    if cursor.ycor() == 200:
        os.startfile('dunegon1.py')
    elif cursor.ycor() == 100:
        os.startfile('credits.txt')

#winsound.PlaySound('main menu.wav', winsound.SND_ASYNC)

#logo.left(90)      #this goes here in final deployment
#logo.forward(350)  #but too annoying for testing 

screen = Screen()
screen.setup(800,800)
screen.title('Rendering')
screen.tracer(False)

turtle.register_shape('logo.gif')
logo = turtle.Turtle()
logo.shape('logo.gif')
logo.penup()
logo.speed(1)

cursor = turtle.Turtle()
cursor.shapesize(6, 4, 2)
cursor.penup()
cursor.hideturtle()
cursor.speed(0)

play = turtle.Turtle()
play.hideturtle()
play.penup()
play.shape('circle')
play.shapesize(3, 3, 3)

credits = turtle.Turtle()
credits.hideturtle()
credits.penup()
credits.shape('circle')
credits.shapesize(3, 3, 3)

logo.left(90)
logo.forward(350)

cursor.goto(-250, 200)
cursor.showturtle()

play.goto(-200, 200)
play.write('     Enter dunegon', font=('arial', '40'))
play.color('white')
play.showturtle()

credits.goto(-200, 100)
credits.showturtle()
credits.write('     Credits', font=('arial', '40'))

screen.onkey(k1, 'w')
screen.onkey(k2, 's')
screen.onkey(k3, 'Return')

screen.listen()
screen.tracer(True)
screen.title('Menu')
screen.mainloop()

如果您将其置于空闲状态,它可以正常工作,但不能从文件中读取,其他文件可以工作,但此文件不行。 有任何想法吗? 我现在在另一台设备上尝试过,效果很好吗?

python python-3.x turtle-graphics python-turtle
1个回答
0
投票

不要从文件资源管理器打开 Python 文件,这实际上不会执行任何操作。

可以在命令行上运行Python文件:

python -m <module>

其中

<module>
是您要运行的文件的名称,不带
.py
扩展名。

为了获得更简化的体验,我推荐 Visual Studio Code 及其 Python 扩展。这将允许您在键入代码时检测代码中的问题,如果您想运行活动的 python 文件,您只需按一下按钮即可完成。

© www.soinside.com 2019 - 2024. All rights reserved.