gpt4 book ai didi

python - 在 Python 中使用 Turtle 模块将缩小的 turtle 向上移动窗口屏幕

转载 作者:行者123 更新时间:2023-12-04 08:36:07 27 4
gpt4 key购买 nike

我应该定义一个函数,movingTurtle ,它使用 Python 的 turtle 模块,将 turtle 设置为实际的 turtle 形状,并将 turtle 从屏幕底部向上移动到顶部,随着它的移动变得越来越小。这是我目前拥有的代码:

def movingTurtle(mTurtle, window):
'''
Create turtle that is the shape of an actual
turtle, then have it move from the bottom of screen
to the top, getting smaller as it moves along its path
'''
width = window.window_width()
height = window.window_height()

bottom = -height/2
top = height/2

mTurtle.shape("turtle")
mTurtle.penup()
mTurtle.setposition(0, bottom)
x = int(height/10)
y = int(height/10)
z = int(height/10)
for i in range(bottom, top):
mTurtle.setposition(0, i)
#x -= .1
#y -= .1
#z -= .1
#mTurtle.shapesize(x, y, z)

def main():
# set window size
width = int(input('Enter the width of the screen: '))
height = int(input('Enter the height of the screen: '))
turtle.setup(width,height)
print('='*50)
#========================================================
# get reference to turtle window
window = turtle.Screen()
# set window title bar
window.title('Lab20 - Turtle Object')
#========================================================
# Moving turtle
mTurtle = turtle.Turtle()
# function call
try:
movingTurtle(mTurtle,window)
except:
print('movingTurtle is not either defined or there is a',
'problem with the function')
#========================================================

main()

( main() 部分的原因是因为我实际上还有其他几个功能 - 这是一个项目)
即使注释掉了底部的四行,我什至无法让 turtle 从顶部移动到底部。起初,我有:
for i in range(-height, height):
mTurtle.setposition(0, i)
etc.
但我意识到这使得 turtle 开始的距离比窗口的实际大小更远,我需要把那个大小减半。但是当我有那个代码时, turtle 至少从底部移动到顶部。
我试着输入 for i in range(-height/2, height/2)那是我的 turtle 完全停止出现的时候。
所以,然后我尝试将这些值保存在变量底部和顶部中,认为可能由于某种原因我不能将它们放入范围参数中?
由于某种原因,这不起作用,我不确定为什么。
以前,当我的 turtle 从下到上移动时,最后 4 行正在缩小它,但它会变得非常小,当它到达屏幕中间时它会消失。我认为这是因为我没有高度除以二。

最佳答案

关于 turtle 的运动,我相信@JasonYang 的评论在 (+1) 上是正确的,尽管缺乏解释。 turtle 在浮点平面上徘徊,但 range()想要int值(value)观。我们使用整数除法\\将 turtle 的浮点值转换为 range()想要:

import sys
from turtle import Screen, Turtle

def movingTurtle(mTurtle, window):
height = window.window_height()

top, bottom = height // 2, -height // 2 # use // for range() below, turtle doesn't care

mTurtle.shape('turtle')
mTurtle.setheading(90) # turtle faces direction of motion
mTurtle.penup()
mTurtle.sety(bottom)

for y in range(bottom + 1, top):
mTurtle.sety(y)

def main():
width = int(input("Enter the width of the screen: "))
height = int(input("Enter the height of the screen: "))

screen = Screen()
screen.setup(width, height)
screen.title("Lab20 - Turtle Object")

try:
movingTurtle(Turtle(), screen)
except:
print("movingTurtle is not either defined or there is a problem with the function", file=sys.stderr)

screen.exitonclick()

main()

关于python - 在 Python 中使用 Turtle 模块将缩小的 turtle 向上移动窗口屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64791932/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com