ページ 11

傾けながら移動の計算

Posted: 2012年11月21日(水) 05:20
by cardinal
DirectXのDrawModiGraphを使用して、
88*70の画像を、15回繰り返した後抜けるループの中で、左へ90度傾けながら指定位置まで移動するようにしたいのですが、
計算をどうすればいいか分かりません。
指定座標は左上が(637,464)で、この時点の右上が(612,376)に来るようにしたいです。
下は一応の作りかけの一部です

for(int j=1;j<=15;j--){
      ClearDrawScreen();
      if(j<15){
            DrawModiGraph(
            637-(637-612)*j/15,464+(464-376)*j/15,
            637+88-(637-612)*j/15,464+(464-376)*j/15,
            637+88-(637-612)*j/15,464+70+(464-376)*j/15,
            637-(637-612)*j/15,464+70+(464-376)*j/15,
            img,false);//回転の計算も加える
      }else if(j==15){
            DrawModiGraph(
            612,376+70,
            612,376,
            612+88,376,
            612+88,376+70,
            img,false);
      }//回転移動後の座標
      ScreenFlip();
}

Re: 傾けながら移動の計算

Posted: 2012年11月21日(水) 10:47
by softya(ソフト屋)
codeタグをご利用ください。 フォーラムルールに記載されています。 http://dixq.net/board/board.html
あとDirectXを直接ではなくDXライブラリですよね?

それと「補足資料.11章 書いてはいけない4つの処理」に該当してしまっています。
http://dixq.net/g/h_11.html

さて質問の件ですが、開始位置と終了位置が決まっているのなら間をフレーム数で求めるのが誤差を出さない方法となります。

Xだけ説明しますが、
開始点:X1
終了点:X2
フレーム数:15
現在のフレーム数:a
x = (X2-X1)/15*a+X1

Re: 傾けながら移動の計算

Posted: 2012年11月21日(水) 16:41
by cardinal
解決できました!
ありがとうございます。
書いてはいけない4つの処理のほうも直していきます…