public void Update(TgcD3dInput Input)
        {
            efecto.SetValue("_Time", GameModel.time);
            efecto.SetValue("alturaEnY", GameLogic.cantidadZombiesMuertos * 10);

            #region chequeoDeColision

            //Si hacen clic con el mouse, ver si hay colision RayAABB
            if (Input.buttonPressed(TgcD3dInput.MouseButtons.BUTTON_LEFT))
            {
                pickingRay.updateRay();

                //Testear Ray contra el AABB de todos los meshes
                foreach (var unaPlataforma in plataformas)//.Where(p => !p.ocupado).ToList())
                {
                    var aabb = unaPlataforma.mesh.BoundingBox;

                    //Ejecutar test, si devuelve true se carga el punto de colision collisionPoint
                    selected = TgcCollisionUtils.intersectRayAABB(pickingRay.Ray, aabb, out collisionPoint);
                    if (selected)
                    {
                        plataformaSeleccionada = unaPlataforma;
                        unaPlataforma.mesh.BoundingBox.setRenderColor(Color.LightBlue);
                        break;
                    }
                }
            }
            #endregion
        }
        protected override void Init()
        {
            var loader = new TgcSceneLoader();

            scene = loader.loadSceneFromFile(GameModel.Media + "\\escenarios\\plataformas\\plataformas-TgcScene.xml");

            var scene2 = loader.loadSceneFromFile(GameModel.Media + "\\objetos\\plataforma\\plataforma-TgcScene.xml");

            plataforma1Mesh = scene2.Meshes[0];
            plataforma2Mesh = scene2.Meshes[0];

            plataforma1Mesh.AutoTransform = false;
            plataforma2Mesh.AutoTransform = false;

            plataforma1 = new Plataforma(new TGCVector3(0, 0, 0), plataforma1Mesh, contexto);
            plataforma2 = new Plataforma(new TGCVector3(0, 0, 0), plataforma1Mesh, contexto);

            this.planos = loader.loadSceneFromFile(GameModel.Media + "planos\\plataforma-TgcScene.xml");

            planoIzq = this.planos.getMeshByName("planoIzq");
            planoIzq.AutoTransform = false;

            planoDer = this.planos.getMeshByName("planoDer");
            planoDer.AutoTransform = false;

            planoPiso = this.planos.getMeshByName("planoPiso");
            planoPiso.AutoTransform = false;

            planoFront = this.planos.getMeshByName("planoFin");
            planoFront.AutoTransform = false;

            planoBack = this.planos.getMeshByName("planoInicio");
            planoBack.AutoTransform = false;
        }
        public static Planta crearSuperCanion(TGCVector3 posicion, GameLogic logica, Plataforma plataforma)
        {
            Planta superCanion = new SuperCanion(posicion, logica, plataforma);

            superCanion.body = FactoryBody.crearBodyPlanta(new TGCVector3(20, 15, 5), posicion);

            superCanion.callback = new CollisionCallbackFloor(logica, superCanion);
            logica.addBulletObject(superCanion);
            return(superCanion);
        }
        public static Planta crearNuez(TGCVector3 posicion, GameLogic logica, Plataforma plataforma)
        {
            Planta nuez = new Nuez(posicion, logica, plataforma);

            nuez.body = FactoryBody.crearBodyPlanta(new TGCVector3(25, 15, 15), posicion);

            nuez.callback = new CollisionCallbackFloor(logica, nuez);
            logica.addBulletObject(nuez);
            return(nuez);
        }
        public static Planta crearMina(TGCVector3 posicion, GameLogic logica, Plataforma plataforma)
        {
            Planta mina = new Mina(posicion, logica, plataforma);

            mina.body = FactoryBody.crearBodyPlanta(new TGCVector3(20, 15, 5), posicion);

            mina.callback = new CollisionCallbackFloor(logica, mina);
            logica.addBulletObject(mina);
            return(mina);
        }
        public static Planta crearChile(TGCVector3 posicion, GameLogic logica, Plataforma plataforma)
        {
            Planta chile = new Chile(posicion, logica, plataforma);

            chile.body = FactoryBody.crearBodyPlanta(new TGCVector3(20, 15, 5), posicion);

            chile.callback = new CollisionCallbackFloor(logica, chile);
            logica.addBulletObject(chile);
            return(chile);
        }
        public static Planta crearGirasol(TGCVector3 posicion, GameLogic logica, Plataforma plataforma)
        {
            Planta girasol = new Girasol(posicion, logica, plataforma);

            girasol.body = FactoryBody.crearBodyPlanta(new TGCVector3(20, 15, 1), posicion);

            girasol.callback = new CollisionCallbackFloor(logica, girasol);
            logica.addBulletObject(girasol);
            return(girasol);
        }