Мой экран стал черным после того, как я попытался реализовать столкновение и гравитацию в моей игре [pygame] - PullRequest
0 голосов
/ 02 мая 2018

Название объясняет это, я пытался реализовать простое обнаружение гравитации и столкновений в 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 *

...