龍神のプログラムを元にプログラム支館の一時停止のプログラムを応用してタイトルを作ろうとしていますがうまくいきません。
龍神のプログラムにタイトル画面をつけるにはどうすればいいでしょうか?
タイトルの作りかた
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: タイトルの作りかた
かなりたびたび出る話題なので過去ログを検索してもらうと幾つか出てきます。
http://dixq.net/forum/viewtopic.php?f=3 ... +%E7%A5%9E
http://dixq.net/forum/viewtopic.php?f=3 ... %9E#p36392
http://dixq.net/forum/viewtopic.php?f=3 ... %9E#p39871
これらを読んでもらって分からないことを質問して頂ければと思います。
http://dixq.net/forum/viewtopic.php?f=3 ... +%E7%A5%9E
http://dixq.net/forum/viewtopic.php?f=3 ... %9E#p36392
http://dixq.net/forum/viewtopic.php?f=3 ... %9E#p39871
これらを読んでもらって分からないことを質問して頂ければと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: タイトルの作りかた
ウィンドウ画面全体に用意した画像を張り 一時停止プログラムのように言語選択などでスタート&終了の方法を一番最初にやるにはどうすればいいでしょうか?
新しいcppファイルを作ったほうがいいのでしょうか
新しいcppファイルを作ったほうがいいのでしょうか
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: タイトルの作りかた
新しいcppファイルと言う問題ではありません。ゲスト さんが書きました:ウィンドウ画面全体に用意した画像を張り 一時停止プログラムのように言語選択などでスタート&終了の方法を一番最初にやるにはどうすればいいでしょうか?
新しいcppファイルを作ったほうがいいのでしょうか
main.cppに組み込めますし、別に分けても構いません。
ただ、一時停止の方が難しいと思いますので、あまりおすすめできません。
ここは一般的な方法で作ることをお勧めします。
あと名前は統一してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: タイトルの作りかた
まず、適当なコンパイルファイル(.cpp)を作ります(そこに画像やら、何やらの処理を書きます)
じゃあ適当に opening.cppとしましょう
作っても、他のcppファイルと違うとこにできますね
まず、うざったいので、右クリック→削除→クリアし、プロジェクトから削除します
そして、龍神録のフォルダーからopening.cppをmydat/sourceフォルダーに入れ、プロジェクトファイルを右クリック→参照で
opening.cppを参照
で追加されました
次にプログラムの骨格を書きます
opening.cppに
#include "../include/GV.h"
void opening_disp(){//名前は何でもいい
//ここに色々と書く※プログラミングの館を参照して画像を表示させたりしましょう
if(CheckStatePad(configpad.shot)>0){//サンプルとしてこれを書きます
func_state=99;
//ショットボタンが押されたら初期化し、ゲームに進む
}
}
void opening_main(){//これは関数が複雑になったときまとめられるようにする
//voidで呼び出した関数を書く
opening_disp();
}
と書きます
次にfunction.hに
GLOBAL opening_main();//これですべてのファイルに関数を共通化
と追加します
お次はmain.cppに
cose 100://通常処理
とかありますね。
そして
cose 30:
とか
cose 80:
とか、適当なcoseを作ってください
cose 30:
(関数)
break;
こんな感じに書くので
case 0://初回のみ入る処理
load(); //データロード
first_ini();//初回の初期化
func_state=30;//ここを99から30に
break;
case 30://タイトル
opening_main();//さっきの関数を呼び出す
break;
case 99://STGを始める前に行う初期化
ini();
load_story();
func_state=100;
break;
case 100://通常処理
enter_func_tm("最初");
calc_ch(); enter_func_tm("キャラ計算");
ch_move(); enter_func_tm("キャラ移動");
cshot_main(); enter_func_tm("自機ショットメイン");
enemy_main(); enter_func_tm("敵処理メイン");
boss_shot_main();enter_func_tm("ボスショットメイン");
shot_main(); enter_func_tm("ショットメイン");
out_main(); enter_func_tm("当たり判定");
effect_main(); enter_func_tm("エフェクトメイン");
calc_main(); enter_func_tm("計算メイン");
graph_main(); enter_func_tm("描画メイン");
bgm_main(); enter_func_tm("BGMメイン");
if(boss.flag==0)
stage_count++;
break;
default:
printfDx("不明なfunc_state\n");
break;
と書き換えれば出来ると思います
出来なかったら、しっかり教えますし、やり方はこれだけではありませんので、あしからず
じゃあ適当に opening.cppとしましょう
作っても、他のcppファイルと違うとこにできますね
まず、うざったいので、右クリック→削除→クリアし、プロジェクトから削除します
そして、龍神録のフォルダーからopening.cppをmydat/sourceフォルダーに入れ、プロジェクトファイルを右クリック→参照で
opening.cppを参照
で追加されました
次にプログラムの骨格を書きます
opening.cppに
#include "../include/GV.h"
void opening_disp(){//名前は何でもいい
//ここに色々と書く※プログラミングの館を参照して画像を表示させたりしましょう
if(CheckStatePad(configpad.shot)>0){//サンプルとしてこれを書きます
func_state=99;
//ショットボタンが押されたら初期化し、ゲームに進む
}
}
void opening_main(){//これは関数が複雑になったときまとめられるようにする
//voidで呼び出した関数を書く
opening_disp();
}
と書きます
次にfunction.hに
GLOBAL opening_main();//これですべてのファイルに関数を共通化
と追加します
お次はmain.cppに
cose 100://通常処理
とかありますね。
そして
cose 30:
とか
cose 80:
とか、適当なcoseを作ってください
cose 30:
(関数)
break;
こんな感じに書くので
case 0://初回のみ入る処理
load(); //データロード
first_ini();//初回の初期化
func_state=30;//ここを99から30に
break;
case 30://タイトル
opening_main();//さっきの関数を呼び出す
break;
case 99://STGを始める前に行う初期化
ini();
load_story();
func_state=100;
break;
case 100://通常処理
enter_func_tm("最初");
calc_ch(); enter_func_tm("キャラ計算");
ch_move(); enter_func_tm("キャラ移動");
cshot_main(); enter_func_tm("自機ショットメイン");
enemy_main(); enter_func_tm("敵処理メイン");
boss_shot_main();enter_func_tm("ボスショットメイン");
shot_main(); enter_func_tm("ショットメイン");
out_main(); enter_func_tm("当たり判定");
effect_main(); enter_func_tm("エフェクトメイン");
calc_main(); enter_func_tm("計算メイン");
graph_main(); enter_func_tm("描画メイン");
bgm_main(); enter_func_tm("BGMメイン");
if(boss.flag==0)
stage_count++;
break;
default:
printfDx("不明なfunc_state\n");
break;
と書き換えれば出来ると思います
出来なかったら、しっかり教えますし、やり方はこれだけではありませんので、あしからず