【问题标题】:Pygame drag background imagePygame拖动背景图片
【发布时间】:2012-03-22 17:53:35
【问题描述】:

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

【问题讨论】:

    标签: python pygame


    【解决方案1】:

    您需要的是检测事件类型,例如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

    【讨论】:

      【解决方案2】:

      我猜它应该是一个原始的 SDL 包装器。您需要自己编写代码。检查鼠标是否已按下,如果是,请使用以下方法对其进行跟踪:

      AmountMoved = ThisFrameMousePosition - LastFrameMousePosition;
      

      然后将'AmountMoved'添加到背景图像的位置。如果它朝您想要的错误方向前进,请减去 AmountMoved。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-14
        • 1970-01-01
        • 1970-01-01
        • 2015-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        相关资源
        最近更新 更多