コマの中身を動かす
Posted 2013.02.07 in 流動指向ゲームエンジン『Fooo』
今度はコマの中身を動かしてみよう。
とはいえフレームデーカーは中身を動かすことができない。
中身を動かせるコマを作るには『ウィンドウデーカー』という特殊なデーカーを使う。
ウィンドウデーカー
ウィンドウデーカーは表示範囲を制限するデーカーだ。
ウィンドウデーカー自体は何も表示しないが、
子デーカーの表示を自己の領域内に制限するという働きをする。
そう、まさしく
Window(窓)のような機能を持っているのである。
ウィンドウデーカーで窓を作り、その中で画像を動かすことで
コマの中身が動いているかのような演出を実現できる…というわけだ。
ウィンドウデーカーを作成するにはCreateWindow命令を使う。
CreateWindow(name="窓"
, x=440, y=0, w=405, h=720);
CreateImage(name="窓/コマ1", image="コマ1.png"
, x=222, y=324, ox="Center", oy="Middle", sx=110%, sy=110%);
ただ単に親子にしているだけのように見えるが、これで表示範囲を制限できる。
実際に組み込んでみよう。
style 普通 { face="MS ゴシック", size=32 }
style 小 { size=24 }
style つぶやき { interval=100, speed=250, effect="Rise" }
method Main()
{
CreateImage(name="背景", image="背景.png"
, x=0, y=0);
CreateWindow(name="窓"
, x=440, y=0, w=405, h=720);
CreateImage(name="窓/コマ1", image="コマ1.png"
, x=222, y=324, ox="Center", oy="Middle", sx=110%, sy=110%);
CreateFrame(name="コマ2", image="コマ2.png"
, x="OutRight", y=65
, outline_shape="Vivide", outline_color=white, outline_thick=8);
CreateFrame(name="コマ3", image="コマ3.png"
, x=407, y=505, ox="Center", oy="Middle", sx=0%, sy=0%
, outline_shape="Vivide", outline_color=black, outline_thick=8);
CreateBalloon(name="台詞1"
, style="普通", text="それにしても...<BR>腹(はら)が減(へ)った"
, x=585, y=65, shape="Dumpling", w=300, h=185, tail=-30);
CreateBalloon(name="コマ3/台詞2"
, style="小", text="<FONT style='つぶやき'>クククク…"
, x=63, y=15, shape="Rock", w=220, h=125, tail=160);
CreateColor(name="幕", color=white, w=1280, h=720, blend="Add");
Enter(to="背景");
Enter(to="窓");
Enter(to="窓/コマ1");
Enter(to="幕");
wait 500;
Move(to="窓/コマ1", time=1000, x=182, step="DecSin");
Opaque(to="幕", time=1000, alpha=0%, step="DecSin");
WaitDecor();
Enter(to="コマ2");
Move(to="コマ2", time=800, x=780, step="Dec3");
WaitDecor();
Enter(to="台詞1", effect="Bound");
WaitDecor();
Enter(to="コマ3");
Zoom(to="コマ3", time=1000, sx=100%, sy=100%, step="AccSig");
wait 600;
Enter(to="コマ3/台詞2", effect="Expand");
WaitDecor();
}
コマの中身が動いているかのようになった!