gpt4 book ai didi

iOS 6 - 如何在方向改变时运行自定义代码

转载 作者:技术小花猫 更新时间:2023-10-29 10:30:25 24 4
gpt4 key购买 nike

我正在创建一个允许设备处于横向左或横向右方向的游戏,并且玩家可以在暂停时更改方向。当他们这样做时,我需要更改游戏根据方向解释加速度计的方式。

在 iOS 5 中,我使用 willRotateToInterfaceOrientation 来捕获变化并更改我的变量,但在 iOS6 中已弃用。我现有的代码如下所示:

    if(toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)      
rect = screenRect;

else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight){
rect.size = CGSizeMake( screenRect.size.height, screenRect.size.width );
GameEngine *engine = [GameEngine sharedEngine];
if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft){
engine.orientation = -1;
} else {
engine.orientation = 1;
}
}

据我所知,替换是 UIViewController 类中的 viewWillLayoutSubviews 方法。我正在 cocos2d 2.1 中构建这个游戏,并且在演示项目中似乎没有 UIViewController 类,所以我不清楚如何合并它以及代码应该如何显示才能使它工作。

最佳答案

监听设备方向变化:

[[NSNotificationCenter defaultCenter] 
addObserver:self
selector:@selector(deviceOrientationDidChangeNotification:)
name:UIDeviceOrientationDidChangeNotification
object:nil];

收到通知后,从 UIDevice 获取设备方向:

- (void)deviceOrientationDidChangeNotification:(NSNotification*)note
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
switch (orientation)
{
// etc...
}
}

关于iOS 6 - 如何在方向改变时运行自定义代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12681304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com