龍神録プログラムをゲームとして完成させたいのですが・・・

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

龍神録プログラムをゲームとして完成させたいのですが・・・

#1

投稿記事 by jun_3453 » 14年前

龍神録プログラミングをとりあえず50章までやったのですが、
C言語初心者なのでどうすればゲームとして完成させられるのかがわかりません;;

導入したいものは、

タイトル画面の導入→zキーでスタート
キャラクター数を増やす→タイトルでキャラ変更できるようにしたい(難しいのであればここは飛ばし・・・)
敵を倒したらちゃんとスコア表示を増やす
ボムの使用回数制限
残機がなくなったらゲームオーバー画面→タイトル
ステージ1を終えたらタイトルに戻す

という基本だと思われる場所なのですが・・・

ここをどうすれば導入できるみたいなことを教えていただきたいです。
また、ここをいじれば応用できるみたいなことも教えていただけたら大変うれしいです。
質問が多くてすみません;;

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神録プログラムをゲームとして完成させたいのですが・・・

#2

投稿記事 by softya(ソフト屋) » 14年前

これは50章までをどうやって理解してきたかによります。
まず、50章まであった各関数の機能を書き出せますか?それが出来ないとすれば理解が出来ていないことになります。
ちゃんと理解するためには、ただ打ち込むだけでは無く見ずに同じことが書けるか自分を試してみるとか、一行一行やっていることにコメントを書いてみるとか、色々と深い理解が必要になります。変数や構造体の1つ1つの機能・意味、関数の引数の一つ一つの意味、関数の呼び出される順番など頭にすんなり入っていて始めて改造ができるように成ると言ってよいでしょう。
jun_3453 さんが書きました: タイトル画面の導入→zキーでスタート
キャラクター数を増やす→タイトルでキャラ変更できるようにしたい(難しいのであればここは飛ばし・・・)
敵を倒したらちゃんとスコア表示を増やす
ボムの使用回数制限
残機がなくなったらゲームオーバー画面→タイトル
ステージ1を終えたらタイトルに戻す
たしかにゲーム作りとしては基本ですが初心者には凄く難しいことでもあります。
そう言えば、ゲームプログラミングの館は勉強されましたか?
タイトル画面等はヒントに成ることが記載されていますのでぜひ勉強して理解してみてください。

「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: 龍神録プログラムをゲームとして完成させたいのですが・・・

#3

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

まずは、簡単なところからやってみてはどうでしょう。

・敵を倒したらちゃんとスコア表示を増やす
・ボムの使用回数制限

はすぐ出来ると思います。
まず前者について、
スコアを誰の持ち物にするべきかはとりあえず置いておき、さしあたり、自機の構造体にスコアを計算する変数を一つ追加して下さい。
敵が倒れた瞬間、そのスコアを加算すればよいでしょう。
50章まで見て下さったのであれば、どこで、敵を倒す計算をしているかご存じだと思いますが
、18章で紹介しているenemy_death_judge関数内です。
後は、そのスコアの変数を常に右に表示すれば良いと思います。

次に後者について、とりあえずこれも自機の構造体にボムの使用可能回数を表す変数を一つ追加して下さい。
最初、Ini関数などで状態を初期化する時、3などの使用可能回数をセットします。
Xボタンを押したらボムを発動する処理がありますから、
(22章のbom_calc関数)
ボム使用可能回数が0より大きければ発動するようにします。
発動したら、ボム使用可能回数を一つ減らすようにすれば、最初3とセットすれば3回しか発動しなくなるでしょう。

jun_3453

Re: 龍神録プログラムをゲームとして完成させたいのですが・・・

#4

投稿記事 by jun_3453 » 14年前

スコアできました!ありがとうございます!
ボムは今苦戦中です;;

次にタイトルなのですが・・・
http://dixq.net/g/36.html

http://dixq.net/g/03_03.html
を見たのですが、よくわかりませんでした・・・

main.cppのどこらへんにメニューの関数を入れればよいのでしょうか。
メインループのすぐ後でいいのですかね?

ちょっとわがままですが、自分はどんな感じでやってるとか教えていただければ嬉しいです。

jay
記事: 314
登録日時: 15年前
住所: 大阪市
連絡を取る:

Re: 龍神録プログラムをゲームとして完成させたいのですが・・・

#5

投稿記事 by jay » 14年前

jun_3453 さんが書きました:main.cppのどこらへんにメニューの関数を入れればよいのでしょうか。
メインループのすぐ後でいいのですかね?
龍神録の場合、メインループのcase0でグローバル関数の初期化や画像・SEなどの読み込みを行いますね
タイトルメニューでも背景画像等を使用すると思いますので、メインループの中のcase10辺りを適当に使えばいいかと思います。

case0の処理が終わった後でcase10にしてタイトルメニュー画面に移行し、zキーを押したらゲーム開始(case 99に移行)
な感じでいいと思います。
思いっきり過去に僕がやったやり方ですけど(苦笑)
jun_3453 さんが書きました:残機がなくなったらゲームオーバー画面→タイトル
に関してですが
龍神録使用でいくならch構造体のメンバ変数numがプレイヤーの残機な訳ですから
プレイヤーがミスした時(numが減った時)にnumが0以下になったらゲームオーバー画面へ行く、という形でいいと思います。
細かく行くならゲームオーバーになったとにコンティニューが出来たら一層ゲームらしくなりますが、初心者には難しいでしょうね・・・。

でも焦る必要はないでしょうし、一つ一つじっくりと考えていけばいいと思いますよ。
その方が見につきますしね。
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ

閉鎖

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