Персонажи и фоновые изображения не отображаются в окне игры - PullRequest
0 голосов
/ 23 марта 2020

Я только начал создавать игры в python. После различных обучающих программ я создал эту игру из своего собственного опыта. Но когда я запускаю свой код, он просто открывает пустое черное окно, не отображая ни одного персонажа, даже фона. С синтаксисом проблем нет. Я знаю, что что-то не так, но я не могу понять, что это такое. Не могли бы вы помочь мне решить эту проблему?


import pygame
import random
import math
from pygame import mixer




screen = pygame.display.set_mode((800,600))
pygame.init()
mixer.music.load("music1.file.mp3")
mixer.music.play(-1)


background = pygame.image.load("direction.png")
clock = pygame.time.Clock()

carImg = pygame.image.load("car.png")
carX = random.randint(0,800)
carY = random.randint(0,600)
carX_change = 4
carY_change = 40

bulletImg = pygame.image.load("shoot.png")
bulletX = 370
bulletY = 480
bulletX_change = 0
bulletY_change = 0

font = pygame.font.Font("freesansbold.ttf",32)


score_value = 0


over_font = pygame.font.Font("freesansbold.ttf",64)

def show_score():
    score = font.render("Score: " + str(score_value) ,True,(255,255,255))
    screen.blit(score,(10,10))

def game_over():
    over_text = over_font.render("GAME OVER",True,(0,0,0))
    screen.blit(over_text,(200,250))

def bullet(x, y):
    screen.blit(bulletImg,(x,y))

def car(x,y):
    screen.blit(carImg,(x,y))

def collision():
    distance = carX-bulletX
    if distance <= 30:
        return True
    else:
        return False

running = False
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                bulletY_change = 20

            if carY>= 440:
                carY = 2000

            carX += carX_change
            carY += carY_change
            if carX <= 0:
                carX = 0
            elif carX >= 736:
                carX = 0
                car(carX,carY)


            bulletX += bulletX_change
            bulletY += bulletY_change

            collision()
            if collision:
               explosionSound = mixer.Sound("music2.file.mp3")
               explosionSound.play()
               bulletY = 480

            if bulletY<= 0:
                bulletY = 480
                bullet(bulletX, bulletY)


                screen.fill((255,255,255))
                screen.blit(background(0,0))
        show_score()
        game_over()
        car(carX,carY)
        bullet(bulletX, bulletY)
        pygame.display.flip()
        pygame.display.update()
        clock.tick(60)
pygame.quit()
enter code here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...