GScripサンプル: Gプロセスについて(7/7) ゲームへの応用Gプロセスが実際にゲームに、どのように応用できるか簡単なゲームを作ってみました。
「スーパーマリオ(の偽物)」を例にしてみました。多分、多くのゲーム制作者はスーパーマリオをプレーしたことがあるだろうという前提です。
◼️シーン(画面)遷移への応用
GScriptが「なるべく後処理を考えなくて良い」という考えで開発をしています。Gプロセス単位で破棄が可能です。タイトル画面からゲーム画面に遷移する場合はタイトル画面のGプロセスをP_STOP関数で破棄して、P_START関数でゲーム画面のプロセスを生成するだけです。同様にゲームオーバーならばゲーム画面のGプロセスをP_STOPして、タイトル画面のGプロセスをP_STARTで生成します。エンディングもゲーム画面をP_SOTPしてエンディングのGプロセスをP_STARTで生成します。エンディングからタイトルへ戻る場合も同様するだけです
◼️ゲームのポーズ処理
ゲームのポーズ処理もGプロセスのP_PAUSE関数でゲームを一時停止させるだけで実装できます。
◼️ゲーム中の内部Gプロセス(ステージ、プレーヤー、モンスター)の非表示・一時停止処理
ゲームのGプロセスは内部Gプロセスとしてステージ
ステージの内部プロセスとしてプレーヤーとモンスターを分けて生成してあります。
P_GAME(ゲーム画面Gプロセス)
|---> PP_STAGE(ステージ内部Gプロセス)
|---> PP_PLAYER(プレーヤー内部Gプロセス)
|---> PP_MONS(モンスター内部Gプロセス)
ステージ全体を一時停止させると内部Gプロセスのプレやー、モンスター両方一時停止します
プレーヤーのみ一時停止させたり、モンスターのみ一時停止させることも可能です。
サンプルのゲーム中では
・マリオがやられた場合の演出
マリオがクリボーにやられた場合、モンスターのみ一時停止させ、マリオはやられる演出をしています
(マリオがやられたグラフィックに変更して飛び上がって落下していく演出)
・ステージクリア演出
くリボーを踏んづけて1000点取るとステージクリアになりますが、クリア時の演出ではステージを一時停止させてマリオもくリボーも一時停止状態にしてステージクリアの文字を表示させています。
・ゲームオーバー処理
マリオが3回やられるとゲームオーバーです。ステージGプロセスを非表示にしてGAME OVERの文字を表示させています
Gプロセスの生成、破棄、一時停止、非表示などの応用例です。