亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

Cocos2d-x學習入門之HelloWorld程序

2020-01-26 15:23:00
字體:
來源:轉載
供稿:網友

一、前言:

Cocos2d-x是目前非常流行的開源移動2D游戲框架。本文HelloWorld示例程序中使用的Cocos2d-x版本是2.0,主要實現一個簡單的入門程序。

二、HelloWorld程序:

HelloWorld程序是很多編程語言的入門程序,對于程序員來說非常重要。
打開本文項目后可以看到AppDelegate.h/.cpp和HelloWorldScene.h/.cpp四個文件,比一般初學編程看到的HelloWorld要稍顯復雜。

具體代碼如下:

#include "AppDelegate.h" #include "HelloWorldScene.h" USING_NS_CC; AppDelegate::AppDelegate() { } AppDelegate::~AppDelegate()  { } bool AppDelegate::applicationDidFinishLaunching() {   // 初始化CCDirector對象   CCDirector* pDirector = CCDirector::sharedDirector();   // 初始化CCEGLView對象,CCEGLView是顯示窗口,負責窗口級別的功能管理和實現,包括坐標和縮放管理、畫圖工具、按鍵事件   CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();   // 將pEGLView傳遞給pDirector   pDirector->setOpenGLView(pEGLView);   // 打開狀態顯示,包括FPS等   pDirector->setDisplayStats(true);   // 設置FPS,每秒刷新多少幀畫面,默認是1秒60幀,幀數越高畫面越流暢,但也越耗電   pDirector->setAnimationInterval(1.0 / 60);   // 創建一個HelloWorld場景,能夠自動釋放   CCScene *pScene = HelloWorld::scene();   // 運行HelloWorld場景   pDirector->runWithScene(pScene);   return true; } // 來電或者應用進入手機后臺將調用此方法 void AppDelegate::applicationDidEnterBackground() {   // 停止所有動畫   CCDirector::sharedDirector()->stopAnimation();   // 如果使用了SimpleAudioEngine(控制背景音樂等),在此處調用暫停   // SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic(); } // 當應用從后臺恢復至前臺將調用此方法 void AppDelegate::applicationWillEnterForeground() {   // 恢復所有動畫   CCDirector::sharedDirector()->startAnimation();   // 在此處調用SimpleAudioEngine的恢復   // SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic(); } 

AppDelegate對Cocos2d-x引擎進行了初始化,并對進行一些全局性的設置。
但是在這個里面并沒有看到具體的界面實現,因為界面實現都在HelloWorldScene中。

#include "HelloWorldScene.h" USING_NS_CC; CCScene* HelloWorld::scene() {   // 創建一個Scene   CCScene *scene = CCScene::create();      // 創建一個HelloWorld的圖層(HelloWorld繼承自CCLayer)   HelloWorld *layer = HelloWorld::create();    // 將創建的HelloWorld圖層添加至之前創建的場景中   scene->addChild(layer);    // 返回創建的場景   return scene; }  // on "init" you need to initialize your instance bool HelloWorld::init() {   /////////////////////////////   // 1. 調用父類的初始化,如果初始化失敗,則不會繼續往下執行   if ( !CCLayer::init() )   {     // 返回false表示初始化失敗     return false;   }   //獲取可顯示區域大小   CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();   //獲取可顯示區域坐標起點   CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();   /////////////////////////////   // 2. 添加一個可點擊的菜單按鈕,點擊后關閉程序   // 創建一個圖片菜單選項   CCMenuItemImage *pCloseItem = CCMenuItemImage::create(// 調用創建方法                     "CloseNormal.png",// 設置未點擊時菜單圖片                     "CloseSelected.png",// 設置點擊時候菜單圖片                     this,// ?這個參數是什么                     menu_selector(HelloWorld::menuCloseCallback));// 設置菜單點擊時間的回調監聽   // 設置菜單的位置坐標,pCloseItem->getContentSize()用來獲取菜單選項大小   pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2 ,                 origin.y + pCloseItem->getContentSize().height/2));   // 創建菜單(菜單選項需要添加到菜單里才能使用),create函數中可以添加多個菜單選項,以NULL結束添加   CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);   // 設置菜單的坐標(CCPointZero是坐標(0,0))   pMenu->setPosition(CCPointZero);   // 將菜單添加至HelloWorld圖層中,1是菜單在HelloWorld圖層中Z軸位置,數值越大,顯示的層級越高,不易被遮擋   this->addChild(pMenu, 1);   /////////////////////////////   // 3. 添加文字控件和背景圖片   // 創建一個文件控件,create函數中參數分別是“控件需要顯示的文字”,“控件文字字體”,“控件文字字號”   CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24);   // 設置文件控件位置(此公式計算的位置為屏幕中央)   pLabel->setPosition(ccp(origin.x + visibleSize.width/2,               origin.y + visibleSize.height - pLabel->getContentSize().height));   // 將文字控件添加至HelloWorld圖層中   this->addChild(pLabel, 1);   // 創建一個精靈(后續將介紹精靈的具體用處,這里精靈是背景圖片的載體)   CCSprite* pSprite = CCSprite::create("HelloWorld.png");    // 設置背景圖片位置(此公式計算的位置為屏幕中央)   pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));   // 將背景圖片添加至HelloWorld圖層中,并設置Z軸為0,置于菜單和文字之下   this->addChild(pSprite, 0);   // 返回true表示初始化成功   return true; } // 關閉按鈕的回調函數,pSender傳遞的是調用了該函數的對象 void HelloWorld::menuCloseCallback(CCObject* pSender) { // 宏定義,判斷是否是WinRT或者WP8設備 #if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)   // 彈出對話框,提示文字信息   CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert"); #else   // 調用CCDirector的end()函數,結束游戲   CCDirector::sharedDirector()->end(); // 宏定義,判斷是否是IOS設備 #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)   // 直接調用exit(0)結束游戲   exit(0); #endif #endif } 

HelloWorldScene文件是整個HelloWorld工程的核心,從代碼中我們不難發現,在Cocos2d-x的坐標系計算中,默認將屏幕左下角設置為坐標原點,向上方和右方遞增Y軸X軸。而設置控件位置的時候,是以控件的中心為錨點,當然,錨點是可以通過代碼改變的,這里我們需要調用setAnchorPoint()函數。

希望本文所述實例對于大家學習Cocos2d-x能起到一定的幫助作用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品综合久久中文字幕| 久久精品电影一区二区| 亚洲在线视频福利| 日韩欧美在线免费观看| 亚洲国产精品专区久久| 欧美精品在线免费观看| 欧美在线不卡区| 亚洲福利视频专区| 欧美性生交xxxxxdddd| 国产亚洲免费的视频看| 欧美日韩xxx| 日本久久亚洲电影| 精品国产欧美一区二区五十路| 亚洲精品美女久久| 亚洲国产精品推荐| 日韩免费在线视频| 亚洲精品美女在线| 日韩电影大片中文字幕| 欧美精品www在线观看| 狠狠躁夜夜躁人人躁婷婷91| 亚洲精品国精品久久99热一| 欧美激情视频一区二区三区不卡| 国产精品久久电影观看| 成人黄色av播放免费| 国产精品视频白浆免费视频| 亚洲天堂男人的天堂| 亚洲国产成人一区| 在线看国产精品| 亚洲欧洲在线播放| 欧美性高潮在线| 国产精品视频区| 欧美日韩国产成人在线观看| 欧美性在线观看| 国产精品专区一| 97香蕉久久夜色精品国产| …久久精品99久久香蕉国产| 成人激情视频网| 亚洲理论电影网| 亚洲欧美国产日韩天堂区| 亚洲九九九在线观看| 91亚洲精品久久久久久久久久久久| 91久久久久久久| 国产亚洲免费的视频看| 欧美一级视频免费在线观看| 欧美激情欧美狂野欧美精品| 日韩成人在线观看| 欧美日韩福利在线观看| 中文字幕精品www乱入免费视频| 国产精品一区二区三区在线播放| 久久国产精品影视| 欧美主播福利视频| 亚洲精选一区二区| 亚洲大尺度美女在线| 最近2019年手机中文字幕| 国产精品草莓在线免费观看| 久久久久久久久久久成人| 国产香蕉97碰碰久久人人| 成人免费大片黄在线播放| 国产成人免费av| 韩日精品中文字幕| 国产91热爆ts人妖在线| 日本久久久a级免费| 欧美韩国理论所午夜片917电影| 亚洲自拍偷拍福利| www.欧美精品| 成人h片在线播放免费网站| 国产欧美最新羞羞视频在线观看| 欧美乱妇40p| 欧美日韩国产一区中文午夜| 国产一区私人高清影院| 两个人的视频www国产精品| 日韩在线激情视频| 一区二区三区精品99久久| 一二美女精品欧洲| 欧美精品精品精品精品免费| 国产精品日韩在线一区| 欧美—级a级欧美特级ar全黄| 欧美孕妇性xx| 亚洲男人天堂2024| 亚洲精品电影久久久| 亚洲精品日韩欧美| 久久久www成人免费精品| 国产99久久久欧美黑人| 精品国产美女在线| 亚洲色图18p| 黑人狂躁日本妞一区二区三区| 国产亚洲精品激情久久| 亚洲春色另类小说| 俺去啦;欧美日韩| 欧美成人一区在线| 亚洲成人aaa| 久久久最新网址| 亚洲最大成人免费视频| 国产精品91久久久| 亚洲欧美国产一区二区三区| 国产一区二区三区精品久久久| 亚洲国产精品99久久| 国产免费一区二区三区在线观看| 国产日产久久高清欧美一区| 成人免费午夜电影| 91久久国产精品91久久性色| 亚洲久久久久久久久久久| 国产福利精品视频| 亚洲中国色老太| 成人亚洲激情网| 亚洲精品中文字幕av| 亚洲色图欧美制服丝袜另类第一页| 亚洲国模精品一区| 精品国产欧美成人夜夜嗨| 国产日韩欧美另类| 国内精品久久久久久| 免费91在线视频| 97视频在线观看视频免费视频| 日韩va亚洲va欧洲va国产| 欧美性猛交xxxx乱大交蜜桃| 久久久久久九九九| 亚洲精品大尺度| 亚洲精品日韩av| 国产精品国内视频| y97精品国产97久久久久久| 亚洲自拍偷拍视频| 亚洲图片欧洲图片av| 亚洲免费伊人电影在线观看av| 91精品国产九九九久久久亚洲| 久久精品2019中文字幕| 久久免费成人精品视频| 亚洲jizzjizz日本少妇| 国产精品久在线观看| 日韩美女免费线视频| 91在线观看免费高清| 美女av一区二区三区| 一区二区亚洲欧洲国产日韩| 亚洲老头老太hd| 精品一区二区三区四区在线| 国产成人jvid在线播放| 成人av.网址在线网站| 久久久久久久久久国产精品| 欧洲美女免费图片一区| 久久亚洲电影天堂| 国产拍精品一二三| 免费99精品国产自在在线| 欧美专区第一页| 91精品啪在线观看麻豆免费| 亚洲天天在线日亚洲洲精| 日韩在线免费高清视频| 国产亚洲精品综合一区91| 日韩精品小视频| 日韩动漫免费观看电视剧高清| 亚洲成av人片在线观看香蕉| 三级精品视频久久久久| 亚洲aa中文字幕| 欧美亚洲视频一区二区| 中文字幕av一区二区三区谷原希美| 欧美极品在线播放| 欧美xxxx14xxxxx性爽| 日韩电影中文字幕在线观看| 久久人91精品久久久久久不卡| 国产这里只有精品| 欧美在线免费视频| 成人激情视频小说免费下载| 亚洲免费视频观看| 国内揄拍国内精品| 92国产精品久久久久首页| 国产97在线|亚洲|