2011-02-17 4 views
0

저는 훌륭한 Box2D 세상을 가지고 있습니다. 저는 사용자가 특정 몸체가 다른 몸체와 충돌 할 때 화면을 중심으로 몸을 밀어 장치를 기울여서 포인트를 올리는 간단한 iOS 게임에서이 도구를 사용합니다.Box2D 리지드 바디가 다른 뷰를로드 할 때 왜곡 됨

테스트 컨트롤러에서 내 앱에 몇 층 깊이 묻힌 경우 제대로 작동했습니다. 내 메뉴 화면의 버튼에서 호출하고 게임 화면의 버튼은 popToViewController를 통해 메뉴로 돌아갑니다. 그러나 그것이 얼마나 효과적인지 알게되면 게임이 사용자가 보는 첫 번째 화면 (기본 로딩 이미지 이후)이되기를 원했습니다. 이제 앱이 세계를로드하고 게임이 아무런 문제없이 박쥐 오른쪽에 있습니다.

사용자가 메뉴 버튼을 탭하여 다른보기 컨트롤러에 도달 할 때까지. 메뉴 컨트롤러가 잘로드되고 모든 것이 예상대로 작동합니다. 하지만 게임/월드로 돌아가려면 뒤로 버튼을 가볍게 칠 때 이미지/바디가 왜곡됩니다. 왜곡은 메뉴 컨트롤러가 네비게이션 스택 위로 밀렸을 때 어떻게 회전했는지에 따라 다릅니다. 때때로 그들은 확대되고 가끔 smooshed.

메뉴 컨트롤러를로드 할 때 (단계를 호출하지 않음으로써) 세계를 일시 중지하려고했지만 이미지 왜곡 문제로 도움이되지 않았습니다. 여기

메뉴 컨트롤러가로드되는 코드입니다 :

//unhide the navbar for the next screen 
    [self.navigationController setNavigationBarHidden:NO]; 

    MenuViewController *mvc = [[MenuViewController alloc]init]; 

    [self.navigationController pushViewController:mvc animated:YES]; 

    [mvc release]; 

을 그리고 여기에 게임의 뷰 컨트롤러는 애플리케이션 didFinishLaunchingWithOptions에서 응용 프로그램의 위임에 의해로드되는 곳이다 :

B2DViewController *b2dvc = [[B2DViewController alloc]init]; 

    UINavigationController *navcon = [[UINavigationController alloc] init]; 

    [navcon setNavigationBarHidden:YES]; 

    [navcon pushViewController:b2dvc animated:NO]; 
    [window addSubview:navcon.view]; 

    [b2dvc release]; 

    [window makeKeyAndVisible]; 

이미지 올 in a xib. 하나는 버튼이고 하나는 imageView입니다.

b2PolygonShape dynamicBox; 
    dynamicBox.SetAsBox(boxDimensions.x, boxDimensions.y); 

... 

    b2FixtureDef fixtureDef; 
    fixtureDef.shape = &dynamicBox; 
    fixtureDef.density = 3.0f; 
    fixtureDef.friction = 0.3f; 
    fixtureDef.restitution = 0.5f; 

    ... 

당신이 생각 하듯이 내가하지 왜곡의 힘에서, 전용 뷰에서 그들을 숨겨, 모든 파단을 숨기고 있지만, 시도 : 모두 thusly 히 구성되는 동적 몸에 추가됩니다. 나는 IB에서 모든 스트레칭과 크기 조정 작업을 중단했다. (나는 단지 짐작했다.)

누구나 가지고있는 도움이나 아이디어에 감사드립니다.

+0

+1을 사용하는 경우 _thusly_. 미안하지만 나는 실제 질문을 도울 수 없다 :( – deanWombourne

답변

0

메뉴 컨트롤러를 탐색 컨트롤러에 밀어 넣은 다음보기에 탐색 컨트롤러를 추가하는 대신 대신 presentModalViewController : animated를 사용했습니다. 이것은 문제를 해결하지는 못했지만 일단 [self.navigationController setNavigationBarHidden : NO]를 주석 처리했습니다. 문제가 해결되었습니다.

//unhide the navbar for the next screen 
//[self.navigationController setNavigationBarHidden:NO]; 

MenuViewController *mvc = [[MenuViewController alloc]init]; 

[self presentModalViewController:(UIViewController *)mvc animated:YES]; 
[mvc release]; 

NavigationBar가 이미지를 스매싱 한 것처럼 보입니까? 네비게이션 바는 편리한 도구 일 수 있으므로이 부분을 더 자세히 살펴보고 싶지만 지금은 시간이 없기 때문에 아마 그 일에 결코 빠져들지 않을 것입니다.

관련 문제