Когда я запускаю это на Pycharm, он открывается, чем сразу закрывается. Почему в видеоуроке он остается открытым?
import pygame pygame.init() win = pygame.display.set_mode((500, 500)) pygame.display.set_caption(«hello»)
я использую ос windows, python версии 3.7.2 и pygame 1.9.4
Комментарии (4)
Добро пожаловать! Я отформатировал (предложение) ваш вопрос в соответствии с лучшими практиками здесь. Может быть, вы могли бы также включить ссылку на учебник?
Спасибо! вот учебник youtube.com/…
Пожалуйста, скажите мне, как ему удалось держать окно открытым, если вы поняли
Эта программная часть начинается в 01:05 и заканчивается в 2:10.
07.01.2019 14:32
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше.
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -.
Командная строка закрывается после выполнения команды (Решение)
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
Оператор pass в Python — это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции — это способ манипулировать массивами и играть с массивами данных. Благодаря.
Ответы 2
Я не знаю, о каком руководстве вы говорите, но если процесс, создавший окно, завершится, оно закроется.
Например. когда вы создаете окно с помощью оболочки Python, окно будет оставаться открытым, пока оболочка открыта.
Если вы открываете окно через скрипт (файл), вам нужно, чтобы скрипт не завершился. Вы делаете это, создавая так называемый основной цикл, который обычно выглядит так:
import pygame def main(): pygame.init() win = pygame.display.set_mode((500, 500)) pygame.display.set_caption(«hello») clock = pygame.time.Clock() while True: for e in pygame.event.get(): if e.type == pygame.QUIT: return win.fill((30, 30, 30)) pygame.display.update() clock.tick(60) if __name__ == ‘__main__’: main() pygame.quit()
Комментарии (1)
Не могли бы вы изменить мою программу, чтобы она работала? Я знаю, что такое mainloop, я уже использовал его в tkinter, но я не знаю, как он работает в Pygame
07.01.2019 14:43
У меня была та же проблема, что и у вас (и я следил за тем же руководством), и я обнаружил, что если вы заключите все это в цикл while (исключая импортировать pygame, pygame.init () и переменную, которую вы используете для цикла while), он работает довольно хорошо.
import pygame pygame.init() Game = True while Game is True: window1 = pygame.display.set_mode((500, 500)) pygame.display.set_caption(«First Game»)
Я только начал изучать Python, так что, возможно, это не лучший способ сделать это, но я надеюсь, что это в какой-то мере поможет 🙂
18.02.2020 19:06
Другие вопросы по теме
Формы не отображаются в окне
Как отобразить слово на экране в Pygame с помощью ряда функций
Как использовать отбраковку лиц и тест глубины в пёпенгл
Как перемещать несколько одинаковых прямоугольников в списке отдельно?
Плеер мигает, когда идет прямо на экран, python и pygame
Боковой скроллер Pygame не работает должным образом
Воспроизведение многопоточной музыки с Pygame в терминале
Как сделать чтобы консоль Python не закрывалась
Написание разными шрифтами в pygame
Pygame, OpenGL: проецировать 3D-значения RGB на 2D-поверхность
Только некоторые проекты pygame работают после преобразования из .py в .exe
Похожие вопросы
Как я могу прикрепить отладчик к google v8?
Как динамически обновить SetDatasource в Crystal Report
Совместимость счетчиков производительности с .Net Core
Как рассчитываются идентификаторы потоков?
Как открыть приложение Windows на переднем плане из автономного приложения Java
AttributeError: модуль ‘socket’ не имеет атрибута ‘MSG_DONTWAIT’
Rstudio не может подключиться к серверу postgresql с поддержкой SSL на компьютере с Windows
Изменить пароль Пользовательский поставщик учетных данных
Проблема с аутентификацией Google GCP с помощью Dockers
Как я могу использовать Powershel для входа в систему под другим пользователем или запуска сценария от имени другого пользователя, если оболочка не полностью интерактивна?
Правовая информация
Находите ответы на сложные технические вопросы по программированию, с которыми сталкиваются инженеры по всему миру в своей ежедневной практике на сайте RedDeveloper.
Источник: reddeveloper.ru
После компиляции Python файла в exe новый файл открывается и мгновенно закрывается без ошибок. В чем проблема?
Возможно, никакой проблемы нет. Если вы делаете консольное приложение, которое что-то выводит в консоль и завершается, то при его запуске происходит следующее:
- Программа запускается, под неё открывается окно консоли
- Программа выводит то, что должна
- Программа успешно завершается и окно консоли закрывается
Шаги 2-3 происходят очень быстро, поэтому всё что вы видите — это «моргание» окна, которое появилось и тут же исчезло.
Что с этим можно делать? Есть два варианта. Можно сначала запустить консоль, а уже из неё запускать приложение. Альтернативный вариант — в самом приложении перед выходом вставить требование ввода строки («нажмите Enter для завершения»), чтобы пользователь успевал прочитать вывод.
Источник: yandex.ru
Блог
Python file .exe просто появляется через мгновение и сразу после этого закрывается
- Post author: admin
- Запись опубликована: 29 августа, 2022
- Post category: Вопросы по программированию
#python #pygame
#питон #пигмеи
Вопрос:
Я новичок в pygame. Я создал код об игре, похожий на игру с динозаврами, когда Интернет прерывается. Но когда я конвертирую файл .py в .exe, он просто открывается через мгновение и сразу же закрывается, хотя основной скрипт работает нормально. Команда, которую я использовал, была pyinstaller file.py —onefile, который создает исполняемый файл, который продолжает немедленно закрываться, когда я его запускаю. Я проверил, есть ли ошибка, но ее нет (у меня нет никакого изображения.png снаружи)
import pygame import time import random import sys pygame.init() white = (255,255,255) yellow = (255,255,102) black = (0,0,0) red = (235, 64, 52) width = 1000 height = 600 clock = pygame.time.Clock() font_style = pygame.font.SysFont(None, 30) score_font = pygame.font.SysFont(‘monospace’, 35) screen = pygame.display.set_mode((width,height)) def message(msg, color): mesg = font_style.render(msg, True, color) screen.blit(mesg, (round(width/3), round(height/3))) bush_speed = 1 def your_score(score1): value = score_font.render(«Your Score: » str(score1), True, yellow) screen.blit(value, [0, 0]) game_over = False def collision(player_pos,bush_pos): p_x = player_pos[0] p_y = player_pos[1] b_x = bush_pos[0] b_y = bush_pos[1] if (b_x >= p_x and b_x < p_x 50 ) or (b_x == p_x) or (p_x >= b_x and p_x < b_x 50) : if (b_y >= p_y and b_y < p_y 100) or (b_y == p_y) : return True return False def bush(bush_height,bush_pos): pygame.draw.rect(screen,red, [bush_pos[0],bush_pos[1],50,bush_height]) def speed(bush_speed,score1): if score1 < 3: bush_speed = 50 elif score1 < 20: bush_speed = 4 elif score1 < 30: bush_speed = 5 else: bush_speed = 15 def game_loop(): game_close = False player_pos = [200,500] player_jump =[0,0] player_height = 100 player_size = 50 score1 = 0 game_over = False bush_size = 50 bush_height = (round(random.randint(50,100)/10) *10) bush_pos = [width — bush_size, height — bush_height] while not game_over: while game_close: screen.fill(white) message(«You Lost! Press C-Play Again or Q-Quit», red) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_c: game_loop() if event.key == pygame.K_q: game_over = True game_close = False screen.fill(black) for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True if event.type == pygame.KEYDOWN: if player_pos[0] > 0: if event.key == pygame.K_LEFT: player_pos[0] -= 50 if player_pos[0] < width — player_size: if event.key == pygame.K_RIGHT: player_pos[0] =50 if player_pos[1] == height -100: if event.key == pygame.K_SPACE: player_pos[1] -=200 player_jump[0] = 1 if player_pos[1] < height — player_height : player_pos[1] = player_jump[0] bush_pos[0] -= bush_speed*2 clock.tick(200) if bush_pos[0] < 0 : bush_height = (round(random.randint(50,100)/10) *10) bush_pos = [width — bush_size, height — bush_height] score1 =1 speed(bush_speed,score1) if collision(player_pos,bush_pos): game_close = True bush(bush_height,bush_pos) your_score(score1) pygame.draw.rect(screen, red, (player_pos[0],player_pos[1],player_size,player_height)) pygame.display.update() pygame.display.flip() game_loop()
извините, если мой английский плохой, а мои знания кода слишком ограничены
1. в качестве общей рекомендации, в Windows и в других местах, может быть полезно запустить в командной строке, чтобы увидеть, какие ошибки и жалобы выдаются. неправильно работающее приложение с графическим интерфейсом часто умирает, не сообщая вам многого, но его командная строка может. итак, вместо двойного щелчка c:foo.exe в проводнике или запуска по меню, откройте DOS / Powershell, введите c:foo.exe и нажмите return .
Ответ №1:
Здесь часто возникают проблемы со шрифтами, то же самое касается аудиофайлов. Попробуйте заменить:
font_style = pygame.font.SysFont(None, 30)
font_style = pygame.font.SysFont(«Arial», 30)
Arial в значительной степени всегда является «безопасной ставкой» в этих случаях. Также перед преобразованием с помощью pyinstaller измените имя вашего файла на main.py . Также не забудьте обновить pygame до 2.0.0.dev6 или новее.
Теперь это должно сработать.
Источник: programbox.ru