私は簡単なことを成し遂げようとすることで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;
}
これは私にエラーを与えませんが、それも機能しません。私は基本的なことを理解していないことに気づきましたが、誰かが私を正しい方向に導くことができますか?
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) );
// ...
}
わかりました、私は興味のある人のためにそれを理解しました。これは、何をすべきかを説明するコメント付きのコードです。
@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メソッドはすべてのフレームで呼び出されると思います。
CCRibbonクラスを使用して、テクスチャに線を引くこともできます。次に例を示します。
まず、幅、画像、長さ、色、フェードのパラメータを使用して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