我想创建一个程序,其中Turtle对象响应按键。我可以这样做,但我似乎无法理解如何移动第二个Turtle对象,它由计算机控制,而第一个正在移动。任何帮助将不胜感激。
这是我的代码:
from turtle import *
from Tkinter import Tk
root = Tk()
root.withdraw()
turtle = Turtle()
def h1():turtle.forward(10)
def h2():turtle.left(45)
def h3():turtle.right(45)
def h4():turtle.back(10)
def h5(root=root):root.quit()
onkey(h1,"Up")
onkey(h2,"Left")
onkey(h3,"Right")
onkey(h4,"Down")
onkey(h5,"q")
listen()
root.mainloop()
答案 0 :(得分:1)
在使用键w,a,s,d移动的listen()
之前插入第二只乌龟:
turtle2 = Turtle()
def h11():turtle2.forward(10)
def h21():turtle2.left(45)
def h31():turtle2.right(45)
def h41():turtle2.back(10)
onkey(h11,"w")
onkey(h21,"a")
onkey(h31,"d")
onkey(h41,"s")
答案 1 :(得分:0)
我似乎无法理解如何移动第二个Turtle对象 由计算机控制,而第一个正在移动。
以下是您描述的一些最小代码。 Green turtle Pokey是由计算机控制的,而红龟Hokey是由用户控制的(首先点击窗口,以便听到你的击键):
KEYSTORE="$(/usr/libexec/java_home)/jre/lib/security/cacerts";
function running_as_root()
{
if [ "$EUID" -ne 0 ]
then echo "NO"
exit
fi
echo "YES"
}
function import_certs_to_java_keystore
{
for crt in *.crt; do
echo prepping $crt
keytool -import -file $crt -storepass changeit -noprompt --alias alias__${crt} -keystore $KEYSTORE
echo
done
}
if [ "$(running_as_root)" == "YES" ]
then
import_certs_to_java_keystore
else
echo "This script needs to be run as root!"
fi
这不是完成的代码(关闭计时器事件应该更干净,Hokey的处理程序应该在运行时锁定其他事件等)但是应该给你一个基本的想法如何去做。