SpriteKit游戏 - 在iOS 8.3中进行应用内购买时SKScene冻结

时间:2015-06-11 22:49:50

标签: objective-c sprite-kit in-app-purchase skscene ios8.3

我开发了我的第一个SpriteKit游戏,并在SKScence中实现了应用内购买(不是UIViewController)。在我的SKScene中,有锁定的项目,并且都有zPosition< = + 10。当用户触摸任何锁定的项目时,透明背景(SKSpriteNode名为" bgTransparent")出现在zPosition = + 20的所有项目的顶部,然后是另一个名为"连接MSG"的SKSpriteNode。 (带有消息的图像"连接到Apple Store")出现在透明背景的顶部,zPosition = + 30。一旦购买,我将删除锁,bgTransparent和使用" removeFromParent"

连接MSG



bgTransparent =[SKSpriteNode
                        spriteNodeWithImageNamed:@"Bg_New_Moon_1_2320.png"];
        
        [bgTransparent setScale:.25];
        bgTransparent.size = self.frame.size; 
        bgTransparent.position= CGPointMake(0,0);
        bgTransparent.zPosition= +20;
        bgTransparent.alpha=0.55; 
        bgTransparent.anchorPoint = CGPointZero;
        bgTransparent.name=@"bgTransparent";
        [self addChild:bgTransparent];
        
        connectingMSG =[SKSpriteNode
                        spriteNodeWithImageNamed:@"connectingTo_1.png"];
        
        [connectingMSG setScale:.36];
        connectingMSG.position= CGPointMake(self.size.width/2-60, 80);
        connectingMSG.zPosition= +30; // top of bgTransparent
        connectingMSG.anchorPoint = CGPointZero;
        connectingMSG.name=@"connectingMSG";
        [self addChild:connectingMSG];






[connectingMSG removeFromParent];
[bgTransparent removeFromParent];




应用内购买在iOS 8.2中运行良好。我在iPad上使用iOS 8.2和所有模拟器(iOS8.2)进行了测试。我还使用基础SDK iOS 8.2在Xcode 6.2中开发了这个游戏。提交给APPLE并且游戏得到了REJECTED,因为他们在iOS 8.3上测试了它们并发现了一个错误(没有崩溃)。在iOS 8.3中,用户可以购买并完成In App Purchase,出现购买确认,点击OK,模态警报消失,但不再进一步操作,In App Purchase保持锁定状态。

我将我的iPad升级到iOS 8.3,并且在应用程序购买屏幕出现时,该场景正在冻结。例如:即使我在下面的屏幕上点击取消并且在iOS 8.2中消失时也没有删除了连接MSG,bgtransparent

http://i.stack.imgur.com/f3O3K.png

当我登录并购买时也会发生同样的情况。一旦又一次触摸,它就会冻结,没有任何反应。

在控制台中,它显示删除connectMSG,bgTransparent和locks后我正在使用的所有NSLog消息。所以我知道代码正在运行直到结束并从中移除.Parent代码i。它只是没有删除SpriteNodes和刷新屏幕。

它在iOS 8.2上仍然可以正常工作,但在iOS 8.3上却没有。我如何解决它?它是否冻结,因为我直接从SKScence(不是UIViewController)购买。

请回复。

0 个答案:

没有答案