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で広げるゲーム性【ModPuzzle入門】ぷよぷよの実装とAI・ネットワーク対戦の構築

0
Posted at

ダウンロード

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

ぷよぷよモジュール

GOKI2ではModPuzzleがぷよぷよを実装しています。
まずはモジュールを読み込みます。

; パズル機能
@load_module name=ModPuzzle

これでぷよぷよが組み込まれました。

対戦相手の設定

対戦相手をプレイヤーとするか、AIとするか、ネット対戦とするかを決めます。

プレイヤーの場合特に何もする必要はありません。
デフォルトがプレイヤーVSプレイヤーです。

AIと対戦する場合、どちらか片方、または両方をAIとします。

; 左側のプレイヤーをAI(level3)とする
@puzzle_ai level1=3 enabled1
; 右側のプレイヤーをAI(level3)とする
@puzzle_ai level2=3 enabled2

ネット対戦の場合、サーバー側かクライアント側かをそれぞれ選択します。

; サーバー側のプレイヤーは以下を実行します
@puzzle_inet is_server enabled
; クライアント側のプレイヤーは以下を実行します
@puzzle_inet !is_server enabled

; エラー処理を行うなら以下イベントを登録します
; 初期化失敗時にジャンプする先を指定する
@puzzle_option initialize_failed_label=*init_fail
; 通信エラー発生時にジャンプする先を指定する
@puzzle_option communication_error_label=*comm_err_fail

ぷよぷよの設定

初期化が終わったら、ぷよぷよの設定を行います。

; ぷよが落ちてくる時間をミリ秒単位で指定します
@puzzle_option interval=1000

; 各プレイヤーの領域を設定します
@puzzle_option user1_left=10 user1_top=128 user1_width=380 user1_height=458
@puzzle_option user2_left=410 user2_top=128 user2_width=380 user2_height=458

; イベントを設定します
@puzzle_option user1_gameover=puzzle_gameover1
@puzzle_option user2_gameover=puzzle_gameover1
@puzzle_option gameover_label=*gameover gameclear_label=*gameclear

順番に見ていきます。
interval=1000でぷよが落ちてくる時間をミリ秒単位で指定します。
ここで指定した時間が経過するとぷよが1マス落下します。

user1_left=10 user1_top=128 user1_width=380 user1_height=458でプレイヤー1の領域を指定します。
同じくuser2_left=410 user2_top=128 user2_width=380 user2_height=458でプレイヤー2の領域を指定します。
ここで指定した領域内でゲームが始まります。

user1_gameover=puzzle_gameover1user2_gameover=puzzle_gameover1でゲームオーバー時に表示する背景を指定します。

**gameover_label=gameover gameclear_label=gameclearでゲームオーバー時とクリア時にジャンプする先を指定します。
ゲームオーバーになった時、またはゲームクリア時に、ここで指定した先にジャンプします。

効果音

効果音を指定するにはpuzzle_seタグを使います。

@puzzle_se move=maou_se_sound05
@puzzle_se rotation=maou_se_sound_ignition01
@puzzle_se landing=maou_se_sound_pc01
@puzzle_se ojama=maou_se_sound_finger01
@puzzle_se user1_chain_1st=maou_se_system49
@puzzle_se user1_chain_2nd=maou_se_system49
@puzzle_se user1_chain_3rd=maou_se_system49
@puzzle_se user1_chain_4th=maou_se_system49
@puzzle_se user1_chain_5th=maou_se_system49
@puzzle_se user1_chain_6th=maou_se_system49
@puzzle_se user2_chain_1st=maou_se_system49
@puzzle_se user2_chain_2nd=maou_se_system49
@puzzle_se user2_chain_3rd=maou_se_system49
@puzzle_se user2_chain_4th=maou_se_system49
@puzzle_se user2_chain_5th=maou_se_system49
@puzzle_se user2_chain_6th=maou_se_system49

どれがどの効果音かはマニュアルを参照してください。

画像

ぷよやおじゃまぷよの画像を指定するにはpuzzle_optionタグを使います。

@puzzle_option ojama_icon=ojama_icon1 ojama_bound=0
@puzzle_option ojama_icon=ojama_icon2 ojama_bound=10
@puzzle_option ojama_icon=ojama_icon3 ojama_bound=20

@puzzle_piece storage=piece_red
@puzzle_piece storage=piece_blue
@puzzle_piece storage=piece_green
@puzzle_piece storage=piece_yellow
@puzzle_piece storage=piece_ojama ojama

ojama_icon=ojama_icon1 ojama_bound=0でおじゃまぷよの画像と画像がおじゃまぷよ何個分のおじゃまぷよかを指定します。
サンプルでは0個、10個、20個の3種類のおじゃまぷよの画像を指定しています。
画面上部に溜まっているおじゃまぷよを表す画像として使われます。

storage=piece_redでぷよの画像を指定します。
何個でも追加できます。
ここで指定したぷよがゲーム中にランダムで2個1組で落下してきます。
storage=piece_ojama ojamaではおじゃまぷよの画像を指定しています。
おじゃまぷよ発生時、ここで指定したおじゃまぷよが落下してきます。

初期化

設定が終わったら初期化します。

@puzzle initialize
@wait_puzzle_initialize

puzzle initializeで初期化実行します。
ネット対戦の場合、初期化完了に時間がかかるためwait_puzzle_initializeタグで初期化の完了を待つようにしてください。
ネット対戦をしないのであれば待つ必要はありませんが、特に理由がなければこのタグで初期化の完了を待った方がよいです。

ゲーム開始

ぷよぷよのゲーム画面を表示して、ゲームを開始します。

@puzzle show
@wait_puzzle_show
@puzzle start

puzzle showでぷよぷよのゲーム画面を表示します。
wait_puzzle_showで表示を待ちます。
puzzle startでぷよぷよを開始します。
このタグを実行するとぷよの落下が始まります。

エラーハンドリング

エラー時には指定したシナリオ(指定しなければ現在のシナリオ)のラベルにジャンプしてきます。
ModMessageでもなんでもいいのでエラーが出た旨表示するとよいでしょう。
通信エラー時にはエラーメッセージがwindow.modules.modPuzzle.baseLayer.inet.socket.messageに入っているのでそれをembタグなどで表示するとよいでしょう。

クリア

ゲームオーバー、またはゲームクリア時にはぷよぷよの状態をクリアする事で次のゲームが開始できる状態になります。

@puzzle clear

これでぷよぷよがプレイできるようになります。

テストスクリプト

テストスクリプトが/src/goki2/testcase/ModPuzzleTest.gsにあるので参考にしてください。

関連する記事の一覧

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?