gpt4 book ai didi

ios - SpriteKit 游戏中的多任务问题

转载 作者:行者123 更新时间:2023-11-28 20:02:16 26 4
gpt4 key购买 nike

我正在使用 Sprite Kit 开发游戏,但我遇到了多任务处理问题。当我按下主页按钮时,在游戏执行期间,我的 SKScene.paused 变为 true,我在 AppDelegate.m 的 applicationDidEnterBackground 方法中对应用程序进行了适当的更改,例如使用 NSUserDefaults 保存内容。无论如何,如果我再次打开我的应用程序,它应该从它停止的地方恢复,但发生的是我的应用程序终止并再次启动。这只发生在我的 iPhone 中(在 iOS 模拟器中它工作正常)。由于我是使用 Sprite Kit 创建游戏和创建应用程序的新手,所以我希望能找到一些线索来了解问题出在哪里......

PS:我认为问题出在应用程序没有正确“暂停”,因为如果我按下主页按钮并立即重新打开应用程序,它就可以正常工作。

这是我的代码:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
if(self.scene == nil) return;

[self.scene saveUserDefaults];
[self.scene pausar];
self.scene.paused = true;
}

在 MyScene.m 中,在 initWithSize 方法中:

-(id)initWithSize:(CGSize)size {    
if (self = [super initWithSize:size]) {
/* Setup your scene here */

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
appDelegate.scene = self;

在 AppDelegate.h 文件中:@property (weak, nonatomic) MyScene * scene;现在,MyScene.m 文件中的 saveUserDefaults 方法:

-(void) saveUserDefaults
{
[userDefaults setBool:true forKey:@"active"];
[userDefaults setInteger:highScore forKey:@"highScore"];
[userDefaults setBool:soundOn forKey:@"soundOn"];
[userDefaults setBool:musicOn forKey:@"musicOn"];
[[NSUserDefaults standardUserDefaults] synchronize];

最佳答案

好吧,如果不查看更多代码,就不可能知道是什么导致了您的问题。

首先,read this question .同样,您应该阅读 UIAppDelegate类,因为在手机上编程时,您必须非常了解它,因为当有人使用您的应用程序时,可能会经常打扰电话等。

很可能,您对如何响应委托(delegate)中的协议(protocol)方法之一有疑问。

关于ios - SpriteKit 游戏中的多任务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23452267/

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