pygame窗口打开并立即关闭

时间:2019-01-15 02:25:05

标签: pygame

所以我现在有一个文件与我正在编码的文件位于同一文件夹中,并且当代码在pycharm中运行时,如果按向左箭头会打开另一个文件,但是如果我直接使用python从python打开文件它只是打开和关闭的文件位置。这是我的代码:

import pygame
import sys
import random
import subprocess
pygame.init()
GUI = pygame.display.set_mode((800,600))
pygame.display.set_caption("The incredible guessing game")
x = 284
y = 250
width = 68
length =  250
run = True
while run:
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        run =False
if event.type == pygame.KEYDOWN:
 command = "python AhjaiyGame.py"
 subprocess.call(command)

pygame.draw.rect(GUI, (255,210,0), (x,y,length,width))
pygame.display.update()


pygame.quit()

2 个答案:

答案 0 :(得分:1)

简单地说,该程序存在是因为它已完成运行。

Python基于列表,在您发布的代码中,while循环实际上没有做任何事情。

您需要缩进需要循环的代码:

while run:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:
            run =False

        if event.type == pygame.KEYDOWN:
            command = "python AhjaiyGame.py"
            subprocess.call(command)

    pygame.draw.rect(GUI, (255,210,0), (x,y,length,width))
    pygame.display.update()

pygame.quit()

请注意列表。

在此示例中,仅当pygame.quit()变为run并且 while 循环完成时,才会调用False

答案 1 :(得分:0)

import pygame
import sys
import random
import subprocess
pygame.init()
win = pygame.display.set_mode((500,500))
pygame.display.set_caption("The incredible guessing game")

x = 40
y = 30
width = 10
height =  20
vel=0.1
run = True
while run:
 for event in pygame.event.get():
   if event.type == pygame.QUIT:
     run =False
 keys=pygame.key.get_pressed()
 if keys[pygame.K_LEFT]:
      x-=vel
 if keys[pygame.K_RIGHT]:
      x+=vel
 if keys[pygame.K_UP]:
      y-=vel
 if keys[pygame.K_DOWN]:
      y+=vel
 win.fill((0,0,0))         
 pygame.draw.rect(win, (255,0,0), (x,y,width,height))
 pygame.display.update()

pygame.quit()