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: 傾けながら移動の計算
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
あとDirectXを直接ではなくDXライブラリですよね?
それと「補足資料.11章 書いてはいけない4つの処理」に該当してしまっています。
http://dixq.net/g/h_11.html
さて質問の件ですが、開始位置と終了位置が決まっているのなら間をフレーム数で求めるのが誤差を出さない方法となります。
Xだけ説明しますが、
開始点:X1
終了点:X2
フレーム数:15
現在のフレーム数:a
x = (X2-X1)/15*a+X1
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。