Здравствуйте, помогите, пожалуйста начинающему разработчику с библиотекой pygame:
При создании кода необходимо сделать несколько несколько спрайтов одного типа, смотрел уроки, но не помогло.
Прикрепляю свой код:
мне нужен вывод нескольких спрайтов класса wall_1 на экран, помогите, ко знает!
Заранее спасибо!
При создании кода необходимо сделать несколько несколько спрайтов одного типа, смотрел уроки, но не помогло.
Прикрепляю свой код:
Python:
import pygame
import random
#генерация
from random import randint
generation_x = randint(0,600)
generation_y = randint(0,600)
print(generation_x)
print(generation_y)
FPS=60
FLOOR=(184,134,11)
FLOOR_2=(205,133,63)
BLACK=(0,0,0)
WIDTH=600
HEIGHT=600
RED = (255, 0, 0)
GRAY=(128,128,128)
pygame.init()
pygame.mixer.init()
screen=pygame.display.set_mode((WIDTH , HEIGHT))
pygame.display.set_caption("SECRET")
clock = pygame.time.Clock()
class player (pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.Surface((50,50))
self.image.fill(FLOOR_2)
self.rect=self.image.get_rect()
self.rect.center=(WIDTH/2,HEIGHT/2)
class wall_1(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image=pygame.Surface((20,200))
self.image.fill(GRAY)
self.rect=self.image.get_rect()
self.rect.center=(generation_x,generation_y)
def update(self):
self.speedx = 0
self.speedy = 0
a=0
keystate = pygame.key.get_pressed()
if keystate[pygame.K_z]:
a=2
if keystate[pygame.K_LEFT]:
self.speedx = +(2+a)
if keystate[pygame.K_RIGHT]:
self.speedx = -(2+a)
if keystate[pygame.K_UP]:
self.speedy = +(2+a)
if keystate[pygame.K_DOWN]:
self.speedy = -(2+a)
self.rect.x += self.speedx
self.rect.y += self.speedy
#столкновение с верхом игрока
if self.rect.top < 90:
if self.rect.bottom > 275 and self.rect.right > 277 and self.rect.left < 323 :
self.rect.bottom = (player.rect.top)
#столкновение с низом игрока
if self.rect.bottom > 500:
if self.rect.top < 325 and self.rect.right > 277 and self.rect.left < 323 :
self.rect.top = (player.rect.bottom)
#столкновение с левой гранью игрока
if self.rect.left < 275:
if self.rect.right > 275 and self.rect.top < 325 and self.rect.bottom > 275 :
self.rect.right = (player.rect.left)
#столкновение с правой гранью игрока
if self.rect.right > 335:
if self.rect.left < 345 and self.rect.top < 325 and self.rect.bottom > 275 :
self.rect.left = (player.rect.right)
wall_sprites = pygame.sprite.Group()
all_sprites = pygame.sprite.Group()
walls = pygame.sprite.Group()
player = player()
all_sprites.add(player)
for i in range(8):
w = wall_1()
wall_sprites.add(w)
walls.add(w)
running=True
while running:
clock.tick(FPS)
wall_sprites.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill(FLOOR)
all_sprites.draw(screen)
wall_sprites.draw(screen)
pygame.display.flip()
pygame.quit()
мне нужен вывод нескольких спрайтов класса wall_1 на экран, помогите, ко знает!
Заранее спасибо!
Последнее редактирование: