關於遊戲的素材都是在網上處處蒐集到的,而後本身再用二流的ps技術修修改改的,因此有可能混在一塊兒有點不搭調(沒有辦法啊,沒有美工Orz。。app
項目已經創建好了,而後咱們須要把咱們下載的素材放到Resources
文件夾。(遊戲完成之後,我會把素材包上傳的。。主要如今沒有找完)函數
在vs中打開建立的項目,打開AppDelagate.cpp文件動畫
在AppDelegate::applicationDidFinishLaunching()中添加代碼ui
if(!glview) { glview = GLViewImpl::create("Battle City"); //窗口標題 glview->setFrameSize(1280, 720); // 在這裏設置建立窗口的尺寸,手機上不用設置,由於手機有固定的屏幕 director->setOpenGLView(glview); }
在這個方法裏面有director->setAnimationInterval(1.0 / 60);
這行代碼是做用是設置遊戲的幀數,是遊戲引擎調用OpenGL
來繪製每一張圖須要用到的時間,其中參數的意思爲時間/畫面數。這裏咱們不作修改
this
director->setDisplayStats(true);
這一行代碼它的做用在你遊戲的左下角顯示一些遊戲的信息,好比說幀數,繪圖等等數據,通常在咱們調試的會將參數設置爲true
,可是完成發佈以後通常設置爲false
,spa
打開HelloWorldScene.cpp文件。調試
在init方法裏面咱們能夠看到code
// add "HelloWorld" splash screen" auto sprite = Sprite::create("HelloWorld.png"); // position the sprite on the center of the screen sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
這個就是建立背景,和設置背景位置座標的代碼了(Cocos2d座標系和OpenGL座標系同樣,原點爲屏幕左下角,x向右,y向上。)遊戲
這裏使用了精靈這一律念,下面是關於cocos2d的精靈的中文wiki圖片
把原來的代碼刪除掉並添加
// 開始背景 auto startBackground = Sprite::create("ui/start_background.png"); // 設置精靈相對於屏幕的位置(絕對座標系) startBackground->setPosition(Vec2(visibleSize.width/2 + origin.x, 0)); // 設置錨點 startBackground->setAnchorPoint(Vec2(0.5, 0)); // 設置精靈的Tag,以後能夠經過標籤找到這個精靈,並對這個精靈進行操做 startBackground->setTag(START_BACKGROUD); // 將背景精靈添加到層中。其中第二個參數0是設置可見優先權,數值越小優先權越小,若是有其餘的精靈的優先權比他大時,他會被遮擋住 this->addChild(startBackground, 0);
並在helloworldscene.h中添加const int START_BACKGROUD = 101;
在HelloWorldScene.h中的helloworld類中聲明兩個公有回調方法,功能是點擊菜單時觸發。
void menuCloseCallback(cocos2d::Ref* pSender); void menuStartCallback(cocos2d::Ref* pSender);
在HelloWorldScene.cpp中添加函數實現方法,close方法就用原來的 (具體功能暫時不寫)
// 開始遊戲,暫時不寫具體內容 void HelloWorld::menuStartCallback(Ref* pSender) { }
如今能夠在init方法中添加菜單了
// 開始菜單, 第一二個參數分別是未點擊和點擊時顯示的圖片 auto startItem = MenuItemImage::create("ui/game_start.png", "ui/game_start.png", CC_CALLBACK_1(HelloWorld::menuStartCallback, this)); startItem->setPosition(Vec2(origin.x + visibleSize.width/4, origin.y + visibleSize.height/3 * 2)); auto closeItem = MenuItemImage::create("ui/game_exit.png", "ui/game_exit.png", CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width/4, origin.y + visibleSize.height/3 * 2 - startItem->getContentSize().height - 20)); // 將菜單項添加到精靈裏面 auto menu = Menu::create(closeItem, startItem, NULL); // 將菜單加入當前層 menu->setPosition(Vec2::ZERO); this->addChild(menu, 1);
運行試一下
好了,遊戲的開始界面大體作好了。。如今看有點單調,之後再添加其餘功能吧。。