#импортируем библиотеку
import pygame
#инцилизируем
pygame.init()
#окно название и размер
df = pygame.display.set_mode((600, 600))
pygame.display.set_caption("my game")
#игрок и фон
sx = 600
sy = 600
bg = pygame.image.load("D:\\игра_3\\unknown2.jpg")
pygame.draw.rect(df, (0,0,0), [230, 400, 140, 20])
pygame.draw.rect(df,(0,0,0),[50,250, 140, 20])
pygame.draw.rect(df, (0,0,0),[300,150, 140, 20])
ry = (150, 266)
#перменые
x = 70
y = 540
w = 40
h = 60
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.a = pygame.draw.rect(df,(0,255,0), (x, y, w, h))
player = Player()
x = 70
y = 540
w = 40
h = 60
speed = 10
jumps = 10
jump = False
left = False
right = False
def __init__(self):
super().__init__()
block_hit_list = pygame.sprite.spritecollide(self, self.level.platform_list, False)
for block in block_hit_list:
if self.x > 0:
self.rect.right = block.rect.left
elif self.x < 0:
self.rect.left = block.rect.right
self.rect.y += self.y
block_hit_list = pygame.sprite.spritecollide(self, self.level.platform_list, False)
for block in block_hit_list:
if self.y > 0:
self.rect.bottom = block.rect.top
elif self.y < 0:
self.rect.top = block.rect.bottom
self.y = 0
def jump(self):
self.rect.y += 10
platform_hit_list = pygame.sprite.spritecollide(self, self.level.platform_list, False)
self.rect.y -= 10
if len(platform_hit_list) > 0 or self.rect.bottom >= 600:
self.y = -16
class Platform(pygame.sprite.Sprite):
def __init__(self, w, h):
super().__init__()
self.g = pygame.image.load("D:\\игра_3\\platform.png")
self.g_r = self.image.get_rect()
class Level(object):
def __init__(self):
self.platform_list = pygame.sprite.Group()
self.player = player
#экран
def draww(self, df):
df.blit(bg, (0, 0))
self.platform_list.draw(df)
class Level_01(Level):
def __init__(self):
Level.__init__(self)
level = [
[210, 32, 500, 500],
[210, 32, 200, 400],
[210, 32, 600, 300],
]
for platform in level:
block = Platform(platform[0], platform[1])
block.rect.x = platform[2]
block.rect.y = platform[3]
block.player = self.player
self.platform_list.add(block)
def main():
pygame.init()
level_list = [[
[210, 32, 500, 500],
[210, 32, 200, 400],
[210, 32, 600, 300],
]]
level_list.append(Level_01(player))
current_level_no = 0
current_level = level_list[current_level_no]
spr = pygame.sprite.Group()
player.level = current_level
player.rect.x = 340
player.rect.y = 600 - player.rect.h
spr.add(player)
run = True
while run:
pygame.time.delay(30)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
#управлнее игроком и прыжки
keys = pygame.key.get_pressed()
if keys[pygame.K_a] and x > 3:
x -= speed
left = True
right = False
elif keys[pygame.K_d] and x < 600 - w -3:
x += speed
right = True
left = False
else:
left = False
right = False
if not (jump):
if keys[pygame.K_SPACE]:
jump = True
else:
if jumps >= -10:
if jumps < 0:
y += (jumps ** 2) / 2
else:
y -=(jumps ** 2) / 2
jumps -=1
else:
jump = False
jumps = 10
#функция
spr.update()
current_level.update()
spr.draw(df)
current_level.draw(df)
pygame.display.flip()
pygame.display.update()
pygame.quit()