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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
藍霧00

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

#1

投稿記事 by 藍霧00 » 15年前

こんにちは、こんばんは。
今回、いっきに二つ質問させて頂くのでとても長くなってしまうことを、先に言わせて頂きます。


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




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

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


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

ROM

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

#2

投稿記事 by ROM » 15年前

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

藍霧00

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

#3

投稿記事 by 藍霧00 » 15年前

おお!!

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

これで先に進めます。

閉鎖

“C言語何でも質問掲示板” へ戻る