分割

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

分割

#1

投稿記事 by stream » 14年前

こんにちは、久しぶりの質問になります。
私は今、コードを分割してシューティングゲームを作っています。ですが、まず、キーボードを押して動かすことができません。(分割せずにはできるんですが)
①シューティングゲームで分割の一番シンプルな形はどんな形ですか?
②取りあえず分割していて画像を動かせる方法が知りたいです。(きれいな形で)

いまいち分割してしまったらこんがらがってしまいました。返信お願いします。

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

Re: 分割

#2

投稿記事 by jay » 14年前

C++のお話でしょうか?
オブジェクト指向の言語かどうかでお話も少し変わってくると思いますが・・・

①については
単純に分かりやすさ、可読性を重視するのなら
・描画関連の関数をまとめたソースコード
・自機制御の関数をまとめたソースコード
・敵制御の関数をまとめたソースコード
・BGMやSEを制御する関数をまとめたソースコード
・定数やグローバル変数の宣言をまとめたヘッダーファイル

といった具合に、それぞれの用途ごとに分けて管理すればいいと思います。
オブジェクト指向なら関数と情報を格納する変数をまとめてクラスにするのがいいでしょうね。


②についてですが
多分ここで僕がアレコレ言うよりもこのサイトの龍神録の館を見た方が参考になると思います。
龍神録の館

でも一応簡単に説明しますね
ソースを分割せずに一つのファイルにまとめた状態では上手くできる、とのことですね。
そこから分割した、ということは描画関数とキー入力の取得及び自機の制御関数を別々のソースコードに分けたということでしょう。

この時問題になるのは
・関数を呼び出せない
・情報(変数)をソースコード間で共有できない

のどちらかだと思います。
どちらにしてもexternというモノが必要になってきます。
まずはこれに関して勉強するといいですよ。
最後に編集したユーザー jay on 2012年2月08日(水) 22:07 [ 編集 1 回目 ]
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ

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

Re: 分割

#3

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

設計に関しては
http://dixq.net/g/
こちらの「ゲームプログラミング設計」の章を参考にして下さい。
ちょうど、キーボード操作を受け付ける仕様で分割する方法を紹介しています。
d1~d5まで読めば自分で任意のモジュールを追加することが出来るようになると思います。

しかしピュアCでは大規模な設計がとても難しいです。
設計について興味があればC++を学び「デザインパターン」を学んでみると良いかもしれません。
ただC++はよくも悪くもC言語と互換性があるので、「なんちゃってC++」になりがちです。
そういう意味では一度JAVAやC#のように完全にクラスでなければ作れない環境で修業をしてみるというもの良いと思います。

・・と言うと話を大きくし過ぎかもしれませんが、とりあえずリンク先の情報を見て設計してみて、その後で「オブジェクト指向」というキーワードで調べてみて下さい。

stream

Re: 分割

#4

投稿記事 by stream » 14年前

jayさん、Dixq(管理人)返信ありがとうございました。
とても詳しく説明してくださり参考になりました。
ありがとうございました。

閉鎖

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