Voland_90
@Voland_90

Как вставить текстуру вместо цвета?

Я делаю небольшую игру по сети. И хотел бы вместо обычного цвета у игроков сделать текстуры.
Использую - pygame.image.load("player_1.png").

Server.py:
...
img1 = pygame.image.load("player_1.png")
img2 = pygame.image.load("player_2.png")
players = [Player(0,0, 50,50, 3, img1), Player(0,0, 50,50, 3, img2)]
...


Client.py:
...
def redrawWindow(win,player, player2):
    win.fill((83, 186, 28))
    player.draw(win)
    player2.draw(win)
    pygame.draw.rect(win, panel_color, panel_rect)
    pygame.display.update()
...


Player.py:
import pygame

class Player():
    def __init__(self, x, y, width, height, speed, texture):
        self.rect = pygame.Rect(x, y, width, height)
        self.texture = texture
        self.speed = speed

    def move(self, dx, dy):
        self.rect.x += dx * self.speed
        self.rect.y += dy * self.speed

    def handle_events(self, width, panel_width, height, panel_rect):
        keys = pygame.key.get_pressed()

        if keys[pygame.K_LEFT]:
            self.move(-1, 0)
        if keys[pygame.K_RIGHT]:
            self.move(1, 0)
        if keys[pygame.K_UP]:
            self.move(0, -1)
        if keys[pygame.K_DOWN]:
            self.move(0, 1)


        # Столкновение с границами окна и границей боковой панели
        self.rect.clamp_ip(pygame.Rect(0, 0, width - panel_width, height))
        if self.rect.colliderect(panel_rect):
            self.rect.clamp_ip(pygame.Rect(0, 0, width - panel_width, height))


    def draw(self, win):
        #pygame.draw.rect(win, self.texture, self.rect)
        win.blit(self.texture, self.rect)


Когда включаю сервер, всё ок. А когда после сервера включаю клиент, то игровое окно пояляется и засивает, ничего не отображает...

А если использую просто цвета, вместо текстур(картинок), то всё работае:
640dca1a4ce3e715033889.png

Так как вместо цветов(синего и красного) использовать текстуры(картинки)?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы