2012-03-21 11 views
2

クリックしたときにマウスが動いているのと反対の方向に背景画像を移動しようとしています。つまり、多くのモバイルアプリで見られるように、画面を左右にドラッグしているように見えます。誰もこれを行う簡単な方法を持っていますか?パイガムのドラッグ背景画像

答えて

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

私はそれが未処理のSDLラッパーであると推測しています。あなた自身でコード化する必要があります。マウスがダウンしているかどうかをチェックし、もしそうなら、のようなものを使用してそれを追跡:そして、背景画像の位置に「AmountMoved」を追加

AmountMoved = ThisFrameMousePosition - LastFrameMousePosition; 

。それが間違った方向に向いている場合は、代わりにAmountMovedを減算します。