当前位置:  开发笔记 > 前端 > 正文

如何用Cocos2d-iPhone绘制一条线

如何解决《如何用Cocos2d-iPhone绘制一条线》经验,为你挑选了3个好方法。

我试图通过尝试完成简单的事情来掌握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

这会产生错误"空值不被忽略,因为它应该是".显然我做错了,但希望你能看出我的推理.

我也试过这个

-(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;
}

哪个不给我一个错误,但它也不起作用.我意识到我不理解一些基本的东西,但任何人都可以引导我朝着正确的方向前进吗?



1> Travis..:

来自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) );

  // ...
}


iOS OpenGL 2不支持GL_LINE_SMOOTH.http://www.cocos2d-iphone.org/forum/topic/31940

2> gargantuan..:

好的,我想对任何有兴趣的人都知道了.这是代码,其中的注释解释了该怎么做.

@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方法在每一帧被调用.


仅供参考 - 此示例已过时Cocos2D的v1.0."drawLine"不再存在.使用CCDrawingPrimitives中带有相同参数的"ccDrawLine".

3> huyleit..:

您还可以使用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

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有