似乎无法使我的场景自动水平滚动

时间:2014-08-07 04:48:58

标签: ios objective-c spritebuilder

我正在尝试制作一个由英雄"组成的游戏。无休止地运行,基本上必须避开障碍物,因为他避免了这些障碍,他得到了点,我正在尝试在Sprite Builder中制作这个游戏,我还不太好,并且很难编写它。

基本上这就是我到目前为止所做的:

static const CGFloat scrollSpeed = 0.1;

@implementation level
{
    CCPhysicsNode *_physicsNode;
    CCSprite *_guy;
}

- (void)update:(CCTime)delta 
{
    _guy.position = ccp(_guy.position.x + delta * scrollSpeed, _guy.position.y);
    _physicsNode.position = ccp(_physicsNode.position.x - (scrollSpeed *delta), _physicsNode.position.y);
}

- (void)didLoadFromCCB 
{
    // tell this scene to accept touches
    self.userInteractionEnabled = TRUE;
}

- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event 
{
    //whenever the screen is tapped, this will happen
    [self guyJump];
}

- (void)guyJump {
    //makes the guy jump   
}

但是我在控制台中也收到了这个错误:

CCBReader: Couldn't find member variable: _physicsNode
CCBReader: Couldn't find member variable: _guy

enter image description here

我是如何解决的?

确保在SpriteBuilder中:

  1. level是CCScene根节点的自定义类

  2. 您的CCSprite和CCPhysicsNode被标记为Doc root var,正确的名称是 标记,也不应该是自定义类

  3. 执行文件 - >清理缓存

  4. 按发布按钮

  5. 确保在XCode中

    1. 您有一个名为level

    2. 的自定义类
    3. 在级别中,您宣布了一个ivar

      @implementation level { CCPhysicsNode *_physicsNode; CCSprite *_guy; }

    4. 做一个产品 - >清洁

    5. 运行您的项目

2 个答案:

答案 0 :(得分:0)

尝试替换这些代码行:

@implementation level
{
    CCPhysicsNode *_physicsNode;
    CCSprite *_guy;
}

使用:

@interface level ()
{
    CCPhysicsNode *_physicsNode;
    CCSprite *_guy;
}

@implementation level

答案 1 :(得分:0)

确保在SpriteBuilder中:

  1. level是CCScene根节点的自定义类

  2. 您的CCSprite和CCPhysicsNode被标记为Doc root var,正确的名称是 标记,也不应该是自定义类

  3. 执行文件 - >清理缓存

  4. 按发布按钮

  5. 确保在XCode中

    1. 您有一个名为level

    2. 的自定义类
    3. 在级别中,您宣布了一个ivar

      @implementation level { CCPhysicsNode *_physicsNode; CCSprite *_guy; }

    4. 做一个产品 - >清洁

    5. 运行您的项目