popStar2

来源:互联网 发布:全站仪传输软件 编辑:程序博客网 时间:2024/05/20 03:41

A :  倒计时, 手指拖到(植物大战僵尸)   动作回到函数      屏蔽下面层的触摸      让星星层叠出现效果      蔡头:通过bool值来...   使用bool时, 出{}问问,是否需要修改bool值(IsEnd/IsDeadLayer)

B:     程序 = 算法 + 数据结构;  算法 = 逻辑判断 + 控制语句

   例: 消除八字形道具,循环的边界情况      手指拖到效果时:只考虑成立是的bool值, 那不成成立,不考了就错误了

C:  植物大战僵尸, 消除类 等等其实质都是都二维数组操作, 引出2个必有函数,position化index, index化position, 剩下的逻辑判断如 空 select

D: 百度云盘中的视频:打真机步骤  友盟  上传App步骤

E: 内存管理机制:看3.0看Ref类,2.0看object类,里面只有retain  release  autorelease 3个东西来管理内存
F: 触摸机制: 2.0依据设置的优先级的不同。   3.0有2种:一种使用默认的Z值,越在上面越先接受触摸, 二种依据手动设置的优先级 


1: 关于倒计时, 以后碰到, 先定义2个成员变量; 在init中赋值, 在update中操作。 我的: 利用1.0/dt 算出每秒钟多少帧; 但回视dt在不断变化

*******


2: 3.0  看源码:中EventDispatcher类

          根据注释可以知道,前者的触发优先级是按照第二个参数中的node的显示顺序来确定的,而且默认的fixedPriority为0,也就是如果精灵位置靠前,则会优先响应触摸。而后者按照第二个参数的整形变量值的大小来确定的,而且不能为0,值越小那么优先响应触摸。两者除了优先级不一样,移除的过程也有差异。前者会在触摸对象对应的node析构之后系统会帮我们调用移除触摸,但是后者就需要我们手动移除

3: 要屏蔽下面层的触摸; 弄了很久, 终于: 写个大按钮即可。 又高了很久。 加一张透明的大图片, 应为他无法setContenesize设置大小 setScale

4:之所以clean一下。 因为有可能 连接时,链接的目标文件还是 旧得/原来的目标文件(.obj), 所以出现问题也看不出来

5: 静态数组全赋值为0:  

#include <string.h>memset( a, 0, sizeof(a));memset第一个参数是数组名,第二个参数表示赋值为 0, 第三个参数是数组的大小。

  bug:    调整函数  数据已经帅新 如if(stars[i][j] != nullptr)      产生函数:已经执行  

6:出现bug  时解决办法: debug   打断点 A:看变量值的变化,tableView中未给单元格个数赋值情况   B:看变量边界值得变化 ,断点打在出for循环的地方 如: 5中bug

注: 调试出现, 有些变量之非常大, 如int dis 应为之定义,还没有赋值, 等过了赋值语句后 ,如果还是个随机值,就不对了

7:让星星忙忙才出现: 要设个透明度

Cocos2d-x的生成Json文件的方法(续) 如何保存到本地文件中

8: 用到外部变量, 直接传过来 或者 …& z直接引用外部变量

   auto call = CallFuncN::create([_s](Node*){
                        _s->setOpacity(255);
                    });

//--------------------------------------------------------------------------3周

 Friday 
1:   // 添加button 屏蔽按钮
    MenuItemImage *_iamge = MenuItemImage::create();
    _iamge->setContentSize(Size(WI;N_W, WIN_H));  //这个按钮只能用setScale设大小,
2:  用代码写的json文件只是写在内存中了,并没有本地存储。想存储: 将其转化为字符串, 在用文件指针读入即可,很简单

Saturday 
1:  if(UserDefault::getInstance()->getBoolForKey(<#const char *pKey#>, bool defaultValue))
   使用默认值  
//  Get bool value by key, if the key doesn't exist, a default value will return.
  flush();//这里一定要提交写入哦,否则不会记录到xml中,下次启动游戏你就获取不到value了。
2: 在使用bool时; 一定问问, 是否需要修改bool值


//-------------------------------------------------------------------------4周

//****************************************************************5周

1: 申请友盟的开发者账户id key 时,要先登陆,才能添加应用(输入友盟开发者平台)

3:在死局时,光crash不知道原因, 因为onExit()要把消息移除,不然会下次在遍历会出现野指针--- 源码 。在接受通知的一方在接受完通知后需要remove监听。

4:另外重申:对于重复使用的,不要释放, 设为false  WinLayer  LoseLayer

5:进入后台时,保存当前时间, 切入前台 刷新UI

6:  活的系统时间

2: 修改应用下面的名字  

9:  又出现 link command failed ...

 有2种: 重定义  未定义

   编译到 这2个文件  flaostScene   gameScen  。cpp时,出现问题  ----->.o--->上面写的有



不会记录到xml中,下次启动游戏你就获取不到value了。
2: 在使用bool时; 一定问问, 是否需要修改bool值

void GameScene::menuCallback(Ref* pSender)
{
    //屏幕截取
    auto texture = RenderTexture::create(size.width, size.height);
    texture->begin();
    Director::getInstance()->getRunningScene()->visit();    //遍历屏幕所有节点
    texture->end();
     
    if (texture->saveToFile("ScreenShot.png", Image::Format::PNG))
    {    //3.0版本改变处,支持PNG与JPG格式
        log("Success.");
         
        //获取截图
        //方式一
        std::string filePath = FileUtils::getInstance()->getWritablePath() + "ScreenShot.png";
        //方式二
        //auto sprite = Sprite::createWithTexture(texture->getSprite()->getTexture());
         
        auto sprite = Sprite::create(filePath.c_str());
        sprite->setPosition(Vec2(size.width/2, size.height/2));
        //sprite->setFlippedY(true);     //将截图正常显示
        sprite->setScale(0.5f);
        this->addChild(sprite);
    }
}


0 0
原创粉丝点击