cocos2d v3 在应用程序使用期间重新定向屏幕

2024-08-12移动开发问题
2

本文介绍了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 在应用程序使用期间重新定向屏幕的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

硬件音量按钮更改应用程序音量
Hardware Volume buttons change in app volume(硬件音量按钮更改应用程序音量)...
2024-08-12 移动开发问题
10

Cocos2d - 如何检查不同层中对象之间的交集
Cocos2d - How to check for Intersection between objects in different layers(Cocos2d - 如何检查不同层中对象之间的交集)...
2024-08-12 移动开发问题
8

恢复游戏 cocos2d
Resume game cocos2d(恢复游戏 cocos2d)...
2024-08-12 移动开发问题
6

突出显示朗读文本(在 iPhone 的故事书类型应用程序中)
Highlight Read-Along Text (in a storybook type app for iPhone)(突出显示朗读文本(在 iPhone 的故事书类型应用程序中))...
2024-08-12 移动开发问题
9

Cocos2D + 仅禁用 Retina iPad 图形
Cocos2D + Disabling only Retina iPad Graphics(Cocos2D + 仅禁用 Retina iPad 图形)...
2024-08-12 移动开发问题
10

正确的 cocos2d 场景重启?
Proper cocos2d scene restart?(正确的 cocos2d 场景重启?)...
2024-08-12 移动开发问题
7