ステージ切り替え処理について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ジュンヤ

ステージ切り替え処理について

#1

投稿記事 by ジュンヤ » 15年前

はじめて質問させていただきます。ジュンヤと申します。
龍神プログラミングの館のプロジェクトをダウンロードさせていただき勉強してます。

タイトル画面を作って、そこからステージ画面に移行するときに、
func_state = 99;
このように指定するだけだと、すぐに画面がパッと変わってしまうんですけど、
ゆっくり画面を変更する方法はないでしょうか?
よろしくお願いします。

Dixq (管理人)

Re:ステージ切り替え処理について

#2

投稿記事 by Dixq (管理人) » 15年前

どれくらい複雑になるかを問わなければどうやっても出来ない仕様はそう無いと思いますよ。

まず、仕様を明確にしましょう。
フェードアウト、フェードインによる画面の切り替わりならすぐ出来るでしょう。
切り替わりのあるタイミングでは、両方の場面が同時に描画されており、ブレンドする形で切り替わりエフェクトを作るなら制御部を一部改造する必要がありそうです。

ジュンヤ

Re:ステージ切り替え処理について

#3

投稿記事 by ジュンヤ » 15年前

さっそく返信ありがとうございます。
タイトル画面で、フェードアウトさせてから、ステージ画面に移行し、
その後フェードインさせるというやりかたでうまくいきました。
切り替わるタイミングに、両方同じ画面にしておくのがポイントだったんですね。

そこでブレンドする形で切り替わりエフェクトというのもやってみたいのですが、
それも似たような方法で、できるのでしょうか?

kazuoni

Re:ステージ切り替え処理について

#4

投稿記事 by kazuoni » 15年前

> ブレンドする形で切り替わりエフェクト

次の画面にする前に、現在の画像をメモリに読み込み、
キャプチャ画像、次画面の順に描写します。
あとは、その二つを徐々にブレンドすれば簡単にできそうです。

ジュンヤ

Re:ステージ切り替え処理について

#5

投稿記事 by ジュンヤ » 15年前

画面をキャプチャした後に、画面を切り替えてから、
キャプチャ画像、次の画面を描画するということでしょうか?
画面を切り替えるタイミングがいまいちイメージできないです。

kazuoni

Re:ステージ切り替え処理について

#6

投稿記事 by kazuoni » 15年前

とりあえず、やっつけで書いてみました。
大本は、ゲームプログラミングの館25bです。
プログラムでは画像char.pngとback.jpgが必要です。
char.pngはゲームプログラミングのchar.pngを、
back.jpgはなんでもいいので一枚画像を用意して下さい。(推奨640*480 ブレンド感が味わえるからw)

自分は、キャプチャーと書きましたが、
ジュンヤさんの描写の構造が分からなかったので、そう書きました。
キャプチャーすれば、撮った画像と次のステージでブレンドできます。
前画面の個々の描写はいらない(前画面のキャプチャーは必要ですが)ので、
前画面を制御する関数に入る必要はなく、管理に便利かと思ったのでそう書きました。

自分が今回書いたプログラムはキャプチャーせず、前画面の描写の次に次画面を描写しています。
単純なのでみたらわかるかと思います。

ジュンヤ

Re:ステージ切り替え処理について

#7

投稿記事 by ジュンヤ » 15年前

サンプルのプログラムを参考にさせていただいたおかげで、
ブレンドから、ステージ切り替えまでの一連の流れが
理解することができ、自分の思ったとおりの切り替えができました^^
必ずキャプチャーしなければいけないわけではなかったんですね。

丁寧なアドバイスに加え、サンプルまで作っていただき
ありがとうございました。

Dixq (管理人)

Re:ステージ切り替え処理について

#8

投稿記事 by Dixq (管理人) » 15年前

キャプチャすると、どちらかの画面が止まってしまうと思いますので、
もし両方の画面を動かしたいなら
「両方の関数を呼ぶ時間」を設けて、その時間は両方の関数を呼んではどうでしょう。

画面1から画面2に変わる際、ブレンド時間が1秒だとすると、
画面1は1秒かけてフェードアウト、
画面2は1秒かけてフェードイン、
これを重ねて描画するとスムーズに切り替わりが出来そうです。

制御は若干ややこしくなりそうですが

閉鎖

“C言語何でも質問掲示板” へ戻る