青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

專職C++

不能停止的腳步

  C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
  163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

常用鏈接

留言簿(28)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

在手機(jī)上調(diào)試,不能所見(jiàn)所得日志,這個(gè)是一個(gè)比較麻煩的事,于是想到了,用多行文本做日志。
下面是日志的代碼。從CCLabelTTF派生。這里主要提供了VLog和Log兩個(gè)日志輸出函數(shù)。
定義如下
void VLog(const char * paramFormat, va_list param_argptr);
void Log(const char * paramFormat, ...);
其中VLog主要應(yīng)用于已經(jīng)有va_list的情況下。

#ifndef _X_LOG_VIEW_H_
#define _X_LOG_VIEW_H_
#include <cocos2d.h>
#include <vector>
#include <cstring>
#include <cstdarg>
USING_NS_CC;
namespace zdh
{
    using std::vector;
    using std::string;
    ///滾動(dòng)文本日志
    /*
        這是一個(gè)模板類(lèi),模板參數(shù)N主要是設(shè)置一行日志緩沖的字節(jié)數(shù)。
    
*/
    template<int N = 128>
    class XLogView : public CCLabelTTF
    {
    public:
        XLogView()
            :m_LogMaxLine(10)
        {
        }
        //一組create,直接從CCLabelTTF復(fù)制過(guò)來(lái)
        static XLogView * create(const char *stringconst char *fontName, float fontSize)
        {
            return XLogView::create(string, fontName, fontSize,    CCSizeZero, kCCTextAlignmentCenter, kCCVerticalTextAlignmentTop);
        }

        static XLogView * create(const char *stringconst char *fontName, float fontSize, const CCSize& dimensions, CCTextAlignment hAlignment)
        {
            return XLogView::create(string, fontName, fontSize, dimensions, hAlignment, kCCVerticalTextAlignmentTop);
        }
        static XLogView * create(const char *stringconst char *fontName, float fontSize, const CCSize& dimensions, CCTextAlignment hAlignment, CCVerticalTextAlignment vAlignment)
        {
            XLogView *pRet = new XLogView();
            if (pRet && pRet->initWithString(string, fontName, fontSize, dimensions, hAlignment, vAlignment))
            {
                pRet->autorelease();
                return pRet;
            }
            CC_SAFE_DELETE(pRet);
            return NULL;
        }
        static XLogView * createWithFontDefinition(const char *string, ccFontDefinition &textDefinition)
        {
            XLogView *pRet = new XLogView();
            if (pRet && pRet->initWithStringAndTextDefinition(string, textDefinition))
            {
                pRet->autorelease();
                return pRet;
            }
            CC_SAFE_DELETE(pRet);
            return NULL;
        }
        //設(shè)置滾動(dòng)日志的最大行數(shù)
        void setLogMaxLine(int param_max_line)
        {
            if (param_max_line < 1)
            {
                m_LogMaxLine = 1;
            }
            else if (param_max_line > 1024)
            {
                m_LogMaxLine = 1024;
            }
            else m_LogMaxLine = param_max_line
        }
        //取滾動(dòng)日志的最大行數(shù)
        int getLogMaxLine() const
        {
            return m_LogMaxLine;
        }
        //清除日志
        void Clear()
        {
            m_LogList.clear();
            setString("");
        }
        //生成日志
        void VLog(const char * paramFormat, va_list param_argptr)
        {
            char sTemp[N];
            vsnprintf(sTemp, sizeof(sTemp), paramFormat, param_argptr);
            //刪除超出行數(shù)的日志
            while ((int)m_LogList.size() > m_LogMaxLine)
            {
                m_LogList.erase(m_LogList.begin());
            }

            m_LogList.push_back(sTemp);
            //生成日志
            m_LogTemp = "";
            size_t iCount = m_LogList.size();
            for (size_t i = 0; i < iCount; i++)
            {
                if (m_LogTemp.length() >0) m_LogTemp += "\n";
                m_LogTemp += m_LogList[i];
            }
            setString(m_LogTemp.c_str());
            //輸出到控制臺(tái)窗口
            #ifdef _MSC_VER
                OutputDebugStringA(sTemp);
            #endif
        }
        void Log(const char * paramFormat, )
        {
            va_list argptr;
            va_start(argptr, paramFormat);
            VLog(sTemp, sizeof(sTemp), paramFormat, argptr);
            va_end(argptr);
        }
    private:
        string m_LogTemp;                //生成日志的臨時(shí)變量
        int m_LogMaxLine;                //日志最大的行數(shù)
        vector<string> m_LogList;       //日志內(nèi)容
    };
}
#endif
在Scene里面,初始化的時(shí)候,調(diào)下面的函數(shù)void HelloWorld::InitLog()
{
    auto visibleSize = CCDirector::sharedDirector()->getVisibleSize();
    auto pLog = THelloWorldLogView::create("", "宋體", 12, CCSizeMake(200,200), kCCTextAlignmentLeft);
    if (pLog != nullptr)
    {
        pLog->setAnchorPoint(ccp(0.5, 1));
        pLog->setPosition(ccp(visibleSize.width - 200, visibleSize.height - 10));
        this->addChild(pLog);
    }
    m_Log = pLog;
}
然后定義m_log 指針和一個(gè)PrintLog方法void HelloWorld::PrintLog(const char * paramFormat, )
{
    if (m_Log != NULL)
    {
        va_list argptr;
        va_start(argptr, paramFormat);
        m_Log->VLog(paramFormat, argptr);
        va_end(argptr);
    }
}
這樣,就可以在代碼中,輸出日志了
posted on 2014-03-16 23:15 冬瓜 閱讀(4064) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 原創(chuàng) 、cocos2dx
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩一区二区福利| 国产精品一二一区| 亚洲电影av| 亚洲第一网站免费视频| 久久影视三级福利片| 亚洲精品视频啊美女在线直播| 亚洲激情二区| 国产精品入口| 亚洲大黄网站| 国产伦精品一区| 欧美国产第二页| 国产精品九九| 欧美激情按摩在线| 国产欧美日韩精品一区| 亚洲国产一成人久久精品| 国产日韩欧美三级| 亚洲毛片在线观看.| 黄色成人免费观看| 亚洲在线视频| 99精品福利视频| 久久久久久久久久久久久女国产乱| 一本色道久久加勒比88综合| 亚洲巨乳在线| 亚洲福利一区| 香蕉乱码成人久久天堂爱免费| 日韩视频一区二区三区| 欧美一区二区大片| 亚洲欧美成人一区二区三区| 毛片av中文字幕一区二区| 欧美一区二区三区免费观看| 欧美日韩精品一区二区| 亚洲国产精品久久久久秋霞蜜臀| 国产一区二区日韩精品欧美精品| 中文在线不卡视频| aaa亚洲精品一二三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久精品国产69国产精品亚洲| 欧美三区在线视频| 亚洲国产日韩欧美在线99| 一区在线观看视频| 欧美一区二区三区久久精品茉莉花| 亚洲视频你懂的| 欧美日韩国产在线播放网站| 欧美激情一区二区三区在线视频观看 | 麻豆精品在线视频| 久久久成人精品| 国产精自产拍久久久久久| 99亚洲视频| 亚洲影院高清在线| 欧美日韩午夜在线| 亚洲精品看片| 亚洲日韩第九十九页| 老司机精品久久| 亚洲第一免费播放区| 久久精品99久久香蕉国产色戒 | 欧美成人免费在线| 激情久久久久| 久久久水蜜桃av免费网站| 久久五月激情| 一区精品久久| 欧美激情视频一区二区三区不卡| 亚洲第一网站免费视频| 一本大道久久a久久精二百| 欧美人妖在线观看| 中文在线资源观看网站视频免费不卡 | 亚洲福利视频网站| 亚洲精品黄网在线观看| 欧美精品网站| 日韩一区二区高清| 欧美在线日韩| 一区二区三区在线不卡| 牛人盗摄一区二区三区视频| 亚洲国产精品传媒在线观看| 99精品国产在热久久下载| 欧美三日本三级三级在线播放| 亚洲一区二区三区激情| 久久久蜜桃精品| 亚洲国产欧美久久| 欧美视频在线免费| 亚洲欧美国产一区二区三区| 久久久久久尹人网香蕉| 99国内精品久久久久久久软件| 国产精品成人一区二区三区夜夜夜| 亚洲视频在线观看三级| 美女免费视频一区| 亚洲视频自拍偷拍| 影音先锋中文字幕一区| 欧美日韩亚洲系列| 欧美一区二区久久久| 亚洲福利免费| 欧美在线电影| 亚洲精品国产精品国自产在线| 国产精品swag| 免费精品视频| 午夜精品福利在线观看| 亚洲国产视频一区二区| 欧美在线视频一区二区| 亚洲日产国产精品| 国产一级一区二区| 久久久久99| 亚洲香蕉网站| 亚洲成人在线免费| 一区二区三区导航| 激情久久久久久久久久久久久久久久| 欧美jizz19hd性欧美| 亚洲欧美日韩综合国产aⅴ| 亚洲国产日韩欧美在线图片| 欧美在线精品免播放器视频| 日韩亚洲成人av在线| 精品动漫3d一区二区三区免费版 | 亚洲国产精品一区二区第一页| 午夜亚洲性色福利视频| 99国产精品| 伊人色综合久久天天五月婷| 国产精品www网站| 欧美日韩国产精品自在自线| 亚洲少妇在线| 性欧美大战久久久久久久久| 在线不卡视频| 国产日韩在线看片| 国产精品毛片a∨一区二区三区| 久久久久久久一区二区| 国产精品夫妻自拍| 亚洲每日更新| 欧美激情麻豆| 嫩草影视亚洲| 久久手机精品视频| 久久精品国产精品 | 久热精品视频在线观看| 欧美一区激情视频在线观看| 亚洲一线二线三线久久久| 亚洲精品四区| 日韩视频免费观看| 亚洲激情在线激情| 亚洲国产欧美在线| 亚洲成人中文| 欧美成熟视频| 亚洲国产精品va| 欧美黄在线观看| 亚洲国产精品一区二区尤物区| 欧美成人激情视频免费观看| 欧美.www| 欧美激情一区二区三级高清视频| 欧美激情bt| 亚洲精品日韩在线观看| 亚洲国产一区二区在线| 亚洲国产天堂久久综合网| 亚洲欧洲一区二区天堂久久| 亚洲精品一区二区三区蜜桃久| 亚洲精品一区二区三区99| 在线视频精品| 性高湖久久久久久久久| 香蕉成人伊视频在线观看| 久久精品国产久精国产思思| 欧美在线91| 噜噜噜91成人网| 欧美伦理影院| 国产日韩欧美电影在线观看| 国内自拍一区| **性色生活片久久毛片| 亚洲国产裸拍裸体视频在线观看乱了中文 | 免费久久99精品国产自| 麻豆成人av| 91久久国产综合久久| 一区二区三区视频在线播放| 亚洲一区二区欧美日韩| 久久久久中文| 欧美激情第1页| 国产精品乱人伦一区二区| 国产视频一区免费看| 亚洲电影免费在线| 一区二区三区精品| 在线成人黄色| 正在播放亚洲一区| 欧美在线3区| 亚洲国产视频直播| 亚洲欧美日韩在线观看a三区| 久久日韩粉嫩一区二区三区| 欧美激情aaaa| 国内精品美女在线观看| 亚洲精品美女在线| 亚洲欧美中文日韩v在线观看| 久久青草久久| 日韩视频亚洲视频| 久久久久久网址| 欧美日韩一区三区四区| 在线观看一区| 亚洲中字黄色| 欧美高清自拍一区| 国产亚洲人成网站在线观看| 国产精品女人久久久久久| 在线观看国产精品淫| 亚洲图片欧美日产| 免播放器亚洲| 99精品欧美一区二区三区综合在线| 亚洲欧美日韩综合一区| 欧美精品在线观看| 狠狠操狠狠色综合网| 亚洲一区激情| 欧美激情一区二区|