ページ 1 / 1
龍神録プログラムをゲームとして完成させたいのですが・・・
Posted: 2011年6月18日(土) 00:45
by jun_3453
龍神録プログラミングをとりあえず50章までやったのですが、
C言語初心者なのでどうすればゲームとして完成させられるのかがわかりません;;
導入したいものは、
タイトル画面の導入→zキーでスタート
キャラクター数を増やす→タイトルでキャラ変更できるようにしたい(難しいのであればここは飛ばし・・・)
敵を倒したらちゃんとスコア表示を増やす
ボムの使用回数制限
残機がなくなったらゲームオーバー画面→タイトル
ステージ1を終えたらタイトルに戻す
という基本だと思われる場所なのですが・・・
ここをどうすれば導入できるみたいなことを教えていただきたいです。
また、ここをいじれば応用できるみたいなことも教えていただけたら大変うれしいです。
質問が多くてすみません;;
Re: 龍神録プログラムをゲームとして完成させたいのですが・・・
Posted: 2011年6月18日(土) 00:54
by softya(ソフト屋)
これは50章までをどうやって理解してきたかによります。
まず、50章まであった各関数の機能を書き出せますか?それが出来ないとすれば理解が出来ていないことになります。
ちゃんと理解するためには、ただ打ち込むだけでは無く見ずに同じことが書けるか自分を試してみるとか、一行一行やっていることにコメントを書いてみるとか、色々と深い理解が必要になります。変数や構造体の1つ1つの機能・意味、関数の引数の一つ一つの意味、関数の呼び出される順番など頭にすんなり入っていて始めて改造ができるように成ると言ってよいでしょう。
jun_3453 さんが書きました:
タイトル画面の導入→zキーでスタート
キャラクター数を増やす→タイトルでキャラ変更できるようにしたい(難しいのであればここは飛ばし・・・)
敵を倒したらちゃんとスコア表示を増やす
ボムの使用回数制限
残機がなくなったらゲームオーバー画面→タイトル
ステージ1を終えたらタイトルに戻す
たしかにゲーム作りとしては基本ですが初心者には凄く難しいことでもあります。
そう言えば、ゲームプログラミングの館は勉強されましたか?
タイトル画面等はヒントに成ることが記載されていますのでぜひ勉強して理解してみてください。
「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/
Re: 龍神録プログラムをゲームとして完成させたいのですが・・・
Posted: 2011年6月18日(土) 01:42
by Dixq (管理人)
まずは、簡単なところからやってみてはどうでしょう。
・敵を倒したらちゃんとスコア表示を増やす
・ボムの使用回数制限
はすぐ出来ると思います。
まず前者について、
スコアを誰の持ち物にするべきかはとりあえず置いておき、さしあたり、自機の構造体にスコアを計算する変数を一つ追加して下さい。
敵が倒れた瞬間、そのスコアを加算すればよいでしょう。
50章まで見て下さったのであれば、どこで、敵を倒す計算をしているかご存じだと思いますが
、18章で紹介しているenemy_death_judge関数内です。
後は、そのスコアの変数を常に右に表示すれば良いと思います。
次に後者について、とりあえずこれも自機の構造体にボムの使用可能回数を表す変数を一つ追加して下さい。
最初、Ini関数などで状態を初期化する時、3などの使用可能回数をセットします。
Xボタンを押したらボムを発動する処理がありますから、
(22章のbom_calc関数)
ボム使用可能回数が0より大きければ発動するようにします。
発動したら、ボム使用可能回数を一つ減らすようにすれば、最初3とセットすれば3回しか発動しなくなるでしょう。
Re: 龍神録プログラムをゲームとして完成させたいのですが・・・
Posted: 2011年6月21日(火) 22:02
by jun_3453
スコアできました!ありがとうございます!
ボムは今苦戦中です;;
次にタイトルなのですが・・・
http://dixq.net/g/36.html
や
http://dixq.net/g/03_03.html
を見たのですが、よくわかりませんでした・・・
main.cppのどこらへんにメニューの関数を入れればよいのでしょうか。
メインループのすぐ後でいいのですかね?
ちょっとわがままですが、自分はどんな感じでやってるとか教えていただければ嬉しいです。
Re: 龍神録プログラムをゲームとして完成させたいのですが・・・
Posted: 2011年6月21日(火) 22:24
by jay
jun_3453 さんが書きました:main.cppのどこらへんにメニューの関数を入れればよいのでしょうか。
メインループのすぐ後でいいのですかね?
龍神録の場合、メインループのcase0でグローバル関数の初期化や画像・SEなどの読み込みを行いますね
タイトルメニューでも背景画像等を使用すると思いますので、メインループの中のcase10辺りを適当に使えばいいかと思います。
case0の処理が終わった後でcase10にしてタイトルメニュー画面に移行し、zキーを押したらゲーム開始(case 99に移行)
な感じでいいと思います。
思いっきり過去に僕がやったやり方ですけど(苦笑)
jun_3453 さんが書きました:残機がなくなったらゲームオーバー画面→タイトル
に関してですが
龍神録使用でいくならch構造体のメンバ変数numがプレイヤーの残機な訳ですから
プレイヤーがミスした時(numが減った時)にnumが0以下になったらゲームオーバー画面へ行く、という形でいいと思います。
細かく行くならゲームオーバーになったとにコンティニューが出来たら一層ゲームらしくなりますが、初心者には難しいでしょうね・・・。
でも焦る必要はないでしょうし、一つ一つじっくりと考えていけばいいと思いますよ。
その方が見につきますしね。