如何将rect归为sprite

时间:2019-05-18 09:22:12

标签: pygame

运行此代码时,它不会在屏幕上显示精灵。只是一个空白屏幕,我已经尽力想尽一切办法使它起作用。一些帮助将不胜感激。

我已尽我所能使此功能生效。我想做的是用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()

我希望它能将我的两个精灵显示在屏幕上,并在它们触摸以记录命中时显示。

1 个答案:

答案 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))