19

私は簡単なことを成し遂げることによってCocos2dを理解しようとしています。この時点で、シーンがあり、そのシーンには背景スプライトとレイヤーがあります。drawLineを使用してレイヤーに描画しようとしています。これが私の現在の試みです。

@implementation MyLayer
-(id)init{
    self = [super init];
    if(self != nil){
        glColor4f(0.8, 1.0, 0.76, 1.0);  
        glLineWidth(2.0f);
        CocosNode *line = drawLine(10.0f, 100.0f,400.0f,27.0f);
        [self addChild:line z:1];
    }
    return self;
}
@end

これにより、「void値が無視されないはずです」というエラーが生成されます。だから明らかに私はそれを間違っていますが、うまくいけばあなたは私の推論を見ることができます。

私もこれを試しました

-(id)init{
    self = [super init];
    if(self != nil){
        glColor4f(0.8, 1.0, 0.76, 1.0);  
        glLineWidth(2.0f);
        drawLine(10.0f, 100.0f,400.0f,27.0f);
    }
    return self;
}

エラーは発生しませんが、機能しません。私は基本的なことを理解していないことに気づきましたが、誰かが私を正しい方向に導くことができますか?

4

3 に答える 3

22

cocos2d drawPrimitivesTest.mから:

- (void)draw {
  // ...

  // draw a simple line
  // The default state is:
  // Line Width: 1
  // color: 255,255,255,255 (white, non-transparent)
  // Anti-Aliased
  glEnable(GL_LINE_SMOOTH);
  ccDrawLine( ccp(0, 0), ccp(s.width, s.height) );

  // ...
}
于 2010-07-20T08:21:46.450 に答える
14

わかりました、興味のある人のためにそれを理解しました。これは、何をすべきかを説明するコメント付きのコードです。

@implementation GameLayer
-(id)init{
    self = [super init];
    if(self != nil){
        // init stuff here      
    }
    return self;
}

// You have to over-ride this method
-(void)draw{
    glColor4f(0.8, 1.0, 0.76, 1.0);  
    glLineWidth(2.0f);
    drawLine(10,100,50,79);
}    
@end

したがって、すべてのフレームで draw メソッドが呼び出されると思います。

于 2009-03-27T22:34:29.027 に答える
8

CCRibbon クラスを使用して、テクスチャで線を描画することもできます。次に例を示します。

まず、 width 、 image 、 length 、 color 、および fade パラメータを使用して CCRibbon を作成します。

ccColor4B myColor = ccc4(255, 255, 255, 150);

CCRibbon *ribbon = [CCRibbon ribbonWithWidth:10 image:@"green.png" length:10.0 color:myColor fade:0.7f];

次に、それを子として追加します。

[self addChild:ribbon z:8];

ここでアプリケーションを実行しても、CCRibbon にポイントをまだ追加していないため、何も表示されません。2 つのポイントを追加しましょう。

[ribbon addPointAt:ccp(10,10) width:10];

[ribbon addPointAt:ccp(15,15) width:10];

個々のポイントを削除することはできませんが、親から CCRibbon を削除することはできます

[self removeChild:ribbon cleanup:YES];

ソースコード: http://www.ccsprite.com/cocos2d/using-ccribbon-example.html

于 2011-11-18T06:43:50.290 に答える