簡體   English   中英

將iOS更新到7.1后,Sprite-kit游戲崩潰

[英]Sprite-kit game crashes after update iOS to 7.1

我正在和一些朋友一起開發游戲項目。

我們開始使用iOS 7.0的Xcode 5進行制作。

游戲從第一次觸摸開始。 我們的角色從天而降,您可以開始和他一起跳躍。

一切正常,直到我的朋友將項目壓縮並發送給我。 我打開它,並嘗試在模擬器上運行。 就像在朋友的機器上一樣,所有場景都已創建,但是我點擊了。 游戲崩潰。

我收到的錯誤消息是:

斷言失敗:(區域> 1.19209290e-7F),函數ComputeMass,文件/SourceCache/PhysicsKit_Sim/PhysicsKit-6.5.4/PhysicsKit/Box2D/Collision/Shapes/b2PolygonShape.cpp,行395。

因此,我查看了不同之處,並意識到我在iOS 7.1上運行它,將其更改為7.0,一切再次恢復正常。

但是,現在我有一個不能在7.1上玩的游戲。 我才剛剛開始學習sprite-kit,所以...我不知道該怎么做才能更改它。

UITouch *t = [touches anyObject];

int forca = [t locationInView:self.view].y;

[self.player pular:abs( ((forca/40) -8)*15 )];

[self.physicsWorld removeAllJoints];
self.jogoAtivo = TRUE;
self.player.personagem.physicsBody.dynamic = YES; //<-Acuses to be the error
[[self floor] setMovingEnable];

在主線程中, [PKPhysicsBody setDynamic:]:

PhysicsKit`-[PKPhysicsBody setDynamic:]:
0x9533e7e:  pushl  %ebp
0x9533e7f:  movl   %esp, %ebp
0x9533e81:  pushl  %esi
0x9533e82:  subl   $0x14, %esp
0x9533e85:  calll  0x9533e8a                 ; -[PKPhysicsBody setDynamic:] + 12
0x9533e8a:  popl   %ecx
0x9533e8b:  movl   0x8(%ebp), %eax
0x9533e8e:  cmpb   $0x0, 0x10(%ebp)
0x9533e92:  je     0x9533ea9                 ; -[PKPhysicsBody setDynamic:] + 43
0x9533e94:  movl   0x4316e(%ecx), %edx
0x9533e9a:  movl   (%eax,%edx), %edx
0x9533e9d:  movl   0x4316a(%ecx), %esi
0x9533ea3:  movl   %edx, 0x10(%esi,%eax)
0x9533ea7:  jmp    0x9533eb7                 ; -[PKPhysicsBody setDynamic:] + 57
0x9533ea9:  movl   0x4316a(%ecx), %edx
0x9533eaf:  movl   $0x0, 0x10(%edx,%eax)
0x9533eb7:  movl   0x43172(%ecx), %edx
0x9533ebd:  movl   (%eax,%edx), %edx
0x9533ec0:  testl  %edx, %edx
0x9533ec2:  je     0x9533eda                 ; -[PKPhysicsBody setDynamic:] + 92
0x9533ec4:  movl   0x4316a(%ecx), %ecx
0x9533eca:  movl   0x10(%ecx,%eax), %eax
0x9533ece:  movl   %eax, 0x4(%esp)
0x9533ed2:  movl   %edx, (%esp)
0x9533ed5:  calll  0x954a2b4                 ; b2Body::SetType(b2BodyType)
0x9533eda:  addl   $0x14, %esp      // Green Line "Thread 1:signal SIGABRT
0x9533edd:  popl   %esi
0x9533ede:  popl   %ebp
0x9533edf:  ret    

編輯:

因此,通過@ LearnCocos2D關於該區域的注釋,我再次查看了我的代碼。

當我初始化角色時,我使用:

self.personagem.xScale = -self.personagem.xScale;

水平翻轉我的角色精靈。

我將其取下,現在我的代碼可以工作了。

我假設翻轉精靈的負數引起與質量計算的沖突。

我的解決方法:翻轉並使用Photoshop保存另一張圖像。

(area > 1.19209290e-7F), function ComputeMass

這似乎表明多邊形的面積太大。 我的猜測是,發生這種情況的原因是多邊形具有順時針方向的頂點纏繞,甚至可能不是凸的。

驗證所有多邊形實體(即使用自定義CGPath創建的多邊形實體)均使用適當的形狀。 形狀的點必須逆時針纏繞,並且多邊形本身必須是凸形的。

另外,我相信多邊形的最大限制為12點,但是如果超出該限制,則可能會在其他地方斷言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM