2012-08-22 32 views
1

我使用cocos2d 2.0。我得到一個錯誤:property 'world' not found on object of type 'ColoredCircleSprite *'我在繪圖方法中寫錯了什麼?Cocos2d 2.0繪製方法錯誤

-(void) draw 
{ 
    [super draw]; 
    ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position); 
    kmGLPushMatrix(); 
    self.world->DrawDebugData(); 
    kmGLPopMatrix(); 
} 

我試圖做的,因爲圖所示:Cocos2D 2.0 OpenGL errors?

而且我看到了另一種方式做畫法,我必須從self.world->DrawDebugData();行刪除self.,如果我這樣做,我得到另一個錯誤:Use undeclared identifier 'world'

ColoredCircleSprite.h代碼:

#import "cocos2d.h" 

@interface ColoredCircleSprite : CCNode <CCRGBAProtocol, CCBlendProtocol> { 
    float  radius_; 
    GLubyte  opacity_; 
    ccColor3B color_; 

    NSUInteger numberOfSegments; 
    GLfloat *circleVertices_; 

    ccBlendFunc blendFunc_; 
} 

@property (nonatomic,readwrite) float radius; 

/** Opacity: conforms to CCRGBAProtocol protocol */ 
@property (nonatomic,readonly) GLubyte opacity; 
/** Opacity: conforms to CCRGBAProtocol protocol */ 
@property (nonatomic,readonly) ccColor3B color; 
/** BlendFunction. Conforms to CCBlendProtocol protocol */ 
@property (nonatomic,readwrite) ccBlendFunc blendFunc; 

/** creates a Circle with color and radius */ 
+ (id) circleWithColor: (ccColor4B)color radius:(GLfloat)r; 

/** initializes a Circle with color and radius */ 
- (id) initWithColor:(ccColor4B)color radius:(GLfloat)r; 

- (BOOL) containsPoint:(CGPoint)point; 

@end 

我只是複製和粘貼代碼cocos2d-iphone.com論壇。 我真的不知道應該有什麼變量,並且應該是否有任何變量。

謝謝。

+0

什麼是代碼自我?你有哪些類的抽獎方法? – doNotCheckMyBlog

+0

ColoredCircleSprite.m嗯,我只是想運行我的應用程序,我得到了一個錯誤。 – Vladimir

+0

你有沒有世界作爲那個班裏面的iVar? – doNotCheckMyBlog

回答

0
@interface ColoredCircleSprite : CCSprite 
{ 
    b2World   *mWorld; 
} 
@property(nonatomic,assign) b2World   *world; 
@end 


@implementation ColoredCircleSprite 
@synthesize world = mWorld; 

-(void)initBox2D 
{  
    //create world in right place... 
    self.world = new b2World(gravity); 
} 
@end 
+0

initBox2D方法?爲了什麼?這是我的界面:'@interface ColoredCircleSprite:CCNode '。現在在cocos2d中,我們應該使用initBox2D來代替繪製?我在文檔中沒有看到。我是新的cocos2d你能解釋我爲什麼必須使用initBox2D方法嗎? Thx – Vladimir

+1

@ user1454115,不,不,我只是寫這個來顯示初始化。在你的代碼中搜索新的b2World,並將其分配給你的世界指針在coloredCircleSprite中。我使用了initBox2D方法。它是我自己的方法,並從遊戲初始化:) – Guru

+0

什麼是'新的b2World'?看看我的問題,我編輯它。有我的ColoredCircleSprite.h代碼,從他們是「世界指針」?正如我看到有很多指針:) – Vladimir