PR

レイヤー

Cocos Code IDEとLua言語を使ったサンプルコードと例文集です。

レイヤーはスプライトやラベルなどを複数配置する土台として使います。

サンプルコード

プロジェクトの新規作成で作成されるGameScene.luaのGameScene.create()を下記のサンプルコードと書き換えます。 実行するとレイヤーがシーンに追加されます。レイヤーは透明なので画面には何も表示されません。

サンプルコード

function GameScene.create()
    local scene = GameScene.new()

    local layer = cc.Layer:create()
    scene:addChild(layer)

    return scene
end

ss_layer.png

レイヤーの例文

レイヤーを作成する

レイヤーを作成します。作成したレイヤーはシーンの子として加えることで画面に配置されます。

local layer = cc.Layer:create()

色のついたレイヤーを作成する

色のついたレイヤーを作成するにはLayerの代わりにLayerColorを使います。色はcc.c4b関数を使用して設定します。

local layer = cc.LayerColor:create(cc.c4b(0, 0, 255, 255)) 

グラデーション色のレイヤーを作成する

グラデーション色のレイヤーを作成するにはLayerGradientを使います。第1引数には上部の色、第2引数には下部の色を指定します。上から下に向かって指定した色のグラデーションのレイヤーを作成することができます。

local layer = cc.LayerGradient:create(cc.c4b(0, 255, 0, 255), cc.c4b(0, 0, 255, 255))

なお、グラデーションの方向を変えるには、第3引数にグラデーションの方向を指定します。

local layer = cc.LayerGradient:create(cc.c4b(0, 255, 0, 255), cc.c4b(0, 0, 255, 255), cc.p(1,0)) -- 左から右にグラデーションさせる

ColorLayerでレイヤーのサイズを指定して作成する

ColorLayerは作成時にレイヤーのサイズを指定することができます。

local layer = cc.LayerColor:create(cc.c4b(255, 0, 0, 255), 80, 80) -- 色は赤、サイズ80x80

ColorLayerとLayerGradientでレイヤーのサイズを指定する

ColorLayerとLayerGradientはレイヤーのサイズが指定できます。

layer:changeWidthAndHeight(200,300)

レイヤーに子ノードを配置する

addChildメソッドを使うとノードを子としてレイヤに配置することができます。下記はレイヤー上にスプライトを配置する例です。

local sprite = cc.Sprite:create("image.png")
layer:addChild(sprite)

レイヤーをシーンから削除する

レイヤーを親シーン(あるいは親レイヤー)から削除するにはremoveFromParent()を使います。

layer:removeFromParent()

LayerMultiplexを使う

複数のレイヤーを切り替えるにはLayerMultiplexを使います。下記はLayerMultiplexの使用例です。

local layer1 = cc.LayerColor:create(cc.c4b(255, 0, 0, 255), 100, 100)
local layer2 = cc.LayerColor:create(cc.c4b(0, 255, 0, 255), 100, 100)
layer2:setPosition(100, 100)
local layer = cc.LayerMultiplex:create(layer1, layer2)
scene:addChild(layer)

画面にはlayer1だけが表示されます。layer2に切り替えるには下記を実行します。

layer:switchTo(1)

レイヤーに名前を設定する

レイヤーに名前をつけるにはsetName(名前)を使います。

layer:setName("name")

名前からレイヤーを探す

名前からレイヤーを探すには親シーンなどに対してgetChildByName(名前)を使います。

local layer = scene:getChildByName("name") -- sceneはシーンのインスタンス

レイヤーにタグで番号を付ける

レイヤにタグ番号をつけるにはsetTag(タグ番号)を使います。

layer:setTag(100)

タグ番号からレイヤーを探す

タグ番号からレイヤーを探すには親シーンなどに対してgetChildByTag(タグ番号)を使います。

local layer = scene:getChildByTag(100) -- sceneはシーンのインスタンス
Copyright(C) 2014 - 2015 「Cocos Code IDEとLua言語でゲームを作る」逆引き辞典for Lua All rights Reserved.