現在、龍神録プログラミングの館を利用して、
ゲームプログラミングの勉強をしております。
ところで、9章で思わぬ壁にぶつかってしまいました。
9章までの通りに、プログラミングを書いたのですが、
実行してみると、二つの問題が起こりました。
① 横に動く時に比べて、縦に動く時の方がスピードが遅い。
② 動ける範囲を飛び出しても、なぜか速度が落ちるだけで、
一向に止まってくれない。(横に動いた時だけ)
何が原因でしょう?
また、プログラミングが間違っているのだとしたら、どういう間違いが考えられますか?
よろしくお願いします。
龍神録プログラミング9章の謎
Re:龍神録プログラミング9章の謎
>>i.k.l.さん
>①横に動く時に比べて、縦に動く時の方がスピードが遅い。
移動処理自体が間違っているか、移動速度の値が、X, Yで異なっているのだと思います。
もう一度、移動処理はあっているのか、移動時に使っている変数の中身が正しい値か確認してみて下さい。
>②動ける範囲を飛び出しても、なぜか速度が落ちるだけで、
>一向に止まってくれない。(横に動いた時だけ)
これも①と同じ症状が原因ではないかな~と思います。
正しく座標制御出来ているか確認してみて下さい。
具体的にどのような移動処理を行っているか分からないので、
i.k.l.さん御自身で解決できないのであれば、コードをアップしてみると回答が得やすいかもしれません。
>①横に動く時に比べて、縦に動く時の方がスピードが遅い。
移動処理自体が間違っているか、移動速度の値が、X, Yで異なっているのだと思います。
もう一度、移動処理はあっているのか、移動時に使っている変数の中身が正しい値か確認してみて下さい。
>②動ける範囲を飛び出しても、なぜか速度が落ちるだけで、
>一向に止まってくれない。(横に動いた時だけ)
これも①と同じ症状が原因ではないかな~と思います。
正しく座標制御出来ているか確認してみて下さい。
具体的にどのような移動処理を行っているか分からないので、
i.k.l.さん御自身で解決できないのであれば、コードをアップしてみると回答が得やすいかもしれません。
Re:龍神録プログラミング9章の謎
BEMANIさんの回答以上の事は言えませんが、キー入力は正常に判断しているみたいなので、赤文字部分の値が間違ってるのではないかと思います。
②に関しては青部分の判断に不十分があるか、単に間違ってるのではないでしょうか
double x,y,mx,my,naname=1; ・ ・ ・ ・ for(int i=0;i<4;i++){//4方向分ループ if(inputpad>0){//i方向のキーボード、パッドどちらかの入力があれば x=ch.x , y=ch.y;//今の座標をとりあえずx,yに格納 mx=move_x; my=move_y;//移動分をmx,myに代入 if(CheckStatePad(configpad.slow)>0){//低速移動なら mx=move_x/3; my=move_y/3;//移動スピードを1/3に } x+=mx/naname , y+=my/naname;//今の座標と移動分を足す if(!(x<10 || x>FIELD_MAX_X-10 || y<5 || y>FIELD_MAX_Y-5)){//計算結果移動可能範囲内なら ch.x=x , ch.y=y;//実際に移動させる } } }
②に関しては青部分の判断に不十分があるか、単に間違ってるのではないでしょうか