运行此代码时,它不会在屏幕上显示精灵。只是一个空白屏幕,我已经尽力想尽一切办法使它起作用。一些帮助将不胜感激。
我已尽我所能使此功能生效。我想做的是用rect属性创建我的精灵。
import pygame
pygame.display.init()
pygame.display.set_mode((0, 0), pygame.FULLSCREEN)
x = 300
y = 500
x1 = 100
y1 = 200
image1 = pygame.sprite.Sprite()
image1.image = pygame.image.load("picy.png").convert_alpha()
image2 = pygame.sprite.Sprite()
image2.image = pygame.image.load("picy1.png").convert_alpha()
image1_rect = image1.image.get_rect(topleft=(x,y))
image2_rect = image2.image.get_rect(topleft=(x1,y1))
screen.blit(image2_rect,(x1,y1))
screen.blit(image1_rect,(x,y))
pygame.display.update()
我希望它能将我的两个精灵显示在屏幕上,并在它们触摸以记录命中时显示。
答案 0 :(得分:0)
来自docs:
blit()
将一个图像绘制到另一个图像上
blit(源,目标,区域=无,特殊标志= 0)->矩形
在此Surface上绘制源Surface。可以使用dest参数定位平局。目标可以是代表源左上角的一对坐标。 Rect也可以作为目标传递,矩形的左上角将用作blit的位置。目标矩形的大小不会影响blit。
blit
方法将Surface
而不是Rect
用作第一个参数。 Surface
是您的图片。
尝试:
screen.blit(image2.image, dest=image2_rect)
screen.blit(image1.image, dest=image1_rect)
顺便说一句,您可能还希望创建Sprite
实例的矩形属性,而不是单独的实例:
image1.rect = image1.image.get_rect(topleft=(x,y))
image2.rect = image2.image.get_rect(topleft=(x1,y1))