cocos2d-Swiftで背景の色を変えたいと思い調べました。
背景色を変える方法
CCNoderColorクラスを使って色付きのレイヤーを作成してaddChildします。
Objective-C 言語
MainScene.mを次のように変更してみてください。
#import "MainScene.h"
@implementation MainScene
// viewDidLoadと同じ立ち上げ時に起動動作
-(void) didLoadFromCCB
{
// バックグランドカラー(ホワイト:1.0f ブラック:0.2f)
CCNodeColor *background =
[CCNodeColor nodeWithColor:[CCColor colorWithRed:1.0f
green:1.0f
blue:1.0f
alpha:1.0f]];
[self addChild:background];
}
@end
nodeWithColor:メソッドの引数にはccc4関数を使い色を指定します。ccc4は第一引数からそれぞれ、R(赤)B(青)G(緑)O(透明度)
の順に設定します。
白 Red 1.0 green 1.0 blue 1.0
黒 Red 0.2 green 0.2 blue 0.2
赤 Red 1.0 green 0.0 blue 0.0
緑 Red 0.0 green 1.0 blue 0.0
緑 Red 0.0 green 0.0 blue 1.0
黄 Red 1.0 green 1.0 blue 0.0
シアン Red 0.0 green 1.0 blue 1.0
マゼンタ Red 1.0 green 0.0 blue 1.0
Swift 言語
MainScene.swiftを次のように変更してみてください。
import Foundation
class MainScene: CCNode {
// onEnter() = viewDidLoad() 同じで起動時に1回動く
override func onEnter() {
// 背景色ホワイトカラー 幅:1136 / 2 高さ: 640 / 2
let background:CCNodeColor = CCNodeColor.nodeWithColor
(CCColor.whiteColor(), width: 568, height: 320) as CCNodeColor
// backgroundを表示
self.addChild(background)
}
}
Cocos2dx 3.x C++言語
Top.ccpを次のように変更してみてください。
Top.h
#ifndef __Label__Top__
#define __Label__Top__
#include "cocos2d.h"
class Top : public cocos2d::Layer
{
public:
virtual bool init();
static cocos2d::Scene* createScene();
CREATE_FUNC(Top);
};
#endif /* defined(__Label__Top__) */
Top.cpp
#include "Top.h"
USING_NS_CC;
Scene* Top::createScene()
{
// 「シーン」は自動解放オブジェクトです
auto scene = Scene::create();
// 「レイアウト」は自動解放オブジェクトです
auto layer = Top::create();
// シーンに子としてレイヤーを追加
scene->addChild(layer);
// シーンを返す
return scene;
}
// 「INIT」初期化
bool Top::init()
{
if ( !Layer::init() )
{
return false;
}
//画面サイズを取得
Size winSize = Director::getInstance()->getVisibleSize();
// バックグランドカラー(ホワイト)
auto background = LayerColor::create(Color4B::WHITE,
winSize.width,
winSize.height);
this->addChild(background);
return true;
}
コメントをお書きください