我正在使用海龟模块进行任务,我正在创建一个基于文本的游戏。我对一般的代码和python都很陌生,我想模拟使用鼠标按下的按钮。通过查看其他线程,我非常确定可以通过将乌龟移动到鼠标点击然后根据python是否在指定区域内执行操作,这将在视觉上显示为按钮。由于我没有经验,我不确定如何指定坐标并检查乌龟是否在其中。
以下是我的开始:
from turtle import *
import turtle as t
from time import sleep
import time as time
pen= Turtle()
bt=pen.clone()
bt.pu()
bt.setpos(-200,-200)
menu=0
pen.pu()
pen.setpos(0,50)
pen.write("1.Option1",align="center",font=("Chiller",40))
time.sleep(0.5)
pen.setpos(0,-30)
pen.write("2.Option2",align="center",font=("Chiller",40))
time.sleep(0.5)
pen.setpos(0,-110)
pen.write("3.Option3",align="center",font=("Chiller",40))
menu=1
while menu==1:
screen= Screen()
screen.onscreenclick(bt.goto)
bt.getscreen()._root.mainloop()
while menu==1:
if bt.xcor>(-200) and bt.xcor<(200):
if bt.ycor>(20) and bt.ycor<(80):
pen.clear()
pen.write("option 1")
elif bt.ycor>(-60) and bt.ycor<(0):
pen.clear()
pen.write("option 2")
elif bt.ycor>(-140) and bt.ycor<(-80):
pen.clear()
pen.write("option 3")
正如我所说,白痴语言会受到赞赏;谁能告诉我为什么这不起作用并可能提供解决方案。另外,我不完全确定&#34; screen = Screen()&#34;我确实在不同的线程中找到了它并实现了它......
提前感谢您提供任何帮助
答案 0 :(得分:0)
是的,这可以做到。 (是否应该完成另一个问题。)下面是演示代码,当您单击以下三个选项之一时,它会更改屏幕底部的文本:
from turtle import Turtle, Screen
FONTSIZE = 40
FONT = ("Ariel", FONTSIZE, "normal")
turtle = Turtle(visible=False)
turtle.penup()
turtle.setpos(0, FONTSIZE*2 - FONTSIZE/2)
turtle.write("1.Option1", align="center", font=FONT)
turtle.setpos(0, -FONTSIZE/2)
turtle.write("2.Option2", align="center", font=FONT)
turtle.setpos(0, -FONTSIZE*2 - FONTSIZE/2)
turtle.write("3.Option3", align="center", font=FONT)
turtle.setpos(-200, -200)
turtle.write("Select an Option", font=FONT)
def onclick_handler(x, y):
if -100 < x < 100:
if FONTSIZE < y < FONTSIZE*3:
turtle.undo()
turtle.write("Option 1", font=FONT)
elif -FONTSIZE < y < FONTSIZE:
turtle.undo()
turtle.write("Option 2", font=FONT)
elif -FONTSIZE*3 < y < -FONTSIZE:
turtle.undo()
turtle.write("Option 3", font=FONT)
screen = Screen()
screen.onscreenclick(onclick_handler)
screen.mainloop()
你的原始代码中有一个无限循环,这很复杂 - 你不应该在海龟程序中有无限循环。不要让你的点击处理程序移动乌龟,然后让无限循环检测乌龟的菜单位置,你可以简单地让你的点击处理程序确定点击菜单的位置,避免一些复杂性。
除此之外,硬编码数字总是很麻烦,你应该总是试图避免它们。计算你能做什么,用恒定变量记录你能做什么。