cocos2d v3 re-orient screen during App use(cocos2d v3 在应用程序使用期间重新定向屏幕)
问题描述
所以在 cocos2d 中(我相信我在 v2.1 上)我这样做是为了锁定和设置方向:
So in cocos2d (I believe I was on v2.1) I did this to lock and set the orientations:
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
const UIInterfaceOrientation ORIENTATION = delegate.navController.interfaceOrientation;
delegate.navController.
delegate.navController.screenOrientation = ORIENTATION == UIInterfaceOrientationMaskPortrait;
UIViewController *mVC = [[UIViewController alloc] init];
[delegate.navController presentModalViewController:mVC animated:NO];
[delegate.navController dismissModalViewControllerAnimated:NO];
在 AppDelegate 中添加了一些功能.我似乎无法在 iOS7 和 cocos2d v3 中得到相同的结果.
With some functions added to the AppDelegate. I cannot seem to get the same results in iOS7 and cocos2d v3.
我已经挖掘了一下,似乎有适当的功能,但似乎无法设置一个全局变量来设置方向并在特定时间只返回我想要的那个.有人可以指出我正确的道路.我想我错过了一些非常小的东西,因为正确的代码似乎已经存在了.
I have dug through a bit and the proper functions seem to be in place but cannot seem to set up a global variable to set the orientation and return only the one I want at the certain time. Can someone point me down the proper path. I think I'm missing something really small cause the proper code seems to be there already.
这是我的 AppDelegate 的代码
Here's the code for my AppDelegate
@implementation AppDelegate
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self setupCocos2dWithOptions:@{
CCSetupShowDebugStats: @(NO),
}];
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
return YES;
}
-(CCScene *)startScene
{
return [HomeScreen scene];
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
我的代码从不使用 interfaceOrientation 函数.
My code never hits the interfaceOrientation functions.
想法??!?
推荐答案
折腾了几天,终于找到了解决办法:
After a couple days fooling around I figured out a solution:
在 AppDelegate 中我需要这个函数:
in AppDelegate I needed this function:
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (!self.lockedToOrientation) {
if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone ){
return UIInterfaceOrientationMaskPortrait;
}
return UIInterfaceOrientationMaskPortrait;
}
else {
return self.lockedToOrientation;
}
}
在哪里
@property UIInterfaceOrientationMask lockedToOrientation;
希望这对某人有所帮助!
Hope this helps someone!
干杯.
这篇关于cocos2d v3 在应用程序使用期间重新定向屏幕的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:cocos2d v3 在应用程序使用期间重新定向屏幕
基础教程推荐
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01