ページ 1 / 1
館9章において
Posted: 2014年8月04日(月) 15:01
by yusha
コード:
double x, y, mx, my, naname = 1;
にて=1となる理由がわかりません。
Re: 館9章において
Posted: 2014年8月04日(月) 15:03
by みけCAT
それは残念ですね。
質問はありますか?
Re: 館9章において
Posted: 2014年8月04日(月) 15:06
by yusha
なぜ=1となるのか教えていただけますか?
=0とすると斜め移動しかできなくなるのですが、そこでなぜ1という数字を使ったのか理解できません。
Re: 館9章において
Posted: 2014年8月04日(月) 15:07
by みけCAT
「ch.cnt++」でなぜカウントを1ずつ加算していくのかと同様に、
2とか0.5とかにするより1にしたほうがわかりにくくなったり冗長になったりせず、最適だから1にしたのだと思います。
別に=1.0と書いてもいい気がします。
Re: 館9章において
Posted: 2014年8月04日(月) 15:10
by yusha
ですが、2やその他の数にすると移動速度が変わったりするので、何か理由があるものと考えています。
また、0だとなぜ移動に制限がかかるのかも理解できません。
Re: 館9章において
Posted: 2014年8月04日(月) 15:17
by みけCAT
yusha さんが書きました:ですが、2やその他の数にすると移動速度が変わったりするので、何か理由があるものと考えています。
8.0/2.0でも4.0/1.0でも同じ4.0という数字がでるので、
わざわざ8.0/2.0を計算するより4.0という数字を最初から用意し、
補正の必要がないときは4.0/1.0で4.0を出す、というのがわかりやすいからだと思います。
これはyushaさんにとって「理由」ではないのですか?
yusha さんが書きました:また、0だとなぜ移動に制限がかかるのかも理解できません。
4.0/0.0はinfなので、座標にinfを足したらinfになります。
その結果座標は画面外になるので、更新されません。
Re: 館9章において
Posted: 2014年8月04日(月) 15:29
by yusha
これは
コード:
x += mx / naname, y += my / naname;
でのことのことですよね?
Re: 館9章において
Posted: 2014年8月04日(月) 15:39
by みけCAT
yusha さんが書きました:これは
コード:
x += mx / naname, y += my / naname;
でのことのことですよね?
多分そうだと思います。
Re: 館9章において
Posted: 2014年8月04日(月) 15:51
by yusha
そう考えると理解できた気がします。
ありがとうございました。