2012-02-25 6 views
2

iOSのcocos2dゲームで単純な四角形を描画しようとしていますが、単に表示されません。最初は、私の矩形描画コードをメインシーンのinitメソッドに追加しましたが、表示されませんでしたので、私は周りを見回しました。Cocos2dで長方形を描く

私はこれを読んで、私が得たことは、新しいクラスを作り、CCLayerクラスを拡張して、それを私のメインシーンに追加することでした。

これは私のメインのシーンのコードです:

+(CCScene *) scene 
{ 
    // 'scene' is an autorelease object. 
    CCScene *scene = [CCScene node]; 

    // 'layer' is an autorelease object. 
    HelloWorldLayer *layer = [HelloWorldLayer node]; 
    RectLayer *rectLayer = [RectLayer node]; 
    // add layer as a child to scene 
    [scene addChild:rectLayer]; 
    [scene addChild: layer]; 

    // return the scene 
    return scene; 
} 

そして、これが私のRectLayer.mコードで、アプリでそれを開こうとすると

#import "RectLayer.h" 

@implementation RectLayer 

-(id) init { 
    if((self=[super init])) { 
     glEnable(GL_LINE_SMOOTH); 
     glColor4ub(255, 255, 255, 255); 
     glLineWidth(2); 
     CGPoint vertices2[] = { ccp(79,299), ccp(134,299), ccp(134,229), ccp(79,229) }; 
     ccDrawPoly(vertices2, 4, YES); 
    } 
} 
@end 

は、今私はEXC_BAD_ACCESSエラーを取得していますシミュレータ。

私は最近Objective-Cを始めたばかりなので、何が間違っているのかよく分かりません。

ありがとうございました。

答えて

4

方法drawに描画コードを置き:

- (void)draw 
{ 
    glEnable(GL_LINE_SMOOTH); 
    glColor4ub(255, 255, 255, 255); 
    glLineWidth(2); 
    CGPoint vertices2[] = { ccp(79,299), ccp(134,299), ccp(134,229), ccp(79,229) }; 
    ccDrawPoly(vertices2, 4, YES); 
} 
+0

これをRectLayer.mに置くと正しいでしょうか? – Austin

+1

また、メインシーンのコードでは、レイヤーの後ろにrectLayerを追加して、上に表示するようにします。 – Letrstotheprez

+1

はい、これはRectLayerの描画方法です。 @Letrstotheprezのコメントも見てください。 – sch

0

ます。また、メソッドの引き分けにこのコードを置くことができます:

ccDrawSolidRect(するCGPoint起源するCGPoint先、ccColor4F色)。

関連する問題