Loading src/main/java/bouncingshape/Jme.javadeleted 100644 → 0 +0 −45 Original line number Diff line number Diff line package bouncingshape; import com.jme3.bullet.collision.shapes.CollisionShape; import com.jme3.bullet.collision.shapes.MeshCollisionShape; import com.jme3.bullet.control.RigidBodyControl; import com.jme3.math.Vector3f; import com.jme3.scene.Mesh; import com.jme3.scene.VertexBuffer; import com.jme3.util.BufferUtils; public class Jme{ public static Mesh createMesh(Vector3D[] vertices, int[] indices) { Mesh mesh = new Mesh(); // 创建用于存储 Vector3f 的数组 Vector3f[] jmeVertices = new Vector3f[vertices.length]; for (int i = 0; i < vertices.length; i++) { // 将 Vector3D 转换为 Vector3f jmeVertices[i] = new Vector3f(vertices[i].x, vertices[i].y, vertices[i].z); } // 设置顶点位置 mesh.setBuffer(VertexBuffer.Type.Position, 3, BufferUtils.createFloatBuffer(jmeVertices)); // 设置三角形索引 mesh.setBuffer(VertexBuffer.Type.Index, 3, BufferUtils.createIntBuffer(indices)); // 更新网格边界和网格数量信息 mesh.updateBound(); mesh.updateCounts(); return mesh; } public static RigidBodyControl setupPhysics(Mesh mesh) { // 创建碰撞形状 CollisionShape collisionShape = new MeshCollisionShape(mesh); // 创建刚体控制器,参数为物体的质量(例如1.0表示动态物体) RigidBodyControl rigidBodyControl = new RigidBodyControl(collisionShape, 1.0f); return rigidBodyControl; } } Loading
src/main/java/bouncingshape/Jme.javadeleted 100644 → 0 +0 −45 Original line number Diff line number Diff line package bouncingshape; import com.jme3.bullet.collision.shapes.CollisionShape; import com.jme3.bullet.collision.shapes.MeshCollisionShape; import com.jme3.bullet.control.RigidBodyControl; import com.jme3.math.Vector3f; import com.jme3.scene.Mesh; import com.jme3.scene.VertexBuffer; import com.jme3.util.BufferUtils; public class Jme{ public static Mesh createMesh(Vector3D[] vertices, int[] indices) { Mesh mesh = new Mesh(); // 创建用于存储 Vector3f 的数组 Vector3f[] jmeVertices = new Vector3f[vertices.length]; for (int i = 0; i < vertices.length; i++) { // 将 Vector3D 转换为 Vector3f jmeVertices[i] = new Vector3f(vertices[i].x, vertices[i].y, vertices[i].z); } // 设置顶点位置 mesh.setBuffer(VertexBuffer.Type.Position, 3, BufferUtils.createFloatBuffer(jmeVertices)); // 设置三角形索引 mesh.setBuffer(VertexBuffer.Type.Index, 3, BufferUtils.createIntBuffer(indices)); // 更新网格边界和网格数量信息 mesh.updateBound(); mesh.updateCounts(); return mesh; } public static RigidBodyControl setupPhysics(Mesh mesh) { // 创建碰撞形状 CollisionShape collisionShape = new MeshCollisionShape(mesh); // 创建刚体控制器,参数为物体的质量(例如1.0表示动态物体) RigidBodyControl rigidBodyControl = new RigidBodyControl(collisionShape, 1.0f); return rigidBodyControl; } }