Pygame - Sprite - PullRequest
       17

Pygame - Sprite

0 голосов
/ 02 сентября 2018

Я учусь кодировать игры в pygame, и я написал простой код pygame, который загружает фон и рисует спрайт игрока. Я нарисовал фоновое изображение, только чтобы потом нарисовать плеер, чтобы изображение не перекрывалось с изображением игрока, и затем вызвал pygame.display.flip (), чтобы перевернуть экран. Это все еще не работает, почему? Я вставил изображения, используемые ниже

enter image description here enter image description here

import pygame

pygame.init()

black = (0, 0, 0)
width = 800
height = 600
screen = pygame.display.set_mode((width, height))
clock = pygame.time.Clock()
FPS = 60

background_img = pygame.image.load("environment_forest_alt1.png")
backgroundimg_rect = background_img.get_rect()
player_img_idle = pygame.image.load("adventurer-idle-00.png")
player_img_run = pygame.image.load("adventurer-run-00.png")
player_img_attack = pygame.image.load("adventurer-attack1-01.png")
player_img_attack2 = pygame.image.load("adventurer-attack1-02.png")
player_img_attack3 = pygame.image.load("adventurer-attack1-03.png")
player_img_attack4 = pygame.image.load("adventurer-attack1-04.png")
player_img_attacks = [player_img_attack, player_img_attack2, player_img_attack3, player_img_attack4]

class Player(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.transform.scale(player_img_idle, (200, 100))
        self.image.set_colorkey(black)
        self.rect = self.image.get_rect()
        self.rect.x = 10
        self.rect.y = height - 10

all_sprites = pygame.sprite.Group()
player = Player()
all_sprites.add(player)

exitGame = False
while not exitGame:
    clock.tick(FPS)
    screen.blit(background_img, backgroundimg_rect)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exitGame = True

    all_sprites.draw(screen)
    pygame.display.flip()
pygame.quit()
quit()

1 Ответ

0 голосов
/ 03 сентября 2018

Вы просто рисуете спрайт игрока в основном за пределами экрана. Вы бы увидели это, если бы на изображении игрока было не так много пустого пространства вверху.

Просто измените строку

self.rect.y = height - 10

до

 self.rect.y = height - 100

или даже

self.rect.y = height - self.rect.height
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...