0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GOKI2で広げるゲーム性【ModTypingProcessor入門】タイピングゲームの実装とイベント制御

0
Posted at

ダウンロード

Avalanches&GOKI2は以下サイトのリリースタグ(Avalanches(GOKI2) release version 2.x.y.yという表記)からAssetsにあるAvalanches-GOKI2-Release2.x.y.y.zipのリンクから最新の環境をダウンロードできます。

タイピングゲームモジュール

GOKI2ではModTypingProcessorが簡単なタイピングゲームを実装しています。
まずはモジュールを読み込みます。

; タイピングゲーム機能
@load_module name=ModTypingProcessor

これでタイピングゲームが組み込まれました。

ローマ字対応表の読み込み

まずは、ローマ字対応表が必要なので読み込みます。

; ローマ字対応表の読み込み(必ず必要)
@load_roman_table language=japanese

ローマ字対応表とワードデータの生成方法はこちらを参照してください。
ローマ字対応表は現在、日本語と英語に対応しています。

ワードデータ読み込み

次に、出現するワードデータを読み込みます。

; ワードをファイルから読み込む
@load_typing_words storage=HAMON_Skills.dic
; 何個でも追加で読み込めます
@load_typing_words storage=Vampire_Skils.dic

ここで読み込んだワードがゲーム中にランダムで出現します。
ワードデータを消したい場合は以下のようにします。

; 現在読み込んでいるワードデータをクリアします
@clear_typing_word_list

ファイルからではなくスクリプトで直接ワードを読み込む事も可能です。

; ワードを追加する
@add_typing_word caption="天上不知唯我独損" ruby="ハコワレ"
@add_typing_word caption="雷掌" ruby="イズツシ"
@add_typing_word caption="電光石火" ruby="デンコウセッカ"

特定のワードのみ削除する事も出来ます。

; ワードを削除する
@remove_typing_word caption="電光石火"
@remove_typing_word ruby="イズツシ"

captionかrubyを指定して削除が可能です。

ゲームっぽくするために、出現するワードに対して画像を指定する事ができます。

; タイピングオブジェクトの画像を指定する
@typing_config target_image=TypingTarget000,TypingTarget001

上記のようにすると「TypingTarget000」と「TypingTarget001」がランダムで表示されます。

イベント

タイピングゲーム内でイベントが発生すると指定したシナリオファイルにジャンプします。
イベントはタイピングオブジェクトを入力しきった時と、ゲーム終了時(タイムアウト)に発生します。

@typing_config accept_storage=accept_event.gs accept_target=*accept ent_storage=end_event.gs end_target=*end

xxx_storageにはジャンプ先のシナリオファイル名を指定します。
xxx_targetにはジャンプ先のラベル名を指定します。

タイピングゲーム開始

ここまで来たらタイピングゲームを表示してゲームを開始する事が出来ます。

; タイピングゲームを表示する
@show_typing_base_layer type=vista time=200
; タイピングゲームの表示を待つ
@wait_show_typing_base_layer
; タイピングゲームを開始する
@typing_start

show_typing_baseには表示方法と表示にかける時間(ミリ秒単位)を指定する事が出来ます。
その後、表示を待ってからゲームを開始します。

ゲームを開始するとタイマーが動き始めるのでタイピングオブジェクトを表示します。
表示後、イベント発生まで停止します。

; 画面中央にタイピングオブジェクトをランダムで表示
@show_typing_target position=center
; イベントが発生するまで停止する
@s

イベントが発生するとtyping_configタグで指定したシナリオファイルの指定したラベルにジャンプしてきます。
ここでタイピングオブジェクトが0個になるまで待ちます。

accept_event.gs
*accept|

; タイピングオブジェクトが0個になるまで待つ
@wait_typing target_count=0

; タイピングオブジェクトが全て消化されたので新しいタイピングオブジェクトを表示する
@show_typing_target left=100 top=100
; 画像はランダムではなく直接指定する事も出来ます
@show_typing_target left=200 top=100 storage=TypingTarget001
@show_typing_target left=300 top=100
@show_typing_target left=400 top=100
@show_typing_target left=100 top=200
@show_typing_target left=200 top=200
@show_typing_target left=300 top=200
@show_typing_target left=400 top=200
; イベントが発生するまで停止する
@s

このようにしておけばタイピングオブジェクトがなくなったら新しく表示するループが組めます。

同じようにタイマーが切れた場合、イベントが発生するので終了処理を行います。

end_event.gs
*end|
; ゲーム終了するならこれを使う
@typing_end

; タイピングゲームを非表示にする
@hide_typing_base_layer
; 非表示完了を待つ
@wait_hide_typing_base_layer

; 終了したので、タイトルに戻る
@go_to_start !ask

終了後ModResultモジュールを使えばスコアを表示する事ができます。
スコアは以下のパスにあります。

window.modules.modTypingProcessor.baseLayer.totalScore

スコア表示するためにはModResultに対して以下のようにスコアのパスをエンティティで指定します。

@result layer=0 center_x=300 center_y=300 width=200 height=80 font_size=56 score=&window.modules.modTypingProcessor.baseLayer.totalScore caption_color=0xFF0000 count_up_sound_storage=得点加算

ModResultモジュールについてはこちらを参照してください。

これでタイピングゲームが作れるようになりました。
現在のModTypingProcessorはエフェクトがまったくないのでそのままだと少し寂しいかもしれません。
今後の更新でエフェクト実装しようと思っていますが、しばらくは現状のままだと思います。

関連する記事の一覧

GOKI2の関連する記事一覧

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?