空想曲線

吉里吉里2/KAG3でのゲーム制作に使える小ネタ置き場。ゲーム用素材も置いてます。

吉里吉里/KAG:パネル当てを作る 第3回  

2012-05-17
2017-06-16
cm0
tb0

「吉里吉里でパネル当てを作る 第3回」です。
前回作ったゲームっぽい何かに追加要素をぶち込んでいきます。



追加要素


得点を表示する


  • アタリが出たら100点
  • ハズレが出たら-50点
  • 1回でアタリが出たら+100点



ラッキータイムを発生させる


ゲーム中、10%前後の確率で発生。
ハズレなしの1回勝負でアタリが出たら300点もらえる。



アンラッキータイムを発生させる


ゲーム中、10%前後の確率で発生。
ハズレだらけの1回勝負、ハズレを引いたら得点が半分になる。



今回は得点表示機能を追加していきます。では、れっつごーヽ(・∀・ )ノ ヒャッハー!



1.得点表示用の画像を準備する


とりあえず画像を準備する。

score.png(640x480px)
ss_20120517_02.jpg

文字以外は透明です。容量を抑えたい方は余白カットでよろしくどうぞ。

この画像の表示には前景レイヤ3を使用します。
前回のスクリプトのままだとレイヤ枚数が足りないので1枚足して下さい。

得点はメッセージレイヤ1に表示しています。
レイヤの設定はメッセージレイヤ0と同じですが
初期設定では visible 属性が false になっているので
必ず visible=true としておきましょう。



2.マクロを追加する


得点表示に使用するマクロを書きます。

▼得点表示用マクロ、メッセージレイヤ1使用
[ macro name="re_score" ]
; カレントレイヤをメッセ1に
[ current layer=message1 ]
; いったん消す
[ er ]
; 得点の表示位置
[ locate x=100 y=13 ]
; 変数 sf.score (累計得点)を表示
[ emb exp="sf.score" ]
; カレントレイヤをメッセ0に戻す
[ current layer=message0 ]
[ endmacro ]

得点は変数 sf.score を使用し、初回起動時のみ sf.score=0 を代入しておきます。
ゲームを終了しても得点は持ち越されます。



3.カットイン用のマクロを修正する


勝敗が決まったときのカットインマクロに[ re_score ]を入れ込みます

[ macro name=result ]
[ freeimage layer=1 ]
[ image storage=%sto layer=2 top=%t left=0 opacity=0 visible=true ]
[ move layer=2 path=(0,0,255) time=100 ]
[ wm ]
[ wait time=300 ]

; ここに追加
[ re_score ]
[ click target=*re ]
[ endmacro ]



4.スクリプトを修正する


スクリプトを修正していきます。

*006
[ er ]
; 前景レイヤの解放
[ freeimage layer=0 ]
[ freeimage layer=1 ]
[ freeimage layer=2 ]

; ベースレイヤに背景画像読み込み
[ image storage=panelbase layer=base ]


----ここから追加
; レイヤ3にスコア用画像読み込み
[ image storage=score layer=3 top=0 left=0 opacity=255 visible=true ]
[ re_score ]

----ここまで

; 前景レイヤ0に300x300の透明画像を読み込み
[ image storage=empty300 layer=0 top=90 left=180 visible=true ]
; パネルの画面更新ルーチン
[ call target=*sub ]



5.得点の加減処理スクリプトを書く


得点の加減処理を追加していきます。

▼ハズレを引いたとき
*gameover
; メッセージレイヤ0だけクリアします
[ er ]
; 得点から50を引きます
[ eval exp="sf.score -= 50" ]

; もしsf.scoreが0以下になったら、sf.score=0にします
[ if exp="sf.score <= 0" ]
[ eval exp="sf.score = 0" ]
[ endif ]


; ここは前回と同じ
[ result sto=cut_lose t=-100 ]
[ s ]


▼当たりを引いたとき
*gameclear
; メッセージレイヤ0だけクリアします
[ er ]
; 得点に100を足します
[ eval exp="sf.score += 100" ]

; 1回目で当たりを引いていれば、さらに100を足します
[ if exp="tf.count == 1" ]
[ eval exp="sf.score += 100" ]
[ endif ]


; 得点が10万点を超えてたらそれ以上にはしない
[ if exp="sf.score >= 100000" ]
[ eval exp="sf.score = 100000" ]
[ endif ]


; ここは前回と同じ
[ result sto=cut_win t=100 ]
[ s ]

画面はこんなカンジ。ちょっと文字が見づらいかも知れない。

ss_20120517_01.jpg

テストプレイしたけど10万点どころか1万点も取れなかった件。

では、今回はこれにて終了。
次回はラッキー&アンラッキータイムを追加していきます。


関連記事

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://kopacurve.blog33.fc2.com/tb.php/227-af45a4a9
この記事にトラックバックする(FC2ブログユーザー)

Author

Recent

Category

Link

Comment

Mailform

Twitter