code-prettify

2014年10月4日 星期六

Cocos2d-x 3.2 - Chapter 2 - How to Add a sprite

Cocos2d-x 3.2 - Chapter 2 - How to Add a sprite

Cocos2d-x 3.2 - Step by Step Cocos2dxSimpleGame Series

一、前言
接續前一篇 Cocos2d-x 3.2 - Chapter 1 - How to Create a New cocos2d-x project 產生的專案,如果還沒有專案的話可以先參考上面的連結。如果之前用過 Cocos2d-x 2.x 版本的話,那你可能會想要參考一下 Cocos2d-x 2.x 到 3.x 筆記

在第一篇我們已經建置過整個方案了,習慣上我會將 libcocos2d, libchipmunk, libAudio 三個專案「卸載專案」,避免之後重新建置這三個專案。只留下 MyGame 這個主要專案。




二、準備工作
在開始前,因為 3.2 的 Layer 預設是黑底,所以我們先把他改為白底。先將 HelloWorldScene.h 裡面,HelloWorld 繼承的 Layer 改為 LayerColor,然後將 HelloWorldScene.cpp 裡面的 init 函式的 if ( !Layer::init() ) 改為 if (LayerColor::initWithColor(Color4B(255, 255, 255, 255)) == false)。

if (LayerColor::initWithColor(Color4B(255, 255, 255, 255)) == false)
{
    return false;
}

將背景改為白色的同時,也可以把原本的  Hello World 文字改為黑字,新增這一行。

label->setColor(Color3B::BLACK);

順便把預設的 COCOS2DX 圖片拿掉,免得擋住之後的畫面。
刪除下列程式碼。

auto sprite = Sprite::create("HelloWorld.png");
sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
this->addChild(sprite, 0);

三、新增 Sprite
在 MyGame 專案中,找到 HelloWorldScene.cpp 中的 init 函式,在 return true 之前加上這一段

Size winSize = Director::getInstance()->getWinSize();
Sprite *player = Sprite::create("Player.png",Rect(0, 0, 27, 40));
player->setPosition(Point(player->getContentSize().width / 2, winSize.height / 2));
this->addChild(player);

最後,我們可以看到一位英雄孤獨的站在白色背景中



下一篇: Cocos2d-x 3.2 - Chapter 3 - How to Move a sprite

參考資料:
Cocos2d-x
http://www.cocos2d-x.org/

Step by Step Cocos2dxSimpleGame Series (Old Version for cocos2d-x v2.x)
http://www.cocos2d-x.org/wiki/Step_by_Step_Cocos2dxSimpleGame_Series

2 則留言:

  1. 最後一段加入英雄,那段文字是加在那裡,還有要加入那個init應該怎樣加!?
    在下新手做到這步都是ERROR 版大可以再詳述多一點嗎!?
    感激不盡!!!!

    回覆刪除
    回覆
    1. 最後一段是加在 HelloWorldScene.cpp 的 HelloWorld::init() 函式中,在 return true; 前加上即可。

      刪除