学校の先輩にゲーム作りでこのサイトは役立つといわれ最初から順番にやって言ってるのですが、
第7章(http://dixq.net/rp/7.html)の下記の部分でわからなくなりました。
キャラクタに表示する画像をcalc_chで計算させます。
カウンタをふやして行き、24周期で1周します。その中で4種類の画像をループさせます。
データファイルにあるキャラクタ画像を見てもらったら解るとおり、キャラクタは4種類で1動作になっていますから、
以下の式で画像番号をループさせているのです。
--char.cppを変更--
↑のプログラムの
ch.img=(ch.cnt%24)/6;
というところがなにをやっているのかわかりません。
これをすることによって何ができるのかがわかりません。
C++のポインタや構造体まで(ローベルのC++入門講座という本のp210)ぐらいまで一応勉強しています。
初歩的な質問ですが回答お願いします。
初歩的な質問ですみません。
Re: 初歩的な質問ですみません。
ch.cntを24で割ったあまりは0~23の24とおりあります。それを6で割った商によって、
画像ファイルの番号か何かを決めているのではないでしょうか。
ch.cntを24で割ったあまりが0~5のとき、それを6で割った商=0
ch.cntを24で割ったあまりが6~11のとき、それを6で割った商=1
ch.cntを24で割ったあまりが12~17のとき、それを6で割った商=2
ch.cntを24で割ったあまりが18~23のとき、それを6で割った商=3
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 初歩的な質問ですみません。
なるほど回答有難うございます。
追加で質問なのですが、
ch.img=(ch.cnt%24)/6; の部分は4種類の番号をループさせているのであれば
ch.img=(ch.cnt%4);ではだめなんでしょうか?
追加で質問なのですが、
ch.img=(ch.cnt%24)/6; の部分は4種類の番号をループさせているのであれば
ch.img=(ch.cnt%4);ではだめなんでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: 初歩的な質問ですみません。
(ch.cnt%4)だと1フレームごとに番号が変わります。EKISUKE さんが書きました:なるほど回答有難うございます。
追加で質問なのですが、
ch.img=(ch.cnt%24)/6; の部分は4種類の番号をループさせているのであれば
ch.img=(ch.cnt%4);ではだめなんでしょうか?
(ch.cnt%24)/6だと6フレーム毎に変わります。
つまり(ch.cnt%4)だとせわしなく早送り的にコマが切り替わります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。