Как приписать прямоугольник к спрайту - PullRequest
0 голосов
/ 18 мая 2019

Когда я запускаю этот код, он не отображает спрайт на экране. просто пустой экран Я перепробовал все, что мог придумать, чтобы заставить это работать. Некоторая помощь будет принята с благодарностью.

Я перепробовал все, что мог, чтобы заставить это работать. я пытаюсь создать свои спрайты с атрибутом 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 голосов
/ 18 мая 2019

Из документов :

blit ()
рисовать одно изображение на другом
blit (source, dest, area = None, special_flags = 0)-> Rect
Рисует поверхность источника на этой поверхности.Ничья может быть размещена с аргументом dest.Dest может быть парой координат, представляющих верхний левый угол источника.Rect также может быть передан в качестве пункта назначения, а верхний угол прямоугольника будет использоваться в качестве позиции для блита.Размер прямоугольника назначения не влияет на блиц.

Метод 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...