@Span4ev

Почему окно в pygame в python стало закрывать предыдущее окно в момент запуска?

как сделать так, чтобы каждый новый запуск приложения pygame закрывал предыдущее окно. Думал, что нет такой возможности и печалился.
Сейчас на фоне событий решил отвлечься, попробовать повторить то, что делал по книге, по памяти. И за всё время впервые столкнулся с закрытием нового окна предыдущего. Без понятия, что я такого написал. Экспериментальным путём выяснил, что на это влияет функция print в начале метода. Не понимаю, как это работает. Стоит её удалить или закомментировать и новое окно уже не закрывает предыдущее.

Если что, сам код:

# главный файл

import pygame as pg
from pygame.sprite import Group
from settings import Settings
from ship import Ship
from alien import Alien
import engine

def start():

	settings = Settings()
	pg.init()
	screen = pg.display.set_mode((settings.SCREEN_WIDTH, settings.SCREEN_HEIGHT))

	ship = Ship(screen, settings)
	alien = Alien(screen, settings) 
	bullets = Group()

	while True:
		engine.check_all_events(screen, settings, ship, bullets)
		engine.update_screen(screen, settings, ship, bullets, alien)
		engine.update_bullets(bullets)

start()


(за код не пинайте. Всё в процессе вспоминания и обучения.)

import pygame as pg
from pygame.sprite import Group

class Alien():

	def __init__(self, screen, settings):

		self.screen 		= screen
		self.screen_rect 		= self.screen
	
		self.image 			= pg.image.load('img/alien.png')
		self.rect 			= self.image.get_rect()
	
		self.start_pos_X		= self.rect.width
		self.start_pos_Y		= self.rect.height

		self.aliens_amount_X	= round(int((settings.SCREEN_WIDTH / self.rect.width) / 2))

	def draw_alien(self):
		print(self.aliens_amount_X)

		for alien in range(self.aliens_amount_X):

			self.rect.x	 = self.start_pos_X
			self.rect.y	 = self.start_pos_Y

			self.screen.blit(self.image, self.rect)


# Вся суть вот в этом print

def draw_alien(self):
		print(self.aliens_amount_X)


Как? Почему? Не важно, что будет печатать, даже если print('no_war')
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы