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?

More than 3 years have passed since last update.

C#で楽しいゲーム作り講座 シーン編

Posted at

シーン。聞いたことありますよね。Unityで,SIV3Dで。仕組みは単純です。いろいろ構成を変えてお気に入りの、自分だけのシーンを作っちゃいましょう!

シーンとは

タイトル画面、設定画面、ゲーム画面などを切り替えるためのクラス。ただそれだけ。しかし、アルトナイトじゃ大違い!
hyojimanとかinputinは以前の講座でやってますのでそちらを参照くださいまし。

シーンには何が必要?

そんなものはシーンなしで作った奴から移植するだけです。フレーム毎の処理(画面表示とかインプットとか)だけあればいいと思いますね。それとシーンを切り替えるためもクラスが必要ですね。そいつはどうすればいいかというと。

SC

class SC
{
 Scene s;//力技だけどここを切り替えるといい感じにシーン変更ができる。
}

class Scene
{
SC sc;
hyojiman hyo;
public Scene(SC sscc)
{
 sc=sscc;

}

protected void kirikae()
{
sc.s=new Scene(sc);
}
public void frame(inputin i)
{
 hyo.hyoji();
 if(i.ok(Keys.Escape,itype.down))kirikae();
}
}

//~~~~Formの方では
public void ticked(Eventargs e)//タイマーがティックしたときのイベント
{
sc.s.frame(input);//フレーム処理を行う
}

sc.sにシーンを格納し、それを切り替えることによってSceneを転換できます。ただそれだけです。切り替えにエフェクトが欲しいならkirikae();のところで書いたりするのがいいと思います。
ちなみに、もっといい方法があるかもしれませんので僕はこうやってるよって話で。

どんなシーンがある?

タイトル、設定、キャラセレクトなどのインフラに加えてストーリーと言うかお話を表示するためのシーン(ポーズに流用できたり)、ゲーム本体のシーンとそれをつなぐためのシーンがあったりします。
コンストラクタはだいたいSCだけですが、ポーズ画面を出す場合なんかは背景にゲーム画面の静止画を映しておきたいので表示するためのクラスをコンストラクタで渡していたりします。

その他

ステージを生成するとか、背景を生成するとかそういう使いまわすようなメソッドはstaticでつくるか、protectedにして子クラスで使用できるようにしておくと便利ですねぇ。

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?