Objective c 将CCPhysicsPrite添加到CCLayer CoCoCos2D
我正试图根据我们的需要重新组织cocos2d中的HelloWorld项目。 我做的事情-创建了一个类,它是Objective c 将CCPhysicsPrite添加到CCLayer CoCoCos2D,objective-c,cocos2d-iphone,Objective C,Cocos2d Iphone,我正试图根据我们的需要重新组织cocos2d中的HelloWorld项目。 我做的事情-创建了一个类,它是ccphysisprite中固有的,并希望将其添加到CCLayer(HelloWorldLayer)。但是出了点问题。根据调试器,创建了我的实例,但在iOS仿真器中看不到它。需要你的帮助和解释 HelloWorldLayer.h @interface HelloWorldLayer : CCLayer <GKAchievementViewControllerDelegate,
ccphysisprite
中固有的,并希望将其添加到CCLayer
(HelloWorldLayer
)。但是出了点问题。根据调试器,创建了我的实例,但在iOS仿真器中看不到它。需要你的帮助和解释
HelloWorldLayer.h
@interface HelloWorldLayer : CCLayer <GKAchievementViewControllerDelegate, GKLeaderboardViewControllerDelegate>
{
CCTexture2D *spriteTexture_; // weak ref
b2World* world_; // strong ref
GLESDebugDraw *m_debugDraw; // strong ref
}
和创建单元:(头文件和mm文件:)
嗯:
我的错在哪里?任何帮助都将不胜感激该技巧正处于自我设定的位置 调试器显示我的纹理位于inf:inf位置 代码更改使一切正常,如下所示:
[self setB2Body: body_];
self.PTMRatio = PTM_RATIO;
//[self setPosition:CGPointMake(pt.x/PTM_RATIO, pt.y/PTM_RATIO)];
在创建CCPhysicsPrite iheriter的mm文件中,执行以下操作:
[self setB2Body: body_];
self.PTMRatio = PTM_RATIO;
//[self setPosition:CGPointMake(pt.x/PTM_RATIO, pt.y/PTM_RATIO)];
也就是说,您只需要设置身体位置并设置PTMRatio(thanx为@giorashc)。设置精灵纹理是不必要的。技巧是在设置位置为self 调试器显示我的纹理位于inf:inf位置 代码更改使一切正常,如下所示:
[self setB2Body: body_];
self.PTMRatio = PTM_RATIO;
//[self setPosition:CGPointMake(pt.x/PTM_RATIO, pt.y/PTM_RATIO)];
在创建CCPhysicsPrite iheriter的mm文件中,执行以下操作:
[self setB2Body: body_];
self.PTMRatio = PTM_RATIO;
//[self setPosition:CGPointMake(pt.x/PTM_RATIO, pt.y/PTM_RATIO)];
也就是说,您只需要设置身体位置并设置PTMRatio(thanx为@giorashc)。设置精灵纹理不是必需的。您的addNewSpriteAtPosition是否被有意注释?否则将不会向层中添加任何内容?你是从其他地方调用它的吗?是的,我特意注释了它addNewSpriteAtPosition是从
-(void)cctoucheSend:(NSSet*)toucheevent:(UIEvent*)event
{/code>for(UITouch*touch-in-touch){
位置=[[CCDirector sharedDirector]convertToGL:location];
[self-addNewSpriteAtPosition:location];
`
是否确实到达了添加精灵的行?是否成功创建了精灵?是的,我在触摸后调用addNewSpriteAtPosition,调试器在其内部触发等待如果您使用的是CCPhysicsPrite,它已经有一个主体,并且主体位置更新时精灵的位置也会更新。请重试从CCSprite中单击并查看是否有效。您的addNewSpriteAtPosition是故意注释的吗?否则将不会向层中添加任何内容?您是否从其他地方调用它?是的,我故意注释它addNewSpriteAtPosition是从-(void)ccTouchesEnded:(NSSet*)TouchwithEvent:(UIEvent*)event
{
用于(UITouch*触控触摸){
位置=[[CCDirector sharedDirector]convertToGL:location];
<
是否确实到达了添加精灵的行?是否成功创建了精灵?是的,我在触摸后调用addNewSpriteAtPosition,调试器在其内部触发等待如果您使用的是CCPhysicsPrite,它已经有一个主体,并且主体位置更新时精灵的位置也会更新。请重试从CCSprite下载并查看是否有效。