package framework.test; import java.awt.Component; import java.awt.event.KeyEvent; import java.util.ArrayList; import javax.media.j3d.BoundingSphere; import javax.media.j3d.BranchGroup; import javax.media.j3d.Clip; import javax.media.j3d.DirectionalLight; import javax.media.j3d.Transform3D; import javax.vecmath.Color3f; import javax.vecmath.Point3d; import javax.vecmath.Vector3d; import javax.vecmath.Vector3f; import fight3D.Character; import fight3D.CharacterManager; import fight3D.Player; import fight3D.Stage; import fight3D.StageManager; import fight3D.Weapon; import framework.RWT.RWTFrame3D; import framework.RWT.RWTCanvas3D; import framework.model3D.Model3D; import framework.model3D.ModelFactory; import framework.model3D.Object3D; import framework.model3D.Position3D; import framework.model3D.Quaternion3D; import framework.model3D.Universe; import framework.physics.Ground; import framework.physics.Velocity3D; import framework.view3D.Camera3D; public class TestPhysics { public TestPhysics() { // TODO Auto-generated constructor stub RWTFrame3D frame = new RWTFrame3D(); RWTCanvas3D canvas = new RWTCanvas3D(); frame.add(canvas); Model3D model = ModelFactory.loadModel("data\\cube2.3ds"); Object3D obj = model.createObject(); Transform3D s = new Transform3D(); obj.children[0].scale.setTransform(s); Universe universe = new Universe(); DirectionalLight light = new DirectionalLight(true, new Color3f(1.0f, 1.0f, 1.0f), new Vector3f(0.0f, 0.0f, -1.0f)); light.setInfluencingBounds(new BoundingSphere(new Point3d(), 500.0)); universe.placeLight(light); universe.place(obj); frame.setSize(720, 480); frame.setVisible(true); // プレイヤーの設定 Character c = CharacterManager.getInstance().getCharacter(0); Player p = new Player(c); universe.place(p); // 飛び道具の設定 Weapon w = new Weapon(c.getWeaponModel(), p, 0); universe.place(w); w.body.apply(new Velocity3D(-5.0, 0.0, 0.0), false); w.body.apply(new Quaternion3D(), false); // ステージの設定 Stage stage = StageManager.getInstance().getStage(0); Object3D stageObject = stage.getModel().createObject(); Ground stageGround = new Ground(stageObject); universe.place(stageGround); // カメラの設定 Camera3D camera = new Camera3D(universe); camera.addTarget(p.body); camera.addTarget(w.body); canvas.attachCamera(camera); // 表示 universe.compile(); // Solid3D solid = new Solid3D(obj); Position3D applicationPoint = new Position3D(10, 10, 10); for (;;) { try { Thread.sleep(17); camera.adjust(17); w.motion(17, stageGround); // Force3D f = PhysicsFacade.getGravity(solid); // solid.move(17, f, applicationPoint); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static void main(String[] args) { new TestPhysics(); } }