ページ 11

改造龍神録:7章『フィールドの広さ』と9章『低速移動時』にて

Posted: 2009年11月21日(土) 17:15
by 藍霧00
こんにちは、こんばんは。
今回、いっきに二つ質問させて頂くのでとても長くなってしまうことを、先に言わせて頂きます。


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度」の方向に進んでしまっている。という感じです。




妙に長い上に読みにくく、稚拙な文章ですみませんでした。

ソースコードは何度も見直したり見比べたりしているので、写し間違い等は無いと思います。


なにとぞよろしくお願いします。

Re:改造龍神録:7章『フィールドの広さ』と9章『低速移動時』にて

Posted: 2009年11月22日(日) 01:17
by ROM
char.cppのvoid calc_ch()
if(CheckStatePad(configpad.left)>0)//左が押されていたら
ch.x-=3;//座標を左に
if(CheckStatePad(configpad.right)>0)//右が押されていたら
ch.x+=3;//座標を右に
を消しましょう
消してあるのであればもう一度ch_moveを見直してください
特に最後のfor文を。

Re:改造龍神録:7章『フィールドの広さ』と9章『低速移動時』にて

Posted: 2009年11月22日(日) 23:38
by 藍霧00
おお!!

両方とも解決しました。ありがとうございます。

これで先に進めます。