Pygame - pygame.mouse.get_pos问题

时间:2013-11-23 10:15:29

标签: python-2.7 pygame

问题不在于错误,只是因为我试图让这个十字准线图像跟随屏幕上的鼠标,我成功但它留下了相同图像的痕迹,因此屏幕最终变成了垃圾邮件图片,下面是代码:

import sys, pygame;
from pygame.locals import *;
spaceship = ('spaceship.png')
mouse_c = ('crosshair.png')
pygame.init()
screen = pygame.display.set_mode((800, 600))
mousec = pygame.image.load(mouse_c).convert_alpha()
space_ship = pygame.image.load(spaceship).convert_alpha()
clock = pygame.time.Clock()
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == MOUSEBUTTONDOWN and event.button == 1:
            print("test1")
        elif event.type == MOUSEBUTTONDOWN and event.button == 3:
            print("test3")
    pos = pygame.mouse.get_pos() #Here is the mouse following code
    screen.blit(mousec, (pos)) #Setting image to pos of mouse.. atleast I think I am
    pygame.display.update()

1 个答案:

答案 0 :(得分:2)

你的代码没有问题......它正在做你所说的 但是,对于任何绘制的图像,都会创建一个新背景(以及图像),将其设置为新背景,因此需要在函数pygame.display.update()pygame.display.flip()之前删除背景并将其设置为默认值。被称为。

更多信息here

  1. 所以你基本上所做的就是通过拍摄一张图片来创建一个新的背景(800x600)('background.png')

  2. 加载它:
    bk = pygame.image.load('background.png').convert_alpha()

  3. 在模仿其他移动物体之前进行模仿。
    screen.blit(bk, (0,0))
    pos = pygame.mouse.get_pos() #Here is the mouse following code
    screen.blit(mousec, (pos)) #Setting image to pos of mouse
    pygame.display.update()


  4. 为游戏添加背景为游戏提供了完整的触摸,但如果您不想添加它,那么每次调用while循环时,您可以做的最简单的事情就是用一种颜色填充屏幕。
    所以在while循环开始之后添加这个:
    screen.fill(Color("black"))