Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用Cocos2d绘制矩形_Ios_Cocos2d Iphone - Fatal编程技术网

Ios 使用Cocos2d绘制矩形

Ios 使用Cocos2d绘制矩形,ios,cocos2d-iphone,Ios,Cocos2d Iphone,所以我试图在我的iOS cocos2d游戏中画一个简单的矩形,但它根本没有出现。起初,我将矩形绘图代码添加到主场景的init方法中,但没有显示,所以我四处查看 我读了这篇文章,从中得到的是创建一个新类,扩展CCLayer类,并将其添加到我的主场景中 这是我的主要场景代码: +(CCScene *) scene { // 'scene' is an autorelease object. CCScene *scene = [CCScene node]; // 'layer

所以我试图在我的iOS cocos2d游戏中画一个简单的矩形,但它根本没有出现。起初,我将矩形绘图代码添加到主场景的init方法中,但没有显示,所以我四处查看

我读了这篇文章,从中得到的是创建一个新类,扩展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
现在,当我试图用iPad模拟器打开它时,遇到了一个EXC_BAD_访问错误

我最近刚开始使用Objective-C,所以我不太确定出了什么问题


谢谢您的帮助。

将绘图代码放入方法
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);
}

将绘图代码放入方法
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);
}

您还可以将此代码放在方法draw中:


ccDrawSolidRect(CGPoint原点、CGPoint终点、ccColor4F color)

您还可以将此代码放在方法draw中:


ccDrawSolidRect(CGPoint原点、CGPoint终点、ccColor4F color)

另外,在主场景的代码中,你需要一层一层地添加rectLayer,使其显示在顶部。是的,这应该是rectLayer的绘制方法。另外,请参见@Letrstotheprez的注释。在主场景的代码中,您还需要在一层接一层地添加rectLayer,使其显示在顶部。是的,这应该是rectLayer的绘制方法。另外,请参见@Letrstotheprez的评论。