龍神録の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: 主人公の移動について
このコードでいうところの50,36(剰余を取るときに割る数)と5,6(剰余を取った後に割る数)をそれぞれch_tのメンバにし、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;
}
で動かしたいのですが、全くうまくいきません。
ch_move関数で移動しているかどうかに応じてこのメンバを変化させる、というのはどうでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 主人公の移動について
それぞれch_tのメンバにする、というのは分かりますが、
ch_move関数で移動しているかどうかに応じてこのメンバを変化させる、というやり方をさらに詳しく、プログラムを書けとは言いませんがさらに詳しく教えていただけませんでしょうか?
ch_move関数で移動しているかどうかに応じてこのメンバを変化させる、というやり方をさらに詳しく、プログラムを書けとは言いませんがさらに詳しく教えていただけませんでしょうか?
Re: 主人公の移動について
例えばch_tに画像の枚数img_numと画像の切り替え周期anim_intervalを追加したとします。twiin さんが書きました:ch_move関数で移動しているかどうかに応じてこのメンバを変化させる、というやり方をさらに詳しく、プログラムを書けとは言いませんがさらに詳しく教えていただけませんでしょうか?
このとき、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;
}
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を調整する必要があるかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)