傾けながら移動の計算

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

傾けながら移動の計算

#1

投稿記事 by cardinal » 13年前

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();
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 13年前

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
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

cardinal

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

#3

投稿記事 by cardinal » 13年前

解決できました!
ありがとうございます。
書いてはいけない4つの処理のほうも直していきます…

閉鎖

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