Iphone Box2D刚体在加载另一个视图时扭曲
我有一个非常棒的Box2D世界。我在一个简单的iOS游戏中使用了它,当一个物体与另一个物体碰撞时,用户倾斜设备将物体推到屏幕上的各个点上 当它被深埋在我的应用程序中的测试控制器中时,它工作得很好。我从菜单屏幕上的一个按钮调用它,游戏屏幕上的一个按钮将通过popToViewController返回菜单。但当我看到它有多好时,我意识到我想让游戏成为用户看到的第一个屏幕(在默认加载图像之后)。因此,现在该应用程序加载了整个世界,游戏立即启动,没有任何问题 直到用户点击菜单按钮进入菜单屏幕-另一个视图控制器。菜单控制器加载良好,一切正常。但是,当你点击后退按钮返回游戏/世界时,图像/身体被扭曲了。失真程度取决于菜单控制器被推到导航堆栈上时它们的旋转方式。有时它们被放大,有时被覆盖 加载菜单控制器时,我确实尝试过暂停世界(不调用Step),但这无助于解决图像失真问题 以下是加载菜单控制器的代码:Iphone Box2D刚体在加载另一个视图时扭曲,iphone,ios,box2d,Iphone,Ios,Box2d,我有一个非常棒的Box2D世界。我在一个简单的iOS游戏中使用了它,当一个物体与另一个物体碰撞时,用户倾斜设备将物体推到屏幕上的各个点上 当它被深埋在我的应用程序中的测试控制器中时,它工作得很好。我从菜单屏幕上的一个按钮调用它,游戏屏幕上的一个按钮将通过popToViewController返回菜单。但当我看到它有多好时,我意识到我想让游戏成为用户看到的第一个屏幕(在默认加载图像之后)。因此,现在该应用程序加载了整个世界,游戏立即启动,没有任何问题 直到用户点击菜单按钮进入菜单屏幕-另一个视图控
//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];
图像通过xib输入。一个是按钮,一个是图像视图。两者都添加到动态实体中,动态实体的配置如下:
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;
...
我试图隐藏所有的子视图,但是,正如您可能怀疑的那样,这只会将它们隐藏在视图之外,而不会隐藏在扭曲的力量之下。我还关闭了IB中所有拉伸和调整大小的功能,但没有任何效果(我只是在猜测)
我非常感谢任何人提供的任何帮助或想法。我没有将菜单控制器推到导航控制器上,然后将导航控制器添加到视图中,而是使用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];
导航栏似乎在粉碎图像?我想进一步研究这个问题,因为导航栏可能很方便,但我现在没有时间,这可能意味着我永远也找不到它。+1。很抱歉,我无法帮助回答实际问题:(