Pygame перетащить фоновое изображение - PullRequest
2 голосов
/ 22 марта 2012

Я пытаюсь заставить мое фоновое изображение двигаться в противоположном направлении, когда мышь щелкает.Похоже, вы перетаскиваете экран влево и вправо, как вы можете видеть во многих мобильных приложениях.У кого-нибудь есть простой способ сделать это?

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

Вам нужно определить тип события, например 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

1 голос
/ 22 марта 2012

Я предполагаю, что это необработанная оболочка SDL. Вам нужно будет закодировать это самостоятельно. Проверьте, не нажата ли мышь, и если да, отследите ее, используя что-то вроде:

AmountMoved = ThisFrameMousePosition - LastFrameMousePosition;

Затем добавьте 'AmountMoved' в положение фонового изображения. Если он идет в неправильных направлениях, которые вы хотите, вместо этого вычтите AmountMoved.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...