0

私は現在、ブロックを構築してノックダウンするプログラムを作成しています。シンプルだけど楽しいです。私はかなり遠くまで行きましたが、障害にぶつかりました。

これまでのところ、クリックすると、別のブロックまたは地面のいずれかで、見ている位置にブロックが作成されるようになっています。これは、カメラからのレイトレーシングを使用し、レイと他のオブジェクトとの衝突から作成されたVector3Fにブロックを作成することで実現されます。私ができないのは、Vector3Fを丸めて、数値がすべて1桁の整数になるようにすることです。誰かがこれを達成する方法を知っていますか?

4

1 に答える 1

3

Math.round() を使用できます: http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#round(float)

例:
1:

// It will round the floats in Vector3F and leave the results as floats
Vector3F vect = new Vector3F(2.3f, 1.114124f, 0f);
vect.x = Math.round(vect.x); // 2f
vect.y = Math.round(vect.x); // 1f
vect.z = Math.round(vect.x); // 0f

2:

// It will round the floats in Vector3F and leave the results as ints
Vector3F vect = new Vector3F(2.3f, 1.114124f, 0f);
int x = Math.round(vect.x);
int y = Math.round(vect.x);
int z = Math.round(vect.x);

詳細情報もあります: How to convert float to int with Java

于 2012-09-18T14:20:42.910 に答える