zoukankan      html  css  js  c++  java
  • 关于Cocos2d-x程序运行时候提示关闭程序的框框的解决方法

    1.这个情况是资源没有被加载的表现

    如果AppDelegate.cpp里面没有文件索引的语句 FileUtils::getInstance()->addSearchPath("res");,就更加说明是资源找不到的问题

    解决方法

    把资源直接复制在Resources文件的根目录下,不要放在Resources/Res目录下。

    2.可能是实例化对象类的init方法中没有重写父类的init方法

    解决方法

    在实例化对象类的init方法中写

    Node::init()

    Sprite::init()

    3.可能是所要使用的资源文件(图片,声音等等)没有在Resources文件夹目录下

    解决方法

    认真确认资源信息,有可能是资源的文件名写错

    4.可能是还没有设置myHero->setPhysicsBody(),就使用myHero->getPhysicsBody(),就会出现关闭程序的框框

    解决方法

    认真寻找myHero->getPhysicsBody()的句子,在这之前必须有一句myHero->setPhysicsBody()来设置它的物理刚体,一般都是myHero写错成其他名字导致系统找不到这个其他名字的PhysicsBody所引发的错误

    5.可能是已经在.h文件中定义类型的变量,在.cpp中又用auto定义了一遍,这个有时候也造成系统输出:读取位置 0x0000039C 时发生访问冲突等错误

    .h文件中

    Sprite  *confirm;

    .cpp文件中

    auto confirm = Sprite::create();

    解决方法

    把auto关键词去掉

    6.可能是还没定义节点的大小(或者其他变量的某个属性),就先使用

    sprite->getContentSize();

    这种情况下也会出现框框

    7.可能是语句执行顺序有问题,比如我把

    hero_life--;---语句1

    this->runAction(Sequence::create(hurt, moveTo, call1 , call2,NULL));---语句2

    写成

    this->runAction(Sequence::create(hurt, moveTo, call1 , call2,NULL));

    hero_life--;

    结果动作还没执行完突然玩家强制断了动作,导致必须执行hero_life--;没有执行到,漏执行了一次。但是

    gamecontroller->onHurt();  //里面包含了语句1和语句2
    cutLife();  //消除一个代表生命的爱心

    却把cutLife();执行了,就会出现主角还没死但是代表生命的爱心已经全部消失了。

    这时候,再进行碰撞,生命值hero_life终于满足死亡的标准,但是多执行了一次cutLife(),而cutLife()里面放爱心精灵的数组已经空了,这时候再去删除节点和删除数组元素就会出现停止运行的框框。

    其实最好的方法是在GameScene.cpp的init方法中先获得主角的生命值_heroLife,再在碰撞检测方法中这样写

    if (tag1 == HERO_TAG)
    {

      _heroLife--;//先减1,确保不会因为动作执行没完导致没有执行减1的操作
      cutLife();//把爱心去除
      gamecontroller->onHurt();//播放受伤动画
      if (_heroLife < 1)//判定死亡
      {
        this->unscheduleUpdate();
        gcs.clear();
        auto dir = Director::getInstance();
        dir->getEventDispatcher()->removeEventListener(contactListener);
        dir->replaceScene(QuestionScene::createScene(_heroCount, 20));
      }
    }

  • 相关阅读:
    AutoFac
    MEF 基础简介 四
    MEF 基础简介 三
    MEF 基础简介 二
    MEF 基础简介 一
    Ioc原理理解
    .NET里面 abstract class和Interface有什么区别以及用法的展现?
    .NET-ORM框架EF-Code First代码优先
    SQL SERVER PIVOT与用法解释
    SQL Server 中的 NOLOCK 到底是什么意思?
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5700265.html
Copyright © 2011-2022 走看看