ページ 11

タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月18日(水) 22:57
by 叉奈
はじめまして、叉奈と申します。
僕は今中三で今年高一になります。まだまだ初心者でわからないことだらけですが、質問させていただきます。

主にタイトル、選択画面の作り方がよくわかりせん。
過去ログも探してみましたが、結局よくわからずじまいに…;

main関数に入れ込んで、function_statusを使って設定、選択画面の基礎を表示することまでは
C言語~プログラミングの館~#33,34を見てわかったのですが、
東方のように選択画面(初期メニュー)から選択画面に(キャラクター選択)移行の仕方がよくわかりません。

どなたか赤点続出(勉強しろ)な僕にもわかるように教えていただけませんでしょうか?

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月18日(水) 23:10
by 朽木
こんにちは。

タイトル、選択画面って言っても多くありますが、
while ( device is running )
{
    BeginScene
    /* 現在の、シーン番号で、分岐 */
    switch ( NowSceneNo ) {
    case タイトル:
        /* タイトル処理 NowSceneNo = SceneTitle() など */
    case キャラクターセレクト:
        /* キャラクターセレクト処理 NowSceneNo = SceneCSelect() など */
    default:
        break;
    }
    EndScene
}

高速化すると、
while ( device is running )
{
    BeginScene
    NowSceneNo = ( *SceneFunc[NowSceneNo])();
    EndScene
}
な感じでしょうか。

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月18日(水) 23:16
by SCI
以前http://www.play21.jp/board/formz.cgi?ac ... &rln=29152で似たような話題が挙がっていましたね。
このときにサンプルを作ったのですが、載せましょうか?


>朽木さん
IDirect3DDevice::BeginScene()・IDirect3DDevice::EndScene()と混同してしまいそうですね(笑

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月18日(水) 23:18
by 朽木
補足。

要は、シーンの移り変わりを一つの変数で管理してしまうのです。

1回の描画ごとにシーンの処理をし、まだそのシーンを続ける場合は自分自身のシーン番号を返し、

シーンを変えたい場合は、対象のシーンの番号を返せば、返り値はNowSceneNoに代入されるので、

実行する関数が変更され、そのままシーンが移行します。

ただ、この場合は、必要最低限という言葉が似合いません。このまま書くには、一度画像をすべてリードしておく

必要があります。

NowSceneNo と BeforeSceneNo と別にしておき、不一致の場合に再読み込みさせるようにすると良いかもしれません。


>No:31024

あああああそうなんですか。すみません分かりにくくて。@@;

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月18日(水) 23:26
by SCI
あ、表示自体は出来ているみたいですね。
とすると、画面から画面へ遷移するときのアクション的な部分でしょうか。

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月18日(水) 23:34
by 叉奈
>>朽木様

丁寧な回答ありがとうございます♪
今から…できるかはわかりませんが、色々と試してみます!

>>SCI様

よろしければサンプル載せてください…。
>画面から画面へ遷移するときのアクション的な部分 もわからないんです;

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月18日(水) 23:58
by SCI
少し修正したものを再掲します。選択ボタンを選択するフリをするプログラムです。
決定ボタンを押したときに何番のボタンを選択中かで分岐すれば、とりあえず何かできそうですね。

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月18日(水) 23:59
by s-rush
>>画面から画面へ遷移するときのアクション的な部分
私はフェードアウト処理で、ほかの画面に移行させてますよ^^

フェードアウトそのものはそれほど難しくはないと思うので、割とお勧めです。

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月19日(木) 00:06
by SCI
アクション的な部分は、どんな感じかにもよりますが・・・
s-rushさんの言う通り、白や黒、あるいは何か別のものにフェードする処理は良いですね。
表示物に動きをつける場合、敵弾とかと同じ様にボタンの速度・加速度を処理するとそれっぽい動きになるのではないでしょうか。

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月19日(木) 00:23
by 叉奈
>>SCI様

わざわざありがとうございます!
頑張っていじくりまわしてみます^^(低レベル発言すいません;
速度・加速度もやってみます!

>>s-rush様

なるほど、フェードアウトですか…。
し、調べてみます!(本当にレベル低くてすみません;
また明日(今日)やってみます^^

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月19日(木) 00:43
by nayo
龍神録の館にあったボスの移動ルーチンに似た考え方が使えるのではないでしょうか

メニュー選択時に各メニューの移動させたい位置、移動までのカウントをセットしてやるとか
これに回転やアルファブレンドなども設定してやるとある程度のものはできるのではないでしょうか
ただ、メニューを画像で表示している場合に限りますが


特殊なメニューアクションを作るならやはり自作するしかないかと思います
メニューの移動フラグを立てるだけで自動的に計算してくれるような関数やクラスを作っておくと便利かと思います

あくまで個人的な意見ですがメニュー一つでゲームの見栄えがかなり変わってくるので
メニューはゲーム本編並みに大事だと思ってます

レイアウトやメニューのフォント、色などゲーム内容に合わせた雰囲気を出すのに苦労しますね

Re:タイトル、選択画面がよくわかりません・・・;

Posted: 2009年3月19日(木) 20:56
by 叉奈
>>nayo様

なるほどです。挑戦してみます^^
やっぱりメユーは大切ですよね…頑張っていい出来にしたいと思います!
適格な助言ありがとうございます!