碰撞检测的Objective-C(cocos2d的)

I'm使得在Objective-C使用cocos2d的iPhone应用程序,在下面的代码我尝试检测冲突,然后运行一个动画。 (该BOX1是通过触摸移动)

当“[自getChildByTag:D]”和“BOX1”发生冲突和重叠,我得到了“JUMP NOW!” 显示,但我不明白的跳跃本身,而是当BOX1移动从“[自getChildByTag:D]”远跳发生。

我明白,这可能是与事实,该诉讼被称为多次做,但请准确向我解释发生了什么并且请帮我解决!

- (void)update:(ccTime)dt { for (int d = lowestAvailableTag; d <= highestAvailableTag; d++) { if ([self getChildByTag:d].position.y < (box1.position.y+45)&& [self getChildByTag:d].position.x > (box1.position.x-45) && [self getChildByTag:d].position.x < (box1.position.x+45) ) { NSLog(@"JUMP NOW!"); if ([self getChildByTag:d].position.x < 150) { [[self getChildByTag:d] runAction: [CCJumpTo actionWithDuration:1.5 position:ccp(240, 140) height:110 jumps:1]]; } } } }

//阿尔巴

--------------解决方案-------------

你可以添加一些布尔标志来检测,如果你的跳跃发生。 水木清华这样的:

- (void) update:(ccTime)dt
{
if( jumpOccured == false )
{
BOOL needToJump = // your jump condition
if( needToJump == true )
{
// your jump code

jumpOccured = true;
}
}
}

顺便说一句,如果你有很多可能的碰撞,你可以使用的Box2D检测到它们

分类:目标C 时间:2015-03-15 人气:1
本文关键词: 目标C,IOS的cocos2d iphone
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.599 (s). 10 q(s)