用途別リファレンス

文字に動きをつける

Labelオブジェクトで作成した文字を動かしたり,一定時間経過した後消したりするには,新しくファイルを作成し,Labelクラスを継承します.

例1:一定時間で消えるラベル

次の例では,PopupLabel というクラスを作成し,30フレーム経過後に自動的に消える処理を行っています.

PopupLabel

extends Label;//Labelクラスを継承

// ラベルに対する処理を書く
updateEx(30);//30フレーム待機
die();//消える

Main

new PopupLabel{template:"START",x:200,y:200};

例2:プレイヤー等の他のオブジェクトから出現するラベル

次の例では,プレイヤーの位置と同じ位置に出現するPointLabel というクラスを作成しています.

PointLabel

extends Label;//Labelクラスを継承
// ラベルに対する処理を書く
for(i=0;i<30;i++) {//30フレーム上に移動
    y--;
    update();
}
die();//消える

Player

while(true) {
    x=$touches[0].x;y=$touches[0].y;
    if ($touches[0].touched==1) {
        // タッチされると「100」と書かれたPointLabelを生成
        // x,y : プレイヤーと同じ位置に出現させる
        // layer: プレイヤーと同じレイヤーに出現させる※
        new PointLabel{x,y,layer,template:"100"};
    }
    update();
}

Main

new Player{x:200,y:200};

※Labelオブジェクトはデフォルトでは$frontLayerに出現するため,スクロールしたときに出現位置がずれてしまいます.layerを指定することでプレイヤーと同じレイヤー($mainLayer)に出現させることができます.

なお,Labelオブジェクトのtemplateの機能($で始まる部分を展開)を使用しないのであれば,通常のActorクラスのtextに代入することでも同等の動作になります.この場合は上の※に書いたようなlayerの指定も不要です.

参考