Ejemplo n.º 1
0
        public void StepTest3()
        {
            Scene scene = new Scene();
            Portalable p = new Portalable(scene);
            Transform2 start = new Transform2(new Vector2(0, 0));
            Transform2 velocity = Transform2.CreateVelocity(new Vector2(3, 0));
            p.SetTransform(start);
            p.SetVelocity(velocity);

            //Scene scene = new Scene();
            FloatPortal enter = new FloatPortal(scene);
            enter.SetTransform(new Transform2(new Vector2(1, 0)));
            enter.SetVelocity(Transform2.CreateVelocity(new Vector2(1, 0)));

            FloatPortal exit = new FloatPortal(scene);
            exit.SetTransform(new Transform2(new Vector2(10, 10)));

            enter.Linked = exit;
            exit.Linked = enter;

            PortalCommon.UpdateWorldTransform(new IPortalCommon[] { p, enter, exit });
            SimulationStep.Step(new IPortalCommon[] { p, enter, exit }, new IPortal[] { enter, exit }, 1, null);

            /*Assert.IsTrue(p.WorldTransform.Position == new Vector2(9, 10));
            Assert.IsTrue(p.WorldVelocity.Position == new Vector2(-2, 0));*/
            Assert.IsTrue(p.GetTransform().Position == new Vector2(9, 10));
            Assert.IsTrue(p.GetVelocity().Position == new Vector2(-2, 0));
        }
Ejemplo n.º 2
0
    void GenerateNewPortalSet()
    {

        GameObject newSource = GameObject.Instantiate(PortalPrefab);
        GameObject newDestination = GameObject.Instantiate(PortalPrefab);
        GameObject newPortalable = GameObject.Instantiate(PortalablePrefab);
        
        Vector3[] trajectory = GenerateNewTrajectory();

        newSource.transform.position = trajectory[0];
        newSource.transform.LookAt(trajectory[1]);
        Portal src = newSource.AddComponent<Portal>();
        src.isSource = true;
        src.lifespan = trajectory[3].x;

        newDestination.transform.position = trajectory[1];
        newDestination.transform.LookAt(trajectory[0]);
        Portal dst = newDestination.AddComponent<Portal>();
        dst.isSource = false;
        dst.lifespan = trajectory[3].x;

        newPortalable.transform.position = trajectory[0];
        Portalable prt = newPortalable.AddComponent<Portalable>();
        
        Rigidbody body = newPortalable.AddComponent<Rigidbody>(); 
        body.velocity = trajectory[2];
        body.drag = 0;
        body.isKinematic = false;
        body.angularDrag = 0;
        body.mass = 1;
        body.useGravity = false;
        
    }
Ejemplo n.º 3
0
        public void StepTest0()
        {
            Scene scene = new Scene();
            Portalable p = new Portalable(scene);
            Transform2 start = new Transform2(new Vector2(1, 5), 2.3f, 3.9f);
            Transform2 velocity = Transform2.CreateVelocity(new Vector2(-3, 4), 23, 0.54f);
            p.SetTransform(start);
            p.SetVelocity(velocity);
            PortalCommon.UpdateWorldTransform(new IPortalCommon[] { p });
            SimulationStep.Step(new IPortalCommon[] { p }, new IPortal[0], 1, null);

            Assert.IsTrue(p.GetTransform().AlmostEqual(start.Add(velocity)));
        }
Ejemplo n.º 4
0
 public Vector2 GetMouseWorldPortal(IEnumerable<IPortal> portals)
 {
     if (Level == null)
     {
         return Vector2.Zero;
     }
     if (!Renderer.PortalRenderEnabled)
     {
         return GetMouseWorld();
     }
     Transform2 transform = CameraExt.GetWorldViewpoint(Level.ActiveCamera);
     Vector2 mousePos = CameraExt.ScreenToWorld(Level.ActiveCamera, Input.MousePos, Vector2Ext.ToOtk(CanvasSize));
     Portalable portalable = new Portalable(null, transform, Transform2.CreateVelocity(mousePos - transform.Position));
     Ray.RayCast(portalable, Level.GetPortalList(), new Ray.Settings());
     return portalable.GetTransform().Position;
 }