2016-07-02 1 views
2

기본적으로 Panda3D 1.9.2, Python 2.7.12 및 pygame 1.9.1을 사용하여 실험하고 있습니다. Toontown Rewritten과 Disney의 Toontown Online 자산을 무작위로 만들고 어디에서 얻을 수 있는지 알아보기 위해 시도했습니다. 나는 파이썬 w/Panda3D & 파이 게임에서 코딩하기에 새로운 브랜드이다. 그래서 내가 잘못하고있는 것이 확실하지 않다. http://prntscr.com/bnvvaeOGG 음악은 "게임"의 나머지 부분이로드되지 않아 프로세스에서 응답하지 않는 오류가 발생합니다.

나는 전체 코드를 작성하지 않은, 오히려 온라인 게시 한 사람의 예를 수정 :

from direct.actor.Actor import Actor 
from pandac.PandaModules import * 
from direct.task import Task 
import math 
from math import pi, sin, cos 
from direct.showbase.ShowBase import ShowBase 
from direct.task import Task 
from direct.interval.IntervalGlobal import Sequence 
from pandac.PandaModules import Point3 
from pandac.PandaModules import * 
from panda3d.core import loadPrcFile 

loadPrcFile("config.prc") 

import direct.directbase.DirectStart 
from panda3d.core import CollisionTraverser,CollisionNode 
from panda3d.core import CollisionHandlerQueue,CollisionRay 
from panda3d.core import Filename,AmbientLight,DirectionalLight 
from panda3d.core import PandaNode, NodePath, Camera, TextNode 
from panda3d.core import Vec3,Vec4,BitMask32 
from direct.gui.OnscreenText import OnscreenText 
from direct.actor.Actor import Actor 
from direct.showbase.DirectObject import DirectObject 
import pygame 
pygame.init() 
pygame.mixer.music.load('bgm.ogg') 
pygame.mixer.music.play(-1, 0.0) 
while pygame.mixer.music.get_busy() == True: 
    continue 

cog = Actor ('phase_3.5/models/char/suitA-mod.bam', {'action':'phase_4/models/char/suitA-neutral.bam'}) 
cog.loop('action') 
cog.reparentTo(render) 
cog.find('**/hands').setColor(0.95, 0.75, 0.75, 1.0) 
#SELLBOT cog.find('**/hands').setColor(0.95, 0.75, 0.95, 1.0) 
#CASHBOT cog.find('**/hands').setColor(0.65, 0.95, 0.85, 1.0) 
#LAWBOT cog.find('**/hands').setColor(0.75, 0.75, 0.95, 1.0) 
#BOSSBOT cog.find('**/hands').setColor(0.95, 0.75, 0.75, 1.0) 
cog.setPos(0, 20, 0) 

myTex = loader.loadTexture('phase_3.5/maps/c_blazer.jpg') 
cog.findAllMatches('**/torso').setTexture(myTex, 1) 
myTex2 = loader.loadTexture('phase_3.5/maps/c_leg.jpg') 
cog.findAllMatches('**/legs').setTexture(myTex2, 1) 
myTex3 = loader.loadTexture('phase_3.5/maps/c_sleeve.jpg') 
cog.findAllMatches('**/arms').setTexture(myTex3, 1) 

coghead = loader.loadModel('phase_4/models/char/suitA-heads.bam').find('**/yesman') 
coghead.reparentTo(cog.find('**/joint_head')) 

camera.hide() 
base.oobe() 
base.run() 

이 코드는이 혼란을 생성 : 내 코드입니다. OGG 파일을 구현할 때까지는 제대로 작동하지 않았습니다. 나는 또한 프로그램이 "응답하지 않음"에도 불구하고 음악 파일이 완벽하게 재생된다고 덧붙여 야합니다.

내가 잘못하고있는 것이 확실하지 않습니다. 누군가 제발 나를 도와 줄 수 있니?

+0

나는 내가 잘못 여기에 무슨 일이 일어나고 있는지 볼 생각하지 않습니다. 음악 파일을로드 한 다음 무한정 재생 한 다음 더 이상 음악을 재생하지 않는 경우에만 종료되는 while 루프를 입력합니다. 하지만 당신은 무한히 음악을 연주하고 있습니까? 그래서 나는 완전히 무언가를 놓치고있는 중이거나 그 동안 반복적으로 응답하지 않는 것입니다. –

+0

음악 파일 코드가없는 게임은 정상적으로 실행되지만 음악 코드를 입력하면 무한대로 재생되지만 음악이 재생되는 동안 게임이 응답하지 않습니다. 루프는 훌륭하지만 게임 자체가 작동하지 않습니다. – CoffeetipM8

+0

'while pygame.mixer.music.get_busy() == True : continue'는 무한 루프입니다. 아무것도하지 않는 무한 루프에 빠지기 때문에 게임이 응답하지 않게됩니다. –

답변

0

당신은 while 루프는이 코드를 제거 할 필요가 없습니다

while pygame.mixer.music.get_busy() == True: 
    continue 
관련 문제