前回の日記から1週間がたってしまった(´・ω・`)
ソースをスマートにしようとして失敗したものを前の状態の戻そうとして時間食いました。
あとマインクラフトやってました・・・猛省・・・
それはそうと
ソースコードってここに載っけたほうがいいんでしょうか?
それともフォルダにまとめてアップロードした方がいいんでしょうか?
わからないので返信待ってます。
とりあえずソースの現状
①引数もちの関数が無いに等しい。
②グローバル変数使いまくり。
③構造体の、メンバが多い、名前がわかりにくい。
④全体的に何をしているのかわかりにくい。
⑤ポインタなんかなかったんや。
という糞仕様となっております。
【追記】
添付されたファイルで多分動きます。
開発環境はVSC++2010Acaで、DXライブラリつかってます。
すごい汚いです。
すごい汚いです。
スーパー丸投げタイム
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
Re: スーパー丸投げタイム
もしヘッダ同士が相互参照になりそうな場合は、
struct pl;
struct enemy;
と書くとヘッダでヘッダをインクルードしなくてもエラーにはなりません。
これは構造体の詳細定義を後回しにする書き方です。
struct pl;
struct enemy;
と書くとヘッダでヘッダをインクルードしなくてもエラーにはなりません。
これは構造体の詳細定義を後回しにする書き方です。
Re: スーパー丸投げタイム
大体できたので添削お願いします。
やったこと
①グローバル変数を減らせるだけ減らした(扱いがわからないものをgame.hに入れてます)
②コメントも少し増やしました。
よろしくお願いします。
やったこと
①グローバル変数を減らせるだけ減らした(扱いがわからないものをgame.hに入れてます)
②コメントも少し増やしました。
よろしくお願いします。
- 添付ファイル
-
[拡張子 zip は無効化されているため、表示できません]
Re: スーパー丸投げタイム
お気になさらずに、お時間のある時にでも見てやってくださいww
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
Re: スーパー丸投げタイム
大分とexternは整理できた様ですね。
ざっと見た感想から。
extern int scroll_flag; //スクロールフラグ
extern int map_next_x; //移動先マップ番地x
extern int map_next_y; //移動先マップ番地y
extern int enemy_load; //敵キャラロードフラグ
extern const int PLAYER_WALKSPEED; //プレイヤー移動量
extern const int HITBACK_PAWER; //のけぞり距離
extern int enemy_all; //敵総数
は全てなくせます。グローバル変数である必要のないものをありますし。
HITBACK_PAWER → HITBACK_POWER
定数なのでextern不要。
const int PLAYER_WALKSPEED;
それぞれの値のGet/Set関数を作ってください。
extern int scroll_flag; //スクロールフラグ
extern int map_next_x; //移動先マップ番地x
extern int map_next_y; //移動先マップ番地y
extern int enemy_load; //敵キャラロードフラグ
extern int enemy_all; //敵総数
全てファイル内のスコープの変数宣言にすることが出来ます。
これでexternな変数は0に出来ます。
それとenemy_loadがローカルスコープでstaticで宣言されていたらenemy_map_update関数の外部から変更できませんよ。
[追記]
即値が多くて気になるのでテーブル化や定数化、共通関数化を計ってください。
あまりにも同じような処理で数値が違うだけが多いです。
case 0:よりもcase PATTARN_XXX:とか意味のある名前も付けてください。
ざっと見た感想から。
extern int scroll_flag; //スクロールフラグ
extern int map_next_x; //移動先マップ番地x
extern int map_next_y; //移動先マップ番地y
extern int enemy_load; //敵キャラロードフラグ
extern const int PLAYER_WALKSPEED; //プレイヤー移動量
extern const int HITBACK_PAWER; //のけぞり距離
extern int enemy_all; //敵総数
は全てなくせます。グローバル変数である必要のないものをありますし。
HITBACK_PAWER → HITBACK_POWER
定数なのでextern不要。
const int PLAYER_WALKSPEED;
それぞれの値のGet/Set関数を作ってください。
extern int scroll_flag; //スクロールフラグ
extern int map_next_x; //移動先マップ番地x
extern int map_next_y; //移動先マップ番地y
extern int enemy_load; //敵キャラロードフラグ
extern int enemy_all; //敵総数
全てファイル内のスコープの変数宣言にすることが出来ます。
これでexternな変数は0に出来ます。
それとenemy_loadがローカルスコープでstaticで宣言されていたらenemy_map_update関数の外部から変更できませんよ。
[追記]
即値が多くて気になるのでテーブル化や定数化、共通関数化を計ってください。
あまりにも同じような処理で数値が違うだけが多いです。
case 0:よりもcase PATTARN_XXX:とか意味のある名前も付けてください。
最後に編集したユーザー softya(ソフト屋) on 2011年7月09日(土) 15:41 [ 編集 1 回目 ]
Re: スーパー丸投げタイム
Getはその変数の値の取得
Setはその変数の値の変更
という働きを持たせるということでしょうか?
Setはその変数の値の変更
という働きを持たせるということでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
Re: スーパー丸投げタイム
そういう事です。BEAT さんが書きました:Getはその変数の値の取得
Setはその変数の値の変更
という働きを持たせるということでしょうか?
将来のC++のクラス化の為にも、変数の直接参照や変更は出来るだけ行わないクセをつけてください。