[英]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.