この図は「敵が弾を出したら弾を描写する」という解釈でよろしいですか?違いますよ。敵オブジェクトが弾オブジェクトに対して、弾の生成を依頼している所です。これがISLeさんが振る舞いと表現した部分です。その前にISLeさんの言われる作業を徹底した方が良いと思いますね。やってみてなさそうですし。>丸や三角に意味はありますでしょうか?丸は更新(?)処理で三角は描写、みたいな...丸は自機、三角は敵機では?オブジェクトの振る舞いではなく仮想ゲーム画面を作れって話ですから。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返信ありがとうございます。この図は「敵が弾を出したら弾を描写する」という解釈でよろしいですか?違いますよ。敵オブジェクトが弾オブジェクトに対して、弾の生成を依頼している所です。これがISLeさんが振る舞いと表現した部分です。その前にISLeさんの言われる作業を徹底した方が良いと思いますね。やってみてなさそうですし。いう意味だったんですか。今まで龍神録のプログラムをマネしていただけなのでやります。>丸や三角に意味はありますでしょうか?丸は更新(?)処理で三角は描写、みたいな...丸は自機、三角は敵機では?オブジェクトの振る舞いではなく仮想ゲーム画面を作れって話ですから。オブジェクトの振る舞いだと解釈していました。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。6年前オブジェクトのピックアップを徹底したあとの話ですが。描画というのは実装ですから、振る舞いとは別に考えないといけません。設計段階では実装をなるべく除外してください。オブジェクトとしての本質的な振る舞いを考えてください。実装に依存しない仕様です。当たり前のことを書かなくて済めば仕様がシンプルになります。返信ありがとうございます。いえばオブジェクトなどまとめていけばわかりますが、MusicRoomよりも遥かに複雑なものになるんですが覚悟されていますよね?はい。MusicRoomはC/C++の勉強がてら作り始めただけですので。C++verはC++が完全に理解できていなかったのでと考えています。返信ありがとうございます。オブジェクトのピックアップを徹底したあとの話ですが。描画というのは実装ですから、振る舞いとは別に考えないといけません。設計段階では実装をなるべく除外してください。オブジェクトとしての本質的な振る舞いを考えてください。実装に依存しない仕様です。当たり前のことを書かなくて済めば仕様がシンプルになります。描画って実装なんですね。実のところ「二兎を追う者は一兎をも得ず」を心配しています。この場合は、「オブジェクト指向的な設計」と「始めての規模で組むSTG」です。3D_3Dさんにある程度経験があれば止めないのですが、MusicRoomを見ている限りは混乱すると思います。規模を落としたほうが良いんじゃない?って事ですね。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返事ありがとうございます。実のところ「二兎を追う者は一兎をも得ず」を心配しています。この場合は、「オブジェクト指向的な設計」と「始めての規模で組むSTG」です。3D_3Dさんにある程度経験があれば止めないのですが、MusicRoomを見ている限りは混乱すると思います。規模を落としたほうが良いんじゃない?って事ですね。規模を落とす、とはSTGではなく、もっと簡単なものから始めた方がいいということですか?確かに、まともに作ったものがブロック崩し程度なので、他のものから始めた方がいいかもしれません。6年前では、シューティングの規模を下げましょう。龍神録並じゃなく仕様をそげ落として下さい。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返信ありがとうございます。シューティングの規模を下げましょう。龍神録並じゃなく仕様をそげ落として下さい。夏休みの課題が終わらなそうなので、明日考えてみます。一応自分なりに書いてみました。おかしいところ、足りないところなどを教えてください。画像からピックアップしたものを書きだしてみました。こちらもおかしいところなどがありましたら教えてください。・自機ショット添付ファイルここを元に書いてみました。作れる範囲に仕様を削っていないと思われるので、削った想定画面を作りましょう。・ボム必要ですか?・豪華な弾幕必要ですか?・ボスは必要ですか?最初のが上手く行ったら次に機能追加して作れば良いだけなので、最初は思っきり減らして下さい。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返信ありがとうございます。作れる範囲に仕様を削っていないと思われるので、削った想定画面を作りましょう。・ボム必要ですか?・豪華な弾幕必要ですか?・ボスは必要ですか?最初のが上手く行ったら次に機能追加して作れば良いだけなので、最初は思っきり減らして下さい。削って良いんですか?わかりました。▲自機そんな少なくて良いんですか?分かりました。返信ありがとうございます。私なら,です.ご自身がやれる範囲で最初から用意するものを決めればいいと思います.わかりました。自分でできる範囲のものでやってみます。6年前usao様とsoftya様のアドバイスを元に作り直してみました。これも、何かおかしいとかありましたら指摘お願いします。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。自分の弾が無いですが狙い通りですか?あとフィールドとbackgroundって何が違うんでしょうか?自機ショットはとりあえずはずしました。混乱してしまうような気がして。フィールドは間違いです。本当はそこはボードでした。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返信ありがとうございます要らないですね。考えていませんでした。6年前では、取り敢えずv0002.pngの画像を元に作って行きたいと思います。詰まったら質問に来ます。その時もよろしくお願いします。作る作らないは別として、観察力とか解析能力を鍛えるために既存ゲームのスクショからオブジェクトをピックアップするのは続けてはいかがでしょう。ヒットコンボ関連とかまるっと抜けてますし。参考にしたスクショのゲームは道中とボスのシーンではレイアウトが違うので、先にやるのは道中のほうが良いと思います。ボスシーンに移行するとき画面のパーツが移動するので、実際にどの部分がどういうふうに動いているか見るともっと分かりやすいですが。いまできる範囲で『設計』すると実際にできる範囲よりずっと規模の小さいものになってしまうと思います。初心者にとって『実装』できるかどうかでふるいにかけるべき問題を『設計』に持ち込むと成長を止めてしまうことになると思います。突拍子もない仕様を思い付いても困りますが、そうならないためにもスクショを参考にしての訓練は有効だと思います。言葉にできれば実装できるとわたしは思います。返信ありがとうございます。作る作らないは別として、観察力とか解析能力を鍛えるために既存ゲームのスクショからオブジェクトをピックアップするのは続けてはいかがでしょう。ヒットコンボ関連とかまるっと抜けてますし。ゲームだけだったのでボス戦を選んでしまいました。道中でもやってみます。ヒットコンボ関連は後回しにしていました。参考にしたスクショのゲームは道中とボスのシーンではレイアウトが違うので、先にやるのは道中のほうが良いと思います。ボスシーンに移行するとき画面のパーツが移動するので、実際にどの部分がどういうふうに動いているか見るともっと分かりやすいですが。いまできる範囲で『設計』すると実際にできる範囲よりずっと規模の小さいものになってしまうと思います。初心者にとって『実装』できるかどうかでふるいにかけるべき問題を『設計』に持ち込むと成長を止めてしまうことになると思います。突拍子もない仕様を思い付いても困りますが、そうならないためにもスクショを参考にしての訓練は有効だと思います。言葉にできれば実装できるとわたしは思います。ありがとうございます。これから道中のスクショを調べてやって見ます。現在、道中のスクショから想定画面を作成していますが、ボス戦とあまり変わらないです。v0002.pngの画像に雑魚を付け加えただけの物になりました。6年前C++使えたら全ての言語余裕でしょうってくらいC++はむずいですね。JavaがC++の下位互換って聞いてびっくりしました。Javaも相当難しいんですけどね。クラスの大半は意味不明です。Javaはハードとかにも詳しくないとやってられないと思いますね。Javaはハードとかにも詳しくないとやってられないと思いますね。世界で一番良く使われている言語であるだけあって非常に使いやすく作りこまれていると思います。Androidアプリを作る時にいつもJavaを使いますが非常に使いやすい言語だと私は思いますよ。6年前ISLeさんの言うスクショからものはあくまで訓練ですので、やるやらないは別にしてオブジェクト対象物を全部上げることに意義があります。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。このままだと荒れると判断して削除させて頂きました。wwwwを使うことじたい荒れる原因です。6年前もう言っていることがめちゃくちゃです。C言語の方も理解度が怪しいと納得しました。元を削除いたしました。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。6年前メリモさんは言っていることがおかし過ぎます・・。話が横道にそれましたね、これ以上ここで、CやJavaの話はしない方が良いようです。(softyaさんの対応に沿って私も前言撤回します。ここではこれ以上話さないようにします)さて、オブジェクト指向での設計についてですが、http://dixq.net/rp/の下に「龍神録C++版オープンソース化計画は第三回あたりで中断中・・。参考になるか分かりませんが、参考になればどうぞ。第二回にクラス図があります。↑上なんだ?僕は自分で削除してないですが、あなた誰ですか?勝手に人の名前騙らないで下さい。softya(ソフト屋)が削除しました。管理人さんハードっていうからおかしいんですね。Javaはシステマチックで難しいってことです。荒れる原因になる口調を修正させて頂きます。申し訳ありませんが荒れる原因と判断し管理人権限で添削しております。3D_3Dさんの迷惑になるので、3D_3Dさんの質問と関係の無い書き込みはご遠慮ください。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。6年前そういえば人のスレでしたね。返信ありがとうございます。ISLeさんの言うスクショからものはあくまで訓練ですので、やるやらないは別にしてオブジェクト対象物を全部上げることに意義があります。訓練をしないとプログラミングは上達しないような気がするのでやります。対象物の定義が微妙ですが、眼に見えない物も含めてクラスに分けることです。管理クラスや制御クラスが必要になる場合もあります。これが設計上と実装上で違うって事ですね。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返信ありがとうございます。オブジェクト指向での設計についてですが、http://dixq.net/rp/の下に「龍神録C++版オープンソース化計画は第三回あたりで中断中・・。参考になるか分かりませんが、参考になればどうぞ。第二回にクラス図があります。拝見させていただきました。オブジェクトの分け方の参考にさせていただきます。いままでオブジェクト指向を全く意識しないでプログラミングしてきたので、とても参考になります。クラス図もあまり書いたことがないのでオブジェクト指向の理解を深めるとともに設計するように頑張ります。返信ありがとうございます。対象物の定義が微妙ですが、眼に見えない物も含めてクラスに分けることです。管理クラスや制御クラスが必要になる場合もあります。これが設計上と実装上で違うって事ですね。ファイルを分けるのは完全には関係無いのですか。C言語でオブジェクト指向プログラミングする場合はどのようにすればいいと思いますか?C++のようにC言語はclassが無いので気になっています。6年前C言語はファイルで分けるのが良いと思います。いや、もっと面倒なC言語によるオブジェクト指向はありますけどね。これはC++よりもある意味面倒なので。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返事ありがとうございます。C言語はファイルで分けるのが良いと思います。いや、もっと面倒なC言語によるオブジェクト指向はありますけどね。これはC++よりもある意味面倒なので。参考http://www.sage-p.com/process/cool.htmC言語はファイルで分けるのですか...てっきり構造体みたいなやつでクラスもどきつくって〜とかすると思いまして質問させていただきました。リンク先をざっと見させていただきましたが、確かに面倒なことになってますね。C言語でファイルで分けてやります。6年前クラス図が書けるようになってきたらゲームの取説からクラス図を作ってみるといい訓練になるかもしれません実際、私の学校の授業で一回やったのでC言語を使うと自分の足を誤って撃ち抜いてしまうことがある。C++を使えばそのような間違いを犯しにくくなる。やってしまったときには足全体が無くなる。返信ありがとうございます。クラス図が書けるようになってきたらゲームの取説からクラス図を作ってみるといい訓練になるかもしれません実際、私の学校の授業で一回やったのでクラス図自体書いたことが無いので(1〜2回程度です。)まずはクラス図を書けるように訓練します。あと、自分はゲームをほとんど持っていませんので、適当なフリーゲームをダウンロードしてみます。(本当にゲームを持っていません。クラス図が書けるようになってきたらゲームの取説からクラス図を作ってみるといい訓練になるかもしれません実際、私の学校の授業で一回やったのでそれは中々良さそうですね。選ぶゲーム次第で大変なことにはなりそうですが。ファイルを分けただけだと継承とか出来ないので、オブジェクト化・カプセル化を徹底してください。構造体とか形から入るより、そちらを徹底した方が良いと思います。クラスポインタの代わりに構造を見せない構造体ポインタを返すと言う実装はC言語でも比較的楽なのでやってみても良いと思います。前方宣言した構造体のポインタを使います。私のRPG講座でも使っています。出来ることは言うなればカプセル化とインスタンスの生成です。RPG講座の日記です。ゲーム本編画面遷移」で解説しているのが、それです。他にも使ってますけどね。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返信ありがとうございます。クラス図が書けるようになってきたらゲームの取説からクラス図を作ってみるといい訓練になるかもしれません実際、私の学校の授業で一回やったのでそれは中々良さそうですね。選ぶゲーム次第で大変なことにはなりそうですが。ファイルを分けただけだと継承とか出来ないので、オブジェクト化・カプセル化を徹底してください。構造体とか形から入るより、そちらを徹底した方が良いと思います。クラスポインタの代わりに構造を見せない構造体ポインタを返すと言う実装はC言語でも比較的楽なのでやってみても良いと思います。前方宣言した構造体のポインタを使います。私のRPG講座でも使っています。当方、あまりゲームをやらないので(3回め)オブジェクト化やカプセル化...ですか?聞いたことはあるけどしたことは無いので試行錯誤しながらやってみます。RPG講座を見させていただきます。頑張ってオブジェクト指向プログラミングをマスターしたいと思います。6年前とりあえず、自分なりに書いてみました。カプセル化やオブジェクト化を調べながらやってみました。BG_Fina();v0002.pngを元に自分なりに作ってみました。)を参考にさせていただきました。オブジェクト化やカプセル化などで間違っているところがありましたら、ご指摘お願いします。FinaじゃなくFinal。一文字節約して読みづらなくなっても意味ないです。・Playerの構造体の実構造を外部に公開する必要などありません。構造体の前方宣言でカプセル化できます。今はカプセル化出来てないよって事です。mallocしなくても良いので、実体定義はplayer.cppで行いましょう。あれば名前に気をつけるべきです。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返信ありがとうございます。FinaじゃなくFinal。一文字節約して読みづらなくなっても意味ないです。・Playerの構造体の実構造を外部に公開する必要などありません。構造体の前方宣言でカプセル化できます。今はカプセル化出来てないよって事です。mallocしなくても良いので、実体定義はplayer.cppで行いましょう。あれば名前に気をつけるべきです。詳しくありがとうございます。・名前はPlayer_~の部分がみんな4文字ですごく気になったのでFinaにしました。・構造体の前方宣言はやったことがないのでこちらも調べながらやってみます。・ch_tはプレイヤー専用の構造体です。player_tにします。これらを踏まえてもう一度やってみます。2010でコンパイルしています。自分のPCは訳ありで使用できませんでした。忘れてました!・どうにもマジックナンバーが散見されます。出来るだけ減らしましょう。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。6年前そういえばそうですね。player_tは1つしか無いなら外部公開の必然が無いですね。全部、隠して良いでしょう。敵の時には公開を考慮する必要有りですけどね。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。6年前それも方針ですが、Dixqさんと私の方式だとクラス内でハンドルを得てますね。リソース管理をどうするかの設計の問題なので、どちらが良いとは言えませんが、自身のリソース確保を外部に委ねる気がするので私は外部から受け取るのはちょっと避けたいです。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。返信ありがとうございます。変更する.(あとは,当然ながら,インスタンスを削除する関数も追加)Player_Calc()がキーの状態を見に行くのは微妙.キーが押されたかどうか(というよりも上下あるいは左右に動くべきかどうか)という情報を引数に受ける方がいいと思う.#あと,Player_Calc()内のnanameって効いてなくないですか?今まで無名構造体を使ってきたので慣れてませんが前方宣言に慣れて行きたいです。Player_Move関数を作ってやってみます。