Класс Wall
Для удобства класс можно вынести в отдельный модуль.
Модуль wall |
import pygame
class Wall(pygame.sprite.Sprite):
def __init__(self, x, y):
pygame.sprite.Sprite.__init__(self)
self.x = x
self.y = y
self.image = pygame.Surface((50, 50))
self.image.fill((0, 0, 0))
pygame.draw.rect(self.image, (255, 255, 255), (5, 5, 40, 40))
self.rect = self.image.get_rect()
self.rect.center = self.x, self.y
def reset(self, screen):
screen.blit(self.image, self.rect)
|
Модуль main |
from player import Player
from wall import Wall
import sys
import pygame
pygame.init()
SIZE = WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode(SIZE)
clock = pygame.time.Clock()
LEFT = RIGHT = False
p1 = Player(400, 300)
w1 = Wall(500, 300)
while 1:
...
screen.fill((255, 255, 255))
p1.reset(screen)
p1.update(LEFT, RIGHT)
w1.reset(screen)
pygame.display.update()
clock.tick(60)
|
Как и игрок класс Wall
наследуется от класса Sprite
.
Задание: создать несколько препятствий и объединить их в одну группу.
Примечание: у экземпляра класса Group
есть метод .draw()
, поэтому метод .reset()
класса Wall
можно удалить.