Pyglet:on_draw中的变量

时间:2014-05-20 15:40:44

标签: python pyglet

我的代码使用on_draw()来显示一些数字,它使用全局变量作为这些数字的参数。

我想知道如何将main()函数中的局部变量发送到on_draw()。 有可能吗?

2 个答案:

答案 0 :(得分:1)

我不熟悉Pyglet,但我会尝试回答。

如果您想使用main()中的全局变量,请使用on_draw()关键字在global内声明变量。

例如在全局空间(任何函数之外)。

x = 5

on_draw()

global x
#whenever you refer to x from now on, you will be referring to the x from main
#do something with x
x = 10

现在,如果您再次进入main()

global x
print(x)

> 10

答案 1 :(得分:0)

要添加Lee Thomas的答案,这里有一个完整的片段,可以根据代码中任何位置的变量值实际执行操作:

import  pyglet

x = 0 #declaring a global variable

window = pyglet.window.Window()#fullscreen=True
one_image = pyglet.image.load("one.png") 
two_image = pyglet.image.load("two.png") 
x = 10 #assigning the variable with a different value 
one = pyglet.sprite.Sprite(one_image)
two = pyglet.sprite.Sprite(two_image)
print "x in main, ", x


@window.event
def on_draw():
    global x #making the compiler understand that the x is a global one and not local
    one.x = 0
    one.y = 0
    one.draw()
    two.x = 365
    two.y = 305
    two.draw()
    print "x in on_draw, ", x

pyglet.app.run()    

运行代码后,我得到输出as Here

希望这有帮助