【发布时间】:2012-03-22 17:53:35
【问题描述】:
我试图让我的背景图像在单击鼠标时向相反方向移动。所以看起来你正在左右拖动屏幕,就像你在许多移动应用程序中看到的那样。有没有人有一个简单的方法来做到这一点?
【问题讨论】:
我试图让我的背景图像在单击鼠标时向相反方向移动。所以看起来你正在左右拖动屏幕,就像你在许多移动应用程序中看到的那样。有没有人有一个简单的方法来做到这一点?
【问题讨论】:
您需要的是检测事件类型,例如MOUSEBUTTONDOWN, MOUSEBUTTONUP, MOUSEMOTION。
当您检测到鼠标移动时,使用event.buttons 属性检查它是否被单击。
这是我的工具:
import pygame
from pygame.locals import *
pygame.display.init()
screen = pygame.display.set_mode((800, 600))
img = pygame.image.load('sky.png')
imgPos = pygame.Rect((0, 0), (0, 0))
LeftButton = 0
while 1:
for e in pygame.event.get():
if e.type == QUIT: exit(0)
if e.type == MOUSEMOTION:
if e.buttons[LeftButton]:
# clicked and moving
rel = e.rel
imgPos.x += rel[0]
imgPos.y += rel[1]
screen.fill(0)
screen.blit(img, imgPos)
pygame.display.flip()
pygame.time.delay(30)
您可能需要阅读:Pygame event document
【讨论】:
我猜它应该是一个原始的 SDL 包装器。您需要自己编写代码。检查鼠标是否已按下,如果是,请使用以下方法对其进行跟踪:
AmountMoved = ThisFrameMousePosition - LastFrameMousePosition;
然后将'AmountMoved'添加到背景图像的位置。如果它朝您想要的错误方向前进,请减去 AmountMoved。
【讨论】: