【问题标题】:Is it possible to put python's turtle into a function?是否可以将 python 的 turtle 放入函数中?
【发布时间】:2022-11-22 02:11:05
【问题描述】:

首先,如果我犯了一个愚蠢的错误,我很抱歉,因为我是初学者。请原谅我

我开始使用 turtle 类在 python 中制作一个“游戏”作为作业。 这是代码:

import turtle

window = turtle.Screen()
window.setup(width=800, height=800)
window.bgcolor("black")
window.tracer(0)

player = turtle.Turtle()
player.speed(0)
player.shape("square")
player.color("red")
player.penup()
player.goto(0, 0)

def objectup(t):
    y = t.ycor()
    y += 30
    t.sety(y)

objectup(player)
window.onkeypress(objectup(player), "w")

window.listen()
while True:
    window.update()

我没有收到错误信息,但是敌人还是上不去,我也不知道为什么

这段代码有什么问题? 在此先感谢(如果我犯了错误,对不起我的英语)

我通过在函数中添加 y = player.ycor() 来让它工作。但是这样我就不能移动其他具有相同功能的对象了。 我不知道,所以我在这里问问是否有人可以帮助初学者

【问题讨论】:

标签: python function turtle-graphics


【解决方案1】:

window.onkeypress(objectup(player), "w") 表示您调用objectup(player) 并将它返回的值传递给window.onkeypress(..., 'w')。但它不返回任何内容(这意味着它返回None)。您需要将一个函数传递给window.onkeypress,乌龟将调用该函数,例如:

window.onkeypress(objectup, 'w')

但是,如果您希望它适用于不同的对象,则需要创建返回函数的函数:

def objectup(t):
    def wrapped():
        y = t.ycor()
        y += 30
        t.sety(y)
    return wrapped

window.onkeypress(objectup(player), 'w')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-17
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多