【发布时间】:2012-01-30 09:46:24
【问题描述】:
我正在尝试使用 CCRenderTexture 进行像素完美碰撞检测,如本论坛帖子所述:
http://www.cocos2d-iphone.org/forum/topic/18522/page/2
代码“按原样”工作,我已将其与我的项目集成
但我在讨论其他一些事情时遇到了麻烦: 如果我将 renderTexture 创建为小于屏幕尺寸的任何尺寸,则碰撞检测将无法正常工作 - 当精灵彼此靠近(
我也无法更改渲染纹理的位置。无论我指定的位置如何,它似乎都是从左下角 (0,0) 到指定的宽度和高度。我关注了这个帖子:
http://www.cocos2d-iphone.org/forum/topic/18796
但这并不能解决我的问题。我仍然会遇到上面指定的严重碰撞。此外,我在列表中提到的第一个帖子包含许多用户的 cmets,他们已将纹理大小调整为 10x10,并将它们重新定位到屏幕外。
有没有人有任何示例代码,所以我可以看到我做错了什么?我只是使用样板代码:
CCRenderTexture* _rt = [CCRenderTexture renderTextureWithWidth:winSize.width height:winSize.height];
_rt.position = CGPointMake(winSize.width*0.5f, winSize.height*0.5f);
[[RIGameScene sharedGameScene]addChild:_rt];
_rt.visible = YES;
我用的是 cocos2d-iphone 1.0.1
【问题讨论】:
-
请注意,您关注的纹理存在于
_rt.sprite中。所以任何锚点计算都应该应用于渲染纹理中的精灵,而不是渲染纹理本身(大小为(0,0)) -
我不做任何锚点计算。 _rt.sprite 就是我所说的——位置总是 0,0
-
注意:如果您的精灵都没有旋转,您可以使用我的 CCRenderTexture 教程中描述的更快的像素完美碰撞代码:learn-cocos2d.com/2011/12/…
标签: cocos2d-iphone collision-detection