2015-01-03 3 views
0

일부 버튼이있는 파이 게임으로 게임을 만들고 있는데, 다른 버튼을 누르면 다른 .exe 파일이 열립니다. 이 방법으로 그것을하고있는 Im.Python-Pygame os.system MAIN 파일을 닫는 방법 - 파이 게임 화면

os.system("filename.exe") 

그러나 파이 게임 화면은 배경에 머물러 있지만 사용자가 해당 버튼을 클릭하고 해당 .exe 파일을 열 때 해당 화면을 닫으려고합니다. 나는 이것을 시도했다.

#codes 
... 
... 
if action == "play": 
    os.system("filename.exe") 
    pygame.quit() 
    quit() 

이론적으로는 작동해야하며 .exe 파일을 연 다음 Pygame에서 종료하십시오. 하지만이 작동하지 않습니다 .exe 파일을 succesfuly 열었지만 여전히 배경에 Pygame 화면을 유지하고 오류가 발생합니다. 파이 게임이 작동을 멈 춥니 다.

어떻게 해결할 수 있습니까? 해당 특수 .exe 파일을 열면 파이 게임 화면을 닫으시겠습니까?

답변

0

os.system 프로그램 종료 대기; 다음 라인 pygame.quit은 프로세스가 종료 될 때까지 실행되지 않습니다. 내가 IDLE (F5)로 게임을 실행하면 실제로 작동합니까

import subprocess 

.... 


if action == "play": 
    subprocess.Popen(["filename.exe"]) 
    pygame.quit() 
    quit() 
+0

음 대신 os.system, 당신은 (프로세스 종료를 기다리지 않고 또는 기타 기능) 프로그램의 종료를 기다리지 않습니다 subprocess.Popen을 사용할 수 있습니다 그러나 지금 또 다른 문제가 나타납니다. 내 게임을 두 번 클릭하거나 터미널 (cmd)을 사용하여 실행하려고하면 해당 .exe 파일이 열리지 않습니다. 파이 게임 화면을 닫는 것뿐입니다. 왜 ? –

+0

@grrr 터미널에 오류 메시지가 표시됩니까? 현재 작업 디렉토리에 파일이 포함되지 않았을 수 있습니다. 실행 파일의 전체 경로를 지정하십시오. – falsetru

+0

불행히도 그들은 동일한 디렉토리에 있습니다. 또한 해당 디렉토리에서 터미널을 여는 것입니다. 오류 메시지가 없으며 .exe 파일을 열지 않는 것 외에는 오류가 없습니다. 이유를 이해하려고합니다. –