Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将CCPhysicsPrite添加到CCLayer CoCoCos2D_Objective C_Cocos2d Iphone - Fatal编程技术网

Objective c 将CCPhysicsPrite添加到CCLayer CoCoCos2D

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,

我正试图根据我们的需要重新组织cocos2d中的HelloWorld项目。 我做的事情-创建了一个类,它是
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下载并查看是否有效。