【发布时间】:2013-07-22 07:09:54
【问题描述】:
我从两个不同的节点调用两个不同的对象 在rock.h中
@interface Rock : CCnode {
int screenWidth;
int screenHeight;
float downWardSpeed;
}
@property (nonatomic, retain) CCSprite *falling_rock;
-(void) makeEnemyGoLower;
-(CGSize)contentSize_ofBugSprite;
-(CGRect)boundingBox_forRock;
end
在摇滚.m
-(CGRect)boundingBox_forRock
{
return falling_rock.boundingBox;
}
-(CGSize)contentSize_ofBugSprite
{
return falling_rock.contentSize;
}
-(void) runEnemyAnimationSequence:(ccTime) delta {
self.position = ccp(self.position.x, self.position.y - downWardSpeed );
}
同样适用于玩家类。现在我使用 ccnode 在主游戏类中调用,但他们在 NSLOG 中的位置不正确。所以我无法检查碰撞。
请帮忙,我犯了什么错误?
【问题讨论】:
-
您能否展示一下您是如何使用 CCNode 在主游戏中添加 Rock 和 player 的?
-
rock = [摇滚节点]; [self addChild:rock z:55];这边
-
好的,对于碰撞检测,您必须使用各自的类对象制作两个 CGRect,并且您必须检查这两个 CGRects 之间的 CGRectIntersectRect。如果,它给出的结果比有碰撞检测,如果它给出false 比没有碰撞检测。
-
是的,我这样做了,但他们没有正确碰撞。所以我记录了他们的 CGrect 位置,发现位置显示错误。
标签: iphone ios cocos2d-iphone