Название объясняет это, я пытался реализовать простое обнаружение гравитации и столкновений в Pygame, но моя игра сейчас не работает. В частности, окно игры всплывает и остается черным, и я ничего не могу с этим поделать. Помощь
У меня есть некоторые части кода, которые наиболее важны
import pygame
import time
# SETTING UP THE WINDOW AND INITIATING
display_width = 800
display_height = 600
gameDisplay = pygame.display.set_mode((display_width, display_height))
pygame.init()
# THE PLAYER CLASS
class Player(pygame.sprite.Sprite):
def __init__(self):
super(Player, self).__init__()
self.image = pygame.image.load("idle-2.png").convert_alpha()
self.rect = self.image.get_rect()
self.hp = 10
self.level = 1
self.x = 400
self.y = 60
self.speed = 8
self.frame = 0
player = Player()
# THE STAGE CLASSES
class Stage_Platform(pygame.sprite.Sprite):
def __init__(self):
super(Stage_Platform, self).__init__()
self.image = pygame.image.load("stage-platform.jpg")
self.rect = self.image.get_rect()
stage_platform_left = Stage_Platform()
stage_platform_right = Stage_Platform()
class Stage_Ground(pygame.sprite.Sprite):
def __init__(self):
super(Stage_Ground, self).__init__()
self.image = pygame.image.load("stage-ground.jpg")
self.rect = self.image.get_rect()
stage_ground = Stage_Ground()
# A SPRITE GROUP IS CREATED WITH EVERY SPRITE ON THE SCREEN
all_sprites = pygame.sprite.Group()
all_sprites.add(player, stage_ground, stage_platform_left, stage_platform_right)
# A COLLISION TEST
def Collision(self, group):
if pygame.sprite.spritecollideany(self, group):
self.y += 1
if not pygame.sprite.spritecollideany(self, group):
self.y -= 1
И
def game_loop():
x = (display_width * 0.5)
y = (display_height * 0.735)
Collision(player, all_sprites)
x_change = 0
gameExit = False
while not gameExit:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -player.speed
if event.key == pygame.K_RIGHT:
x_change = player.speed
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change = 0
x += x_change
gameDisplay.fill(light_blue)
gameDisplay.blit(pygame.image.load("health_point.png"), (0, 0))
char(x, y)
if x > display_width - char_width or x < 0:
crash()
pygame.display.update()
clock.tick(15)
# main_menu()
game_loop()
pygame.quit()
quit()
Спасибо за помощь заранее, я просто застрял в ней, и я как бы потерял мотивацию продолжать с ней: (* 1009 *