こんにちは、こんばんは。
今回、いっきに二つ質問させて頂くのでとても長くなってしまうことを、先に言わせて頂きます。
CもSTGもヘタレ(初心者)なワタクシですが、自分で描いた「一枚絵」の自機を表示させながら龍神録を進めている途中の、『7章』と『9章』で困っています。
~ソースコードの変更点~
自機は、
LoadDivGraph( "../dat/img/char/555[1].png" , 1 , 1 , 1 , 44 , 91 , img_ch[0] ) ;
で表示しています。
「GV.h」を
//画像用変数宣言部
GLOBAL int img_ch[1][1]; //「img_ch[2][12]」を「img_ch[1][1]」に
と変更。
また、「char.cpp」内「void calc_ch()」も、
void calc_ch(){
ch.cnt++;
ch.img=(ch.cnt%24)/24; //「(ch.cnt%24)/6;」を「(ch.cnt%24)/24;」に
の様にしてます。
これは、「void calc_ch()」を消すと、自機が点滅してしまうからです。
更に、同じ「char.cpp」内「void ch_move()」の、
if(CheckStatePad(configpad.left)>0)//左キーが押されていたら
ch.img+=4*2;//画像を左向きに
else if(CheckStatePad(configpad.right)>0)//右キーが押されていたら
ch.img+=4*1;//画像を右向き
は"消して"います。一枚絵なので右向きとかはありませんからね。
と、以上の点が龍神録のソースと違うところです。
他には~、無いと思ってますが、発見しだい報告します。
で、実際の困っている事ですが。
7章は「defile.h」の、
//フィールドの広さ
#define FIELD_MAX_X 384
#define FIELD_MAX_Y 448
//フィールドの左上の座標
#define FIELD_X 32
#define FIELD_Y 16
の部分の話だと思うのですが。ここで出てきた問題が、
「縦は平気なのですが、横の場合は『領域が設定されてないのか、横移動すると自機が画面外に出て行って表示されなくなって』しまう」
と更に、もう一つ。
「右に移動して、右側のボードと自機が触れ合うぐらいになると、『縦に移動できなくなって』しまう」
のです。
そして9章。
こちらは"低速移動"の時に、
「縦に移動する際のスピードが極端に遅くなる」
のと
「高速移動時に比べて、斜め移動する際の角度が少なくってしまっている」
が問題となっています。
下の問題は。たとえば高速移動時に斜めに「45度」移動しているとすると、低速移動時の場合は「30度」の方向に進んでしまっている。という感じです。
妙に長い上に読みにくく、稚拙な文章ですみませんでした。
ソースコードは何度も見直したり見比べたりしているので、写し間違い等は無いと思います。
なにとぞよろしくお願いします。
改造龍神録:7章『フィールドの広さ』と9章『低速移動時』にて
Re:改造龍神録:7章『フィールドの広さ』と9章『低速移動時』にて
char.cppのvoid calc_ch()
if(CheckStatePad(configpad.left)>0)//左が押されていたら
ch.x-=3;//座標を左に
if(CheckStatePad(configpad.right)>0)//右が押されていたら
ch.x+=3;//座標を右に
を消しましょう
消してあるのであればもう一度ch_moveを見直してください
特に最後のfor文を。
if(CheckStatePad(configpad.left)>0)//左が押されていたら
ch.x-=3;//座標を左に
if(CheckStatePad(configpad.right)>0)//右が押されていたら
ch.x+=3;//座標を右に
を消しましょう
消してあるのであればもう一度ch_moveを見直してください
特に最後のfor文を。