如何通过在 pyglet 中用鼠标拖动将 .png 从 x,y 拖动到 x1,y1 window

How to drag .png from x,y to x1,y1 by draging with mouse in pyglet window

我知道如何制作 window,我知道如何显示图像,我知道如何根据给定的坐标以给定的方式移动它。我想用鼠标移动图像。从一个地方拿起并放在另一个地方。在同一个 pyglet window 中。 如何做这样的事情?有人会很友好地指出一些代码示例。

PyGlet 有一个 on_mouse_drag 事件。参见 Mouse events

创建一个pyglet.sprite

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()