问题不在于错误,只是因为我试图让这个十字准线图像跟随屏幕上的鼠标,我成功但它留下了相同图像的痕迹,因此屏幕最终变成了垃圾邮件图片,下面是代码:
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()
答案 0 :(得分:2)
你的代码没有问题......它正在做你所说的
但是,对于任何绘制的图像,都会创建一个新背景(以及图像),将其设置为新背景,因此需要在函数pygame.display.update()
或pygame.display.flip()
之前删除背景并将其设置为默认值。被称为。
更多信息here
所以你基本上所做的就是通过拍摄一张图片来创建一个新的背景(800x600)('background.png')
。
加载它:
bk = pygame.image.load('background.png').convert_alpha()
在模仿其他移动物体之前进行模仿。
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()
为游戏添加背景为游戏提供了完整的触摸,但如果您不想添加它,那么每次调用while
循环时,您可以做的最简单的事情就是用一种颜色填充屏幕。
所以在while循环开始之后添加这个:
screen.fill(Color("black"))