ページ 11

龍神録の館8章キャラの移動について

Posted: 2012年8月17日(金) 20:11
by 小腸
一昨日、触り始めたばかりのド初心者です
かなり初歩的な問題なのか自分の疑問に該当するトピックが見つからなかった為、
恐縮ながら質問させていただきます

龍神録の館ではキャラ描画関数とキー入力関数を分けています
館ではこの際にグローバル変数を扱っていたので理解できたのですが
グローバル変数は使わない方がいいと聞きました

グローバル変数を使わない場合、どうしたら良いのか分かりません
描画関数からキー操作関数にキャラ座標を渡してキー操作処理を終えた後、
新しい座標を描画関数に返すというやり方が思いつきました
でも、実際ゲームをつくるとなると当たり判定関数にも座標がいるし、その他もろもろ関数にも
座標がいるので一々、値を受け渡ししているのは難しいことに思えます
よって、この考え方に自身がありません

色々、抜けている質問なのかもしれませんができれば専門用語抜きで正解を教えてください
よろしくお願いします

Re: 龍神録の館8章キャラの移動について

Posted: 2012年8月17日(金) 22:00
by nil
完全に専門用語を取り払った状態で説明するのは無理なので、小腸さんの理解度に応じて
適宜調べながら読んでください。場合によっては質問をして下さい。

まずはじめに描画関数からキー操作関数は呼び出さず、メイン関数から呼び出すべきです。
何故ならば、キー操作は描画という関数の目的から離れたものだからです。

そしてメイン関数からキー操作関数を呼び出すときなのですが、ポインタを使うとよいでしょう。

全体的な流れとしては

コード:

int メイン関数(){
    変数定義
	while( 1 ){
		キー操作関数( 変数のポインタ );
		描画関数( 変数 );
	}
}
となります。
ここを見ればいいかもしれません

Re: 龍神録の館8章キャラの移動について

Posted: 2012年9月01日(土) 20:07
by tutu
グローバル変数は、いずれ必要になると思いますよ(僕の経験は浅いのですが)。
グローバル変数はあとで別のものに利用できると思うのでぜひ一度使ってみてください(僕は分かりやすいので使っています)。

Re: 龍神録の館8章キャラの移動について

Posted: 2012年9月02日(日) 01:41
by Dixq (管理人)
仰るようにグローバル変数はC言語の設計を熟知した上で・・という以外使うべきではありません。

外から変更できる危険性があるだけでなく、
モジュールの多重化、汎用性・・様々な要素に悪影響を与えます。
こちらの「ゲームプログラミング設計」にグローバル変数を使わなくてもできるゲームの設計について紹介しています。
http://dixq.net/g/
よければご覧ください。