【发布时间】:2021-10-23 02:33:33
【问题描述】:
我知道如何制作一个窗口,我知道如何显示图像,我知道如何根据给定的坐标以给定的方式移动它。我想用鼠标移动图像。从一个地方拿起,在另一个地方放下。在同一个 pyglet 窗口内。 如何做这样的事情?有人会好心地向我指出一些代码示例。
【问题讨论】:
标签: python image window pyglet
我知道如何制作一个窗口,我知道如何显示图像,我知道如何根据给定的坐标以给定的方式移动它。我想用鼠标移动图像。从一个地方拿起,在另一个地方放下。在同一个 pyglet 窗口内。 如何做这样的事情?有人会好心地向我指出一些代码示例。
【问题讨论】:
标签: python image window pyglet
PyGlet 有一个 on_mouse_drag 事件。见Mouse events。
sprite = pyglet.sprite.Sprite(image)
当鼠标在精灵上时改变精灵的位置:
@window.event
def on_mouse_drag(x, y, dx, dy, buttons, modifiers):
if sprite.x < x < sprite.x + sprite.width and sprite.y < y < sprite.y + sprite.width:
sprite.x += dx
sprite.y += dy
小例子:
from pyglet.gl import *
window = pyglet.window.Window(300, 300, "drag", resizable = True)
image = pyglet.image.load('banana64.png')
sprite = pyglet.sprite.Sprite(image, x=20, y=20)
@window.event
def on_mouse_drag(x, y, dx, dy, buttons, modifiers):
if sprite.x < x < sprite.x + sprite.width and sprite.y < y < sprite.y + sprite.width:
sprite.x += dx
sprite.y += dy
@window.event
def on_draw():
window.clear()
sprite.draw()
pyglet.app.run()
【讨论】: