我试图让我的背景图像在鼠标移动时向相反方向移动。所以看起来你正在左右拖动屏幕,就像在许多移动应用程序中看到的那样。有没有人有一个简单的方法呢?
答案 0 :(得分:3)
您需要检测事件类型,例如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
答案 1 :(得分:1)
我猜它是一个原始的SDL包装器。你需要自己编写代码。检查鼠标是否已关闭,如果是,请使用以下内容进行跟踪:
AmountMoved = ThisFrameMousePosition - LastFrameMousePosition;
然后将'AmountMoved'添加到背景图像的位置。如果它向你想要的方向错开,则减去AmountMoved。