ページ 11

斜め移動について

Posted: 2009年10月20日(火) 03:58
by sisi
はじめまして。
今回質問させていただきたいのは斜め移動についてです。
色々サイトを見て回ったのですがどのサイトでも斜め移動は基本の移動を3や4といった
数で移動していました私の作ろうとしているのが動きが遅いものがいいので
0.5などの移動幅にして遅く動かしたいのですが
画像を持ってくる
int DrawGraph( int x, int y, int GrHandle, int TransFlag ) ;
という宣言はint方ということは小数点を使うのは出来ないのでしょうか?

Re:斜め移動について

Posted: 2009年10月20日(火) 05:54
by Ma
スクリーンはピクセルのあつまりで、そのピクセルとピクセルの間に描画することは不可能です。

結論からいうと、少数の位置に描画はできません。

単純に動きを遅くしたいならば、double (少数型)を利用するか、int 型で、1ピクセルあたり100と変換させることで対応できます。

後者なら、こんな感じで

int x_val = 2550;// 25.5ピクセル
int y_val = 520;// 5.2ピクセル
DrawGraph( x_val/100, y_val/100, GrHandle, FALSE) ; // x = 25, y = 5 に描画される。

こうすると、変化量が1フレームあたり0.5ピクセルのときも、
50/100 つまり、値には 50 を加算する事でゆっくりな動きにできます。


ただし、double を使おうが int を使おうが、ピクセル単位での描画しかできないので、変化量がとても少なくなると、減れば減るだけ動きがかくかくになってきます。

(これも、2ピクセル間においての二箇所を1回ずつにわけて透明度を計算し描画することで対応とかできるかもしれませんが、コードが少しだけ難しくなってきます。いや、でもだぶるから見た目が悪くなるかな。)

Re:斜め移動について

Posted: 2009年10月20日(火) 21:33
by Justy

>int DrawGraph( int x, int y, int GrHandle, int TransFlag ) ;
>という宣言はint方ということは小数点を使うのは出来ないのでしょうか?

 DrawGraphFってのがありますよ。
 引数は DxLib.hを参照すれば判りますが、座標が floatになっただけです。

Re:斜め移動について

Posted: 2009年10月21日(水) 02:09
by sisi
どうもご指摘ありがとうございます
おかげで思い通りの動きをすることが出来ました。