Pygame拖曳背景图象

时间:2012-03-21 21:06:39

标签: python pygame

我试图让我的背景图像在鼠标移动时向相反方向移动。所以看起来你正在左右拖动屏幕,就像在许多移动应用程序中看到的那样。有没有人有一个简单的方法呢?

2 个答案:

答案 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。