
Assertion Failed: (a.x >= 0.0f && a.y >= 0.0f),function SolveVeLocityConstraints,file /SourceCache/PhysicsKit/PhysicsKit-4.6/PhysicsKit/Box2D/Dynamics/Contacts/b2ContactSolver.cpp,line 422.
这是生成错误的代码.我猜它与碰撞边界有关.
UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithreferenceVIEw:self];UIGravityBehavior *gravityBehavior = [[UIGravityBehavior alloc] initWithItems:@[self.rewardbutton]];gravityBehavior.gravityDirection = CGVectorMake(0.0,1.0);gravityBehavior.magnitude = 1.0f;uicollisionbehavior* collisionBehavior = [[uicollisionbehavior alloc] initWithItems:@[self.rewardbutton,self.processingVIEw]];collisionBehavior.collisionDelegate = self;UIEdgeInsets insets = UIEdgeInsetsMake(-700,60,200,60);[collisionBehavior setTranslatesReferenceBoundsIntoBoundaryWithInsets:insets];UIDynamicItemBehavior* propertIEsBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[self.rewardbutton]];float elasticity = arc4random() % 4 * 0.1 + 0.1f;propertIEsBehavior.elasticity = elasticity;[animator addBehavior:propertIEsBehavior];[animator addBehavior:gravityBehavior];[animator addBehavior:collisionBehavior];self.animator = animator;解决方法 对我来说似乎有点麻烦的是为UIDynamicItemBehavior设置一个非常大的密度量.使用1或2的密度仍然给我错误,但似乎没有500.就像我说的那样,它非常Hacky但是,在我非常有限的测试中,似乎可以做到这一点.
UIDynamicItemBehavior *itemBehavior = [[UIDynamicItemBehavior alloc] initWithItems:self.items];[itemBehavior setDensity:500.0f];[self.animator itemBehavior];
感谢KillerRhino的评论和他联系的Box2D主题引导我走下这条道路,将这个项目的质量视为问题.根据UIDynamicItemBehavior documentation,密度及其尺寸决定了质量.希望这种解决方法在其他条件/设置下保持不变.
我认为这个问题只发生在配备新A7芯片(iPhone 5s,iPad Air,iPad Mini Retina)的新设备上.也许64位问题?
总结以上是内存溢出为你收集整理的ios – UIKit Dynamics“SolveVelocityConstraints”崩溃全部内容,希望文章能够帮你解决ios – UIKit Dynamics“SolveVelocityConstraints”崩溃所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)