ページ 1 / 1
主人公の移動について
Posted: 2015年8月11日(火) 14:08
by atci98
龍神録の9章までしてみて章には関係の無い事ですが、主人公の画像は止まってる時も動いてる時画像が常に動いていますよね。
その画像を、自分なりに作ってみまして、7章のプログラムをいじり、止まっている時と動いている時の画像を作ってみました。
そのことに関して、7章のmain.cppにある「calc.ch();」をそれぞれ別の速さで動かしたく、止まっている時(画像は5枚)は
void calc_ch(){
img_ch,ch.cnt++,ch.img=(ch.cnt%50)/10;
}
で動かし、走る(画像は6枚)と
void calc_ch(){
img_ch,ch.cnt++,ch.img=(ch.cnt%36)/6;
}
で動かしたいのですが、全くうまくいきません。
10章にある、「敵の動きを制御する」の中にあるプログラムを使えば出来そうですが、主人公の動きなのでなるたけ9章までのプログラムをいじって出来ませんでしょうか?
Re: 主人公の移動について
Posted: 2015年8月11日(火) 17:30
by みけCAT
twiin さんが書きました:止まっている時(画像は5枚)は
void calc_ch(){
img_ch,ch.cnt++,ch.img=(ch.cnt%50)/10;
}
で動かし、走る(画像は6枚)と
void calc_ch(){
img_ch,ch.cnt++,ch.img=(ch.cnt%36)/6;
}
で動かしたいのですが、全くうまくいきません。
このコードでいうところの50,36(剰余を取るときに割る数)と5,6(剰余を取った後に割る数)をそれぞれch_tのメンバにし、
ch_move関数で移動しているかどうかに応じてこのメンバを変化させる、というのはどうでしょうか?
Re: 主人公の移動について
Posted: 2015年8月13日(木) 16:22
by atci98
それぞれch_tのメンバにする、というのは分かりますが、
ch_move関数で移動しているかどうかに応じてこのメンバを変化させる、というやり方をさらに詳しく、プログラムを書けとは言いませんがさらに詳しく教えていただけませんでしょうか?
Re: 主人公の移動について
Posted: 2015年8月13日(木) 16:42
by みけCAT
twiin さんが書きました:ch_move関数で移動しているかどうかに応じてこのメンバを変化させる、というやり方をさらに詳しく、プログラムを書けとは言いませんがさらに詳しく教えていただけませんでしょうか?
例えばch_tに画像の枚数img_numと画像の切り替え周期anim_intervalを追加したとします。
このとき、calc_chを
コード:
void calc_ch(){
ch.cnt++;
ch.img=ch.anim_interval==0?0:(ch.cnt%(ch.anim_interval*ch.img_num)/ch.anim_interval;
}
として、
9章のch_moveの
コード:
if(sayu_flag==1 && joge_flag==1)//左右、上下両方の入力があれば斜めだと言う事
naname=sqrt(2.0);//移動スピードを1/ルート2に
の後に
コード:
if(sayu_flag==1 || joge_flag==1)//左右、上下どちらかの移動があった
{ch.img_num=6;ch.anim_interval=6;}
else//移動していない
{ch.img_num=5;ch.anim_interval=10;}
という処理を追加すれば切り替えることはできるはずです。(テストはしていません)
ただし、切り換え時につながりが不自然になるかもしれないので、その対策としてch.cntを調整する必要があるかもしれません。
Re: 主人公の移動について
Posted: 2015年8月17日(月) 14:33
by atci98
なんとかなりそうです。
どうもありがとうございました^^