Я довольно новичок в программировании. Вероятно, я совершил какую-то глупую ошибку, но я не могу ее найти. Любая помощь приветствуется. Вот код:Python завершает работу после запуска приложения
import pygame
import time
import random
pygame.init()
display_width = 800
display_height = 600
gameDisplay = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption('Moving square')
#####################Set the display parameters and title#####################
gameExit = False
gameOver = False
lead_x = display_width/2
lead_y = display_height/2
lead_x_change = 0
lead_y_change = 0
FPS = 15
clock = pygame.time.Clock()
font = pygame.font.SysFont(None, 25)
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
block_size = 10
###########################Setting the variables############################
def message_2_screen(msg, color):#setting a variable for the text
themessage = font.render(msg, True, color)
gameDisplay.blit(themessage, [265, display_height/2])
def gameloop():
gameExit = False
gameOver = False
lead_x = display_width/2
lead_y = display_height/2
lead_x_change = 10
lead_y_change = 0
FPS = 15
block_size = 10
while not gameExit:
while gameOver == True:
gameDisplay.fill(white)
message_2_screen('Press c to continue and q to quit', red)
pygame.display.update()
for event in pygame.event.get():#creating a loop for the quitting and continue
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
gameExit = True
gameOver = False
if event.key == pygame.K_c:
gameloop()
for event in pygame.event.get():#loop for quitting
if event.type is pygame.QUIT:
gameExit = True
if event.type == pygame.KEYDOWN:#setting the control buttons
if event.key == pygame.K_LEFT:
lead_x_change = -block_size
lead_y_change = 0
elif event.key == pygame.K_RIGHT:
lead_x_change = block_size
lead_y_change = 0
elif event.key == pygame.K_UP:
lead_y_change = -block_size
lead_x_change = 0
elif key.event == pygame.K_DOWN:
lead_y_change = block_size
lead_x_change = 0
if lead_x >= display_width or lead_y >=display_height or lead_x < 0 or lead_y < 0:#Setting limits for where the square can move
gameExit = True
lead_x+= lead_x_change
lead_y+= lead_y_change
gameDisplay.fill(white)
pygame.draw.rect(gameDisplay, black, [lead_x, lead_y, block_size, block_size ])#setting the position of the square
pygame.display.update()
clock.tick(FPS)
pygame.quit()
quit()
gameloop()
Я проверил проблему несколько раз и сосредоточился в основном на петлях выхода, но все равно ничего.
Как вы его используете? Это дает вам ошибку? –
Ну, конец вашего 'while not gameExit:' loop вызывает 'quit'. Возможно, вы хотели отменить его, чтобы он был вызван после выхода петли? –
Да, когда я запускаю его, он автоматически закрывается, и я понятия не имею, почему – Potatosauce