私はいくつかの簡単な2Dゲームプログラミングを練習しており、アニメーション中には(画像位置の実際の変化は浮動小数点数で最もよく計算される)という理論を思いつきました。私はintを使ってイメージを動かすと、アニメーションが滑らかにならないという気持ちがあります。double(またはfloat)をintに変換するとどうなりますか?
Javaでは、浮動小数点数を使って画像を描画して、画像に位置を与えることはできないようです。しかし、最初にあなたがxとyと宣言したときに、それらをDoubleまたはFloatとして宣言することができます。実際に画像を描画するには、それらをintにキャストする必要があります。私のように見つけるHERE:
/**
* Draw this entity to the graphics context provided
*
* @param g The graphics context on which to draw
*/
public void draw(Graphics g) {
sprite.draw(g,(int) x,(int) y);
}
私の質問はどのように変換を処理するのですか? コードがこれらのダブルスを最後にキャストした場合、なぜそれらを最初に倍にするのでしょうか? Javaは10進数の後に数字を隠しますか?
私はCとC++で小数点以下の数字が切り捨てられ、その前に何が表示されるのか分かります。 Javaはこのキャストをどのように処理しますか?
ちょうどC、C++と同じ小数点以下を削除します。 http://www.fluffycat.com/Java/Casting/ – dmcnelis
できるだけ2倍の計算が必要です。最後にintを受け入れるメソッドに渡すと、Math.round()が実行されます。 – Stephan