如何将乌龟设置为乌龟屏幕
how to set a turtle to a turtle screen
我有一个我正在尝试制作的游戏,但是当我创建我的屏幕和我的乌龟时,我的乌龟出现在与我制作的屏幕不同的屏幕上。
如果我要 运行 代码,它会弹出 2 个不同的乌龟屏幕 A:我称之为屏幕的那个,以及 B:当您创建没有屏幕的乌龟时自动弹出的那个。
import turtle
from turtle import *
from turtle import Screen
import tkinter
from tkinter import *
import time
from time import sleep
from random import randint
import random
health = 50
damage = 10
root = Tk()
Fight = randint(10,20)
step = 0
cv = ScrolledCanvas(root,600,600,600,600)
cv.pack(side = tkinter.LEFT)
turtle = Turtle()
screen = TurtleScreen(cv)
turtle.up()
def Up(event):
global step
if step == Fight:
Combat()
step+=1
turtle.seth(90)
turtle.forward(10)
def Down(event):
global step
if step == Fight:
Combat()
step+=1
turtle.seth(-90)
turtle.forward(10)
def Left(event):
global step
if step == Fight:
Combat()
step+=1
turtle.seth(180)
turtle.forward(10)
def Right(event):
global step
if step == Fight:
Combat()
step+=1
turtle.seth(0)
turtle.forward(10)
def Combat():
Enemy = Turtle()
Enemy.up()
EHealth = randint(20,100)
EDamage = randint(10,20)
screen.onkey(forward, "Up")
screen.onkey(backward, "Down")
screen.onkey(left, "Left")
screen.onkey(right, "Right")
screen.listen()
谢谢,
Python turtle 被设计为嵌入到您自己制作的 Tk window 或它正在制作的 Tk window 中。这两个选项的调用方式不同,但通过混合命令,您最终会得到两者。采用您开始的自定义 Tk window 方法:
from random import randint
from tkinter import *
from turtle import ScrolledCanvas, RawTurtle, TurtleScreen
health = 50
damage = 10
fight = randint(10, 20)
step = 0
def up():
global step
if step == fight:
combat()
step += 1
turtle.seth(90)
turtle.forward(10)
def down():
global step
if step == fight:
combat()
step += 1
turtle.seth(-90)
turtle.forward(10)
def left():
global step
if step == fight:
combat()
step += 1
turtle.seth(180)
turtle.forward(10)
def right():
global step
if step == fight:
combat()
step += 1
turtle.seth(0)
turtle.forward(10)
def combat():
enemy = RawTurtle(canvas)
enemy.up()
eHealth = randint(20, 100)
eDamage = randint(10, 20)
root = Tk()
canvas = ScrolledCanvas(root)
canvas.pack(side=LEFT)
screen = TurtleScreen(canvas)
turtle = RawTurtle(canvas)
turtle.up()
screen.onkey(up, "Up")
screen.onkey(down, "Down")
screen.onkey(left, "Left")
screen.onkey(right, "Right")
screen.listen()
screen.mainloop()
或者,我们可以通过让 turtle 模块创建 window 来简化事情,尽管我们可以通过其方法调用根据需要调整它:
from random import randint
from turtle import Turtle, Screen
health = 50
damage = 10
fight = randint(10, 20)
step = 0
def up():
global step
if step == fight:
combat()
step += 1
turtle.seth(90)
turtle.forward(10)
def down():
global step
if step == fight:
combat()
step += 1
turtle.seth(-90)
turtle.forward(10)
def left():
global step
if step == fight:
combat()
step += 1
turtle.seth(180)
turtle.forward(10)
def right():
global step
if step == fight:
combat()
step += 1
turtle.seth(0)
turtle.forward(10)
def combat():
enemy = Turtle()
enemy.up()
eHealth = randint(20, 100)
eDamage = randint(10, 20)
screen = Screen()
screen.setup(500, 350) # visible portion of screen area
screen.screensize(600, 600) # scrollable extent of screen area
turtle = Turtle()
turtle.up()
screen.onkey(up, "Up")
screen.onkey(down, "Down")
screen.onkey(left, "Left")
screen.onkey(right, "Right")
screen.listen()
screen.mainloop()
您在使用 import
时应该更加谨慎,因为以两种不同的方式导入相同的模块最终会使您感到困惑 and/or Python.
我有一个我正在尝试制作的游戏,但是当我创建我的屏幕和我的乌龟时,我的乌龟出现在与我制作的屏幕不同的屏幕上。 如果我要 运行 代码,它会弹出 2 个不同的乌龟屏幕 A:我称之为屏幕的那个,以及 B:当您创建没有屏幕的乌龟时自动弹出的那个。
import turtle
from turtle import *
from turtle import Screen
import tkinter
from tkinter import *
import time
from time import sleep
from random import randint
import random
health = 50
damage = 10
root = Tk()
Fight = randint(10,20)
step = 0
cv = ScrolledCanvas(root,600,600,600,600)
cv.pack(side = tkinter.LEFT)
turtle = Turtle()
screen = TurtleScreen(cv)
turtle.up()
def Up(event):
global step
if step == Fight:
Combat()
step+=1
turtle.seth(90)
turtle.forward(10)
def Down(event):
global step
if step == Fight:
Combat()
step+=1
turtle.seth(-90)
turtle.forward(10)
def Left(event):
global step
if step == Fight:
Combat()
step+=1
turtle.seth(180)
turtle.forward(10)
def Right(event):
global step
if step == Fight:
Combat()
step+=1
turtle.seth(0)
turtle.forward(10)
def Combat():
Enemy = Turtle()
Enemy.up()
EHealth = randint(20,100)
EDamage = randint(10,20)
screen.onkey(forward, "Up")
screen.onkey(backward, "Down")
screen.onkey(left, "Left")
screen.onkey(right, "Right")
screen.listen()
谢谢,
Python turtle 被设计为嵌入到您自己制作的 Tk window 或它正在制作的 Tk window 中。这两个选项的调用方式不同,但通过混合命令,您最终会得到两者。采用您开始的自定义 Tk window 方法:
from random import randint
from tkinter import *
from turtle import ScrolledCanvas, RawTurtle, TurtleScreen
health = 50
damage = 10
fight = randint(10, 20)
step = 0
def up():
global step
if step == fight:
combat()
step += 1
turtle.seth(90)
turtle.forward(10)
def down():
global step
if step == fight:
combat()
step += 1
turtle.seth(-90)
turtle.forward(10)
def left():
global step
if step == fight:
combat()
step += 1
turtle.seth(180)
turtle.forward(10)
def right():
global step
if step == fight:
combat()
step += 1
turtle.seth(0)
turtle.forward(10)
def combat():
enemy = RawTurtle(canvas)
enemy.up()
eHealth = randint(20, 100)
eDamage = randint(10, 20)
root = Tk()
canvas = ScrolledCanvas(root)
canvas.pack(side=LEFT)
screen = TurtleScreen(canvas)
turtle = RawTurtle(canvas)
turtle.up()
screen.onkey(up, "Up")
screen.onkey(down, "Down")
screen.onkey(left, "Left")
screen.onkey(right, "Right")
screen.listen()
screen.mainloop()
或者,我们可以通过让 turtle 模块创建 window 来简化事情,尽管我们可以通过其方法调用根据需要调整它:
from random import randint
from turtle import Turtle, Screen
health = 50
damage = 10
fight = randint(10, 20)
step = 0
def up():
global step
if step == fight:
combat()
step += 1
turtle.seth(90)
turtle.forward(10)
def down():
global step
if step == fight:
combat()
step += 1
turtle.seth(-90)
turtle.forward(10)
def left():
global step
if step == fight:
combat()
step += 1
turtle.seth(180)
turtle.forward(10)
def right():
global step
if step == fight:
combat()
step += 1
turtle.seth(0)
turtle.forward(10)
def combat():
enemy = Turtle()
enemy.up()
eHealth = randint(20, 100)
eDamage = randint(10, 20)
screen = Screen()
screen.setup(500, 350) # visible portion of screen area
screen.screensize(600, 600) # scrollable extent of screen area
turtle = Turtle()
turtle.up()
screen.onkey(up, "Up")
screen.onkey(down, "Down")
screen.onkey(left, "Left")
screen.onkey(right, "Right")
screen.listen()
screen.mainloop()
您在使用 import
时应该更加谨慎,因为以两种不同的方式导入相同的模块最终会使您感到困惑 and/or Python.