スーパー丸投げタイム

アバター
BEAT
記事: 4
登録日時: 14年前
住所: 兵庫県S市杜王町
連絡を取る:

スーパー丸投げタイム

投稿記事 by BEAT » 14年前

前回の日記から1週間がたってしまった(´・ω・`)

ソースをスマートにしようとして失敗したものを前の状態の戻そうとして時間食いました。
あとマインクラフトやってました・・・猛省・・・

それはそうと
ソースコードってここに載っけたほうがいいんでしょうか?
それともフォルダにまとめてアップロードした方がいいんでしょうか?

わからないので返信待ってます。

とりあえずソースの現状
①引数もちの関数が無いに等しい。
②グローバル変数使いまくり。
③構造体の、メンバが多い、名前がわかりにくい。
④全体的に何をしているのかわかりにくい。
⑤ポインタなんかなかったんや。

という糞仕様となっております。

【追記】
添付されたファイルで多分動きます。
開発環境はVSC++2010Acaで、DXライブラリつかってます。
すごい汚いです。
すごい汚いです。
添付ファイル

[拡張子 zip は無効化されているため、表示できません]

最後に編集したユーザー BEAT on 2011年6月25日(土) 15:52 [ 編集 1 回目 ]

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: スーパー丸投げタイム

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

もしヘッダ同士が相互参照になりそうな場合は、
struct pl;
struct enemy;
と書くとヘッダでヘッダをインクルードしなくてもエラーにはなりません。
これは構造体の詳細定義を後回しにする書き方です。

アバター
BEAT
記事: 4
登録日時: 14年前
住所: 兵庫県S市杜王町
連絡を取る:

Re: スーパー丸投げタイム

投稿記事 by BEAT » 14年前

大体できたので添削お願いします。

やったこと
①グローバル変数を減らせるだけ減らした(扱いがわからないものをgame.hに入れてます)

②コメントも少し増やしました。

よろしくお願いします。
添付ファイル

[拡張子 zip は無効化されているため、表示できません]


アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: スーパー丸投げタイム

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

すいません。見逃してました。
明日の昼頃にはチェックします。

アバター
BEAT
記事: 4
登録日時: 14年前
住所: 兵庫県S市杜王町
連絡を取る:

Re: スーパー丸投げタイム

投稿記事 by BEAT » 14年前

お気になさらずに、お時間のある時にでも見てやってくださいww

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: スーパー丸投げタイム

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

大分と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:とか意味のある名前も付けてください。
最後に編集したユーザー softya(ソフト屋) on 2011年7月09日(土) 15:41 [ 編集 1 回目 ]

アバター
BEAT
記事: 4
登録日時: 14年前
住所: 兵庫県S市杜王町
連絡を取る:

Re: スーパー丸投げタイム

投稿記事 by BEAT » 14年前

Getはその変数の値の取得
Setはその変数の値の変更
という働きを持たせるということでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: スーパー丸投げタイム

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

BEAT さんが書きました:Getはその変数の値の取得
Setはその変数の値の変更
という働きを持たせるということでしょうか?
そういう事です。
将来のC++のクラス化の為にも、変数の直接参照や変更は出来るだけ行わないクセをつけてください。