【问题标题】:About terminate called after throwing an instance of 'std::length_error'关于在抛出 'std::length_error' 实例后调用终止
【发布时间】:2014-05-04 15:11:56
【问题描述】:

我现在正在尝试使用 CCSprite 在舞台上展示精灵。

角色类是继承CCSprite的类。

我写的代码如下:

bool HellowWorld::init()方法:

bool HelloWorld::init()
{

int Indexes[9] = {5,11,15,16,17,19,20,21,25};
int x;
int y;
CCArray *filename = new CCArray();



filename->addObject(new CCString("1-1.png"));
filename->addObject(new CCString("2-1.png"));
filename->addObject(new CCString("1-2.png"));
filename->addObject(new CCString("2-3.png"));
filename->addObject(new CCString("2-3.png"));
filename->addObject(new CCString("1-2.png"));
filename->addObject(new CCString("2-3.png"));
filename->addObject(new CCString("1-1.png"));
filename->addObject(new CCString("1-1.png"));




for(int i=0;i<9;i++){

    const char *MyImage = ((CCString*)filename->objectAtIndex(i))->getCString();
    characters *chara = (characters*)CCSprite::create(MyImage);

    x = Indexes[i]%HORIZONTAL_AXIS;
    y = Indexes[i]/HORIZONTAL_AXIS;


    CCPoint point = ccp(MARGIN_WIDTH + PIPE_WIDTH * x,MARGIN_HEIGHT + PIPE_HEIGHT * y);
    chara->setPosition(point);


    this->addChild(chara,1);


}

但是,我收到以下错误消息:

libc++abi.dylib: terminating with uncaught exception of type std::length_error: basic_string::_S_create

我应该如何解决这个问题?

【问题讨论】:

  • 感谢您的评论。如果我不投,错误显示如下。 「无法使用 'cocos2d::CCSprite * 类型的右值初始化 'Characters *' 类型的变量」
  • 那是因为你正在创建一个精灵,而不是一个角色实例

标签: c++ cocos2d-x


【解决方案1】:

这里肯定有一些编码问题。

const char *MyImage = ((CCString*)filename->objectAtIndex(i))->getCString();
characters *chara = (characters*)CCSprite::create(MyImage);

你做了很多演员,这令人困惑。你投到(characters*) 是错误的。

  1. characters 似乎需要继承 CCSprite*,我希望是这样。

  2. 然后您可以执行以下操作:

    characters *chara = characters::create(filename->objectAtIndex(i)->getValue());

  3. 如果您的for 循环,您有一个硬编码的9。您可以将其更改为 filename-&gt;count(),这样它始终会循环到 CCArray 的大小。

这里是 CCSprite 的文档:http://www.cocos2d-x.org/reference/native-cpp/V2.2.3/d8/de9/group__sprite__nodes.html#ga0e84a5bd213dc1556503a4120243a390

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    相关资源
    最近更新 更多