大佬教程收集整理的这篇文章主要介绍了cocos2d-iphone – 如何在cocos2d中显示CCNode的边框?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
[super draw]; ccDrawColor4F(0,1,1); ccDrawCircle(self.anchorPoinTinPoints,20,8,YES);
这很好.为了额外的信用,我添加了以下内容来显示它的边框:
CGRect bb = self.boundingBox; CGPoint vertices[4] = { [self convertToNodeSpace:ccp(bb.origin.x,bb.origin.y)],[self convertToNodeSpace:ccp(bb.origin.x + bb.size.width,bb.origin.y + bb.size.height)],[self convertToNodeSpace:ccp(bb.origin.x,}; ccDrawPoly(vertices,4,YES);
这也很好,直到我重申一个精灵:
CGPoint oldPosition = [sprite convertToWorldSpace:sprite.position]; [sprite removeFromParentAndCleanup:NO]; [parentSprite addChild:sprite]; sprite.position = [sprite convertToNodeSpace:oldPosition];
小精灵现在处于正确的位置,其定位点应该在哪里,但是边框将在错误的地方.我究竟做错了什么?
当您将节点重新分配给具有不同来源的父节点,同时保持该节点的相同“世界”位置时,其边界框的起始点将更改.
你的错误是,你对待你的小精灵的边框,好像它的坐标在世界空间.
第二,你不需要做转换x空间的舞蹈来画一个精灵的边框.在项目的cocos2d文件夹中打开ccConfig.h文件并进行更改
#define CC_SPRITE_DEBUG_DRAW 0
行到
#define CC_SPRITE_DEBUG_DRAW 1
第三,sprite.position点的坐标是相对于它的父,而不是精灵.当您调用[node convertToWorldSpace:aPoint]时,它会将aPoint视为节点的本地空间.如果要获取节点位置的世界坐标,则应在节点的父节点上调用convertToWorldSpace:[node.parent convertToWorldSpace:node.position].
以上是大佬教程为你收集整理的cocos2d-iphone – 如何在cocos2d中显示CCNode的边框?全部内容,希望文章能够帮你解决cocos2d-iphone – 如何在cocos2d中显示CCNode的边框?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。