Exemple #1
0
    public Scene()
    {
        color = new float[] { 1.0f, 0.0f, 0.0f };
            activeRotateVector = new double[3]{1, 0, 0};
            bomon=true;
            ambon=true;
            cam=new Camara();
            cz=0;
            first=true;

            Gl.glEnable(Gl.GL_LIGHTING);
            //Gl.glEnable(Gl.GL_COLOR_MATERIAL);

            SituaBomb();
            SituaLuzAmb();
    }
 void Awake()
 {
     camara = GameObject.FindWithTag("MainCamera").GetComponent <Camara> ();
 }
        /// <summary>
        ///     Se llama en cada frame.
        ///     Se debe escribir toda la lógica de computo del modelo,
        ///     así como también verificar entradas del usuario y reacciones ante ellas.
        /// </summary>
        public override void Update()
        {
            PreUpdate();

            alturaMaximaSalto = posBaseBandicoot + alturaMaximaInicial;
            // Capturar Input teclado utilizado para movimiento
            var anguloCamara = TGCVector3.Empty;
            var movimiento   = TGCVector3.Empty;

            var lastPos = Bandicoot.Position;

            if (Input.keyPressed(Key.F))
            {
                BoundingBox = !BoundingBox;
            }

            // movimiento lateral
            if (Input.keyDown(Key.Left) || Input.keyDown(Key.A))
            {
                movimiento.X = 1;
            }
            else if (Input.keyDown(Key.Right) || Input.keyDown(Key.D))
            {
                movimiento.X = -1;
            }

            //Movernos adelante y atras, sobre el eje Z.
            if (Input.keyDown(Key.Up) || Input.keyDown(Key.W))
            {
                movimiento.Z = -1;
            }
            else if (Input.keyDown(Key.Down) || Input.keyDown(Key.S))
            {
                movimiento.Z = 1;
            }

            //salto
            if (Input.keyPressed(Key.Space) && !saltando)
            {
                saltando       = true;
                direccionSalto = 1;
                //Bandicoot.Move(0, direccionSalto * MOVEMENT_SPEED * ElapsedTime, 0);
            }

            //Posicion original del mesh principal (o sea del bandicoot)
            var originalPos = Bandicoot.Position;

            anguloCamara = Bandicoot.Position;

            //Multiplicar movimiento por velocidad y elapsedTime
            movimiento *= MOVEMENT_SPEED * ElapsedTime;

            //Bandicoot.Move(movimiento);
            Traslation *= TGCMatrix.Translation(movimiento);

            //Bandicoot.Transform = TGCMatrix.Translation(movimiento);

            if (saltando)
            {
                Bandicoot.Move(0, direccionSalto * MOVEMENT_SPEED * ElapsedTime, 0);
                Traslation *= TGCMatrix.Translation(0, direccionSalto * MOVEMENT_SPEED * ElapsedTime, 0);

                //Si la posicion en Y es mayor a la maxima altura.
                if (Bandicoot.Position.Y > alturaMaximaSalto)
                {
                    direccionSalto = -1;
                }
                foreach (var item in ListaMeshes)
                {
                    if (TgcCollisionUtils.testAABBAABB(Bandicoot.BoundingBox, item.Malla.BoundingBox))
                    {
                        if (!item.EsFruta())
                        {
                            //Bandicoot.Transform = TGCMatrix.Translation(-movimiento.X, movimiento.Y / 2 + ((item.Malla.BoundingBox.PMax.Y / 2) + 1), -movimiento.Z);
                            //movimiento = new TGCVector3(0, 1 * MOVEMENT_SPEED * ElapsedTime + 0.1f, 0); ;
                            //Bandicoot.Move(0, 1 * MOVEMENT_SPEED * ElapsedTime + 0.1f, 0);

                            //item.ExecuteCollision(Bandicoot,Camara,movimiento);
                            if (item.isUpperCollision(Bandicoot, posBaseBandicoot))
                            {
                                Bandicoot.Position = new TGCVector3(Bandicoot.Position.X, item.Malla.BoundingBox.PMax.Y + 0.05f, Bandicoot.Position.Z);

                                posBaseBandicoot = item.Malla.BoundingBox.PMax.Y;
                            }
                            objetoColisionado = item;
                            //if (item.isUpperCollision(Bandicoot, posBaseBandicoot))
                            //    item.ExecuteJumpCollision(Bandicoot, Camara, movimiento);
                            saltando = false;
                            break;
                        }
                    }
                }
            }
            else
            {
                if (Bandicoot.Position.Y > posInicialBandicoot && !objetoColisionado.EsFruta())
                {
                    //saltando = false;

                    if (objetoColisionado.isUpperCollision(Bandicoot, posBaseBandicoot) && objetoColisionado.Malla != null)
                    {
                        //Bandicoot.Move(0, 1 * MOVEMENT_SPEED * ElapsedTime + 0.1f, 0);
                        Bandicoot.Position = new TGCVector3(Bandicoot.Position.X, objetoColisionado.Malla.BoundingBox.PMax.Y + 0.05f, Bandicoot.Position.Z);
                        saltando           = true;
                        //var traslacion = new TGCVector3()
                        //movimiento = new TGCVector3(0, 0, MOVEMENT_SPEED * ElapsedTime);
                        objetoColisionado.ExecuteJumpCollision(Bandicoot, Camara, movimiento, MOVEMENT_SPEED * ElapsedTime);
                        // objetoColisionado.tipo.Move(Bandicoot, MOVEMENT_SPEED * ElapsedTime);
                    }
                    else
                    {
                        posBaseBandicoot = posInicialBandicoot;
                    }
                }
            }

            /*
             * foreach (TgcMesh mesh in Parte1)
             * {
             *   if (TgcCollisionUtils.testAABBAABB(Bandicoot.BoundingBox, mesh.BoundingBox))
             *   {
             *
             *      Bandicoot.Move(-movimiento);
             *       Camara.SetCamera((Camara.Position - movimiento), anguloCamara);
             *   }
             *
             * }
             * foreach (TgcMesh mesh in Parte2)
             * {
             *  if (TgcCollisionUtils.testAABBAABB(Bandicoot.BoundingBox, mesh.BoundingBox))
             *  {
             *      Bandicoot.Move(-movimiento);
             *      Camara.SetCamera((Camara.Position - movimiento), anguloCamara);
             *  }
             * }*/

            foreach (var mesh in ListaMeshes)
            {
                if (mesh.Malla.BoundingBox == null)
                {
                    continue;
                }

                if (mesh.Malla.Name.Contains("movingPlatform"))
                {
                    mesh.Move(MOVEMENT_SPEED * ElapsedTime);
                }


                if (TgcCollisionUtils.testAABBAABB(Bandicoot.BoundingBox, mesh.Malla.BoundingBox))
                {
                    //comment = mesh.GetType().ToString();
                    mesh.ExecuteCollision(Bandicoot, Camara, movimiento);
                }
            }
            ListaMeshes.RemoveAll(mesh => mesh.Malla.BoundingBox == null);

            //Desplazar camara para seguir al personaje
            Camara.SetCamera((Camara.Position + movimiento), anguloCamara);

            //Capturar Input Mouse
            if (Input.buttonUp(TgcD3dInput.MouseButtons.BUTTON_LEFT))
            {
                //Como ejemplo podemos hacer un movimiento simple de la cámara.
                //En este caso le sumamos un valor en Y
                Camara.SetCamera(Camara.Position + new TGCVector3(0, 10f, 0), Camara.LookAt);
                //Ver ejemplos de cámara para otras operaciones posibles.

                //Si superamos cierto Y volvemos a la posición original.
                if (Camara.Position.Y > 300f)
                {
                    Camara.SetCamera(new TGCVector3(Camara.Position.X, 0f, Camara.Position.Z), Camara.LookAt);
                }
            }

            if (Input.buttonUp(TgcD3dInput.MouseButtons.BUTTON_RIGHT))
            {
                //Pruebo si baja camara
                Camara.SetCamera(Camara.Position + new TGCVector3(0, -10f, 0), Camara.LookAt);

                //igual que si sube a cierta altura reinicio camara
                if (Camara.Position.Y < -200f)
                {
                    Camara.SetCamera(new TGCVector3(Camara.Position.X, 0f, Camara.Position.Z), Camara.LookAt);
                }
            }

            PostUpdate();
        }
Exemple #4
0
        public override void Init()
        {
            Cursor.Hide();

            Device d3dDevice = D3DDevice.Instance.Device;

            //Cargar Shader personalizado
            string compilationErrors;

            effect = Effect.FromFile(d3dDevice, ShadersDir + "TgcViewer\\TgcSkeletalMeshShader.fx", null, null, ShaderFlags.PreferFlowControl, null, out compilationErrors);
            if (effect == null)
            {
                throw new Exception("Error al cargar shader. Errores: " + compilationErrors);
            }
            //Configurar Technique dentro del shader
            effect.Technique = "DIFFUSE_MAP";

            //Camara en primera persona
            Camara.SetCamera(new TGCVector3(0, 60, 200), new TGCVector3(0, 0, 0));

            //Cargar personaje con animaciones
            TgcSkeletalLoader skeletalLoader = new TgcSkeletalLoader();

            mesh = skeletalLoader.loadMeshAndAnimationsFromFile(MediaDir + "SkeletalAnimations\\BasicHuman\\" + "CombineSoldier-TgcSkeletalMesh.xml", MediaDir + "SkeletalAnimations\\BasicHuman\\", new string[] { MediaDir + "SkeletalAnimations\\BasicHuman\\Animations\\" + "StandBy-TgcSkeletalAnim.xml", MediaDir + "SkeletalAnimations\\BasicHuman\\Animations\\" + "Run-TgcSkeletalAnim.xml", });
            mesh.AutoTransform = true;

            //Configurar animacion inicial
            mesh.playAnimation("StandBy", true);
            mesh.Position  = new TGCVector3(0, -50, 0);
            mesh.Scale     = new TGCVector3(2f, 2f, 2f);
            mesh.Effect    = effect;
            mesh.Technique = "DIFFUSE_MAP";

            // levanto el GUI
            gui.Create(MediaDir);

            // menu principal
            gui.InitDialog(true);
            int W   = D3DDevice.Instance.Width;
            int H   = D3DDevice.Instance.Height;
            int x0  = 70;
            int y0  = 10;
            int dy  = 120;
            int dy2 = dy;
            int dx  = 400;

            gui.InsertMenuItem(ID_ABRIR_MISION, "Abrir Mision", "open.png", x0, y0, MediaDir, dx, dy);
            gui.InsertMenuItem(ID_NUEVA_MISION, "Play", "Play.png", x0, y0        += dy2, MediaDir, dx, dy);
            gui.InsertMenuItem(ID_CONFIGURAR, "Configurar", "navegar.png", x0, y0 += dy2, MediaDir, dx, dy);
            gui.InsertMenuItem(ID_APP_EXIT, "Salir", "salir.png", x0, y0          += dy2, MediaDir, dx, dy);

            // lista de colores
            lst_colores[0]  = Color.FromArgb(100, 220, 255);
            lst_colores[1]  = Color.FromArgb(100, 255, 220);
            lst_colores[2]  = Color.FromArgb(220, 100, 255);
            lst_colores[3]  = Color.FromArgb(220, 255, 100);
            lst_colores[4]  = Color.FromArgb(255, 100, 220);
            lst_colores[5]  = Color.FromArgb(255, 220, 100);
            lst_colores[6]  = Color.FromArgb(128, 128, 128);
            lst_colores[7]  = Color.FromArgb(64, 255, 64);
            lst_colores[8]  = Color.FromArgb(64, 64, 255);
            lst_colores[9]  = Color.FromArgb(255, 0, 255);
            lst_colores[10] = Color.FromArgb(255, 255, 0);
            lst_colores[11] = Color.FromArgb(0, 255, 255);
        }
Exemple #5
0
 private void frmNuevoTrabajador_Load(object sender, EventArgs e)
 {
     c = new Camara(ref pcbImagen, ref cboCamaras);
     CargarPuestos();
     CargarSucursales();
 }
Exemple #6
0
 /// <summary>
 ///     Actualiza la Camara
 /// </summary>
 protected void UpdateView()
 {
     Camara.UpdateCamera(ElapsedTime);
     D3DDevice.Instance.Device.Transform.View = Camara.GetViewMatrix();
 }
Exemple #7
0
        public override void Update()
        {
            PreUpdate();
            var pos = Camara.Position;

            if (pos.X < -2000 || pos.Z < -2000 || pos.X > 0 || pos.Z > 0)
            {
                // reset pos camara
                Camara.SetCamera(new Vector3(-1000, 250, -1000), new Vector3(0, 0, -1));
            }

            //Activar animacion de caminando
            var t = 0;

            foreach (var m in enemigos)
            {
                var dir_escape = m.Position - pos;
                dir_escape.Y = 0;
                var dist = dir_escape.Length();

                if (Math.Abs(dist) < 10)
                {
                    // lo alcance, lo mato
                    bot_status[t] = 99;
                }
                else
                {
                    switch (bot_status[t])
                    {
                    // escondido
                    case 0:
                        if (dist < 400)
                        {
                            // me escapo
                            bot_status[t] = 1;
                        }
                        break;

                    // escapando
                    case 1:
                        if (dist > 1000)
                        {
                            // me esconde
                            bot_status[t] = 0;
                        }
                        break;

                    // perseguir
                    case 2:
                        break;
                    }
                }

                switch (bot_status[t])
                {
                // escondido
                case 0:
                    m.playAnimation("StandBy", true);
                    break;

                // escapando
                case 1:
                    dir_escape.Normalize();
                    m.rotateY((float)Math.Atan2(dir_escape.X, dir_escape.Z) - m.Rotation.Y + 3.1415f);
                    m.move(dir_escape * (vel_bot * ElapsedTime));
                    var X = m.Position.X;
                    var Z = m.Position.Z;
                    if (X < -2000)
                    {
                        X = -1000;
                    }
                    if (X > 0)
                    {
                        X = -1000;
                    }
                    if (Z < -2000)
                    {
                        Z = -1000;
                    }
                    if (Z > 0)
                    {
                        Z = -1000;
                    }
                    m.Position = new Vector3(X, m.Position.Y, Z);
                    m.playAnimation("Run", true, 20);
                    break;

                // persiguiendo
                case 2:
                    dir_escape.Normalize();
                    if (Math.Abs(dir_escape.Z) > 0.01f)
                    {
                        m.rotateY((float)Math.Atan2(dir_escape.X, dir_escape.Z) - m.Rotation.Y);
                        m.move(dir_escape * (-60 * ElapsedTime));
                    }
                    m.playAnimation("Run", true, 20);
                    break;

                case 99:
                    m.rotateZ(3.1415f * 0.5f - m.Rotation.Z);
                    m.playAnimation("StandBy", true);
                    break;
                }
                m.updateAnimation(ElapsedTime);
                ++t;
            }

            var rnd = new Random();

            for (var i = 0; i < cant_balas; ++i)
            {
                timer_firing[i] -= ElapsedTime;
                if (timer_firing[i] < 0)
                {
                    timer_firing[i] += total_timer_firing;
                    pos_bala[i]      = pos + new Vector3(rnd.Next(-10, 10), rnd.Next(-10, 10), rnd.Next(-10, 10));
                    dir_bala[i]      = Camara.LookAt - pos;
                    dir_bala[i].Normalize();
                }
                else
                {
                    pos_bala[i] = pos_bala[i] + dir_bala[i] * (vel_bala * ElapsedTime);
                }
            }
        }
Exemple #8
0
        public ProcesamientoBajoVolumenManifiesto(string codigo,
                                                  int id                       = 0,
                                                  Cliente cliente              = null,
                                                  EmpresaTransporte empresa    = null,
                                                  DateTime?fecha_ingreso       = null,
                                                  DateTime?fecha_procesamiento = null,
                                                  Colaborador cajero_receptor  = null, Monedas mon = Monedas.Colones, decimal montocolones = 0, decimal montodolares = 0, decimal montoeuros = 0, Camara cam = null, PuntoVenta p = null)
        {
            this.DB_ID = id;

            _codigo              = codigo;
            _cliente             = cliente;
            _empresa             = empresa;
            _fecha_ingreso       = fecha_ingreso ?? DateTime.MinValue;
            _fecha_procesamiento = fecha_procesamiento ?? DateTime.MinValue;
            _cajero              = cajero_receptor;
            _camara              = cam;
            _monto_colones       = montocolones;
            _monto_dolares       = montodolares;
            _monto_euros         = montoeuros;
            _tulas       = new BindingList <Tula>();
            _depositos   = new BindingList <ProcesamientoBajoVolumenDeposito>();
            _punto_venta = p;
        }
Exemple #9
0
        public override void Update()
        {
            PreUpdate();
            if (ElapsedTime <= 0 || ElapsedTime > 1000)
            {
                return;
            }
            ProcessKeyboard();

            if (paused)
            {
                return;
            }


            // renderloop personalizado
            hay_render = false;
            float frame_rate = 1.0f / 60.0f;

            my_elapsed_time += ElapsedTime;
            if (my_elapsed_time < frame_rate - desf_frmrate)
            {
                return;
            }
            desf_frmrate += 0.1f * (my_elapsed_time - frame_rate);
            ++cant_frames;
            ElapsedTime     = my_elapsed_time;
            my_elapsed_time = 0;
            hay_render      = true;

            my_time += ElapsedTime;
            if (my_time > 1)
            {
                // recomputo los fps
                fps         = cant_frames / my_time;
                my_time     = 0;
                cant_frames = 0;
            }

            time += ElapsedTime;

            switch (m_state)
            {
            case 0:
                // selecciona el wav
                break;

            case 1:
                // presentacion
                break;

            case 2:
                // modo game
            {
                // intro?
                if (timer_intro > 0)
                {
                    timer_intro -= ElapsedTime;
                }

                // sonido
                sound.WaveOut();

                // actualizo la nave
                SHIP.Update(Input, ESCENA, ElapsedTime);
                // actualizo la camara
                Camara.SetCamera(SHIP.posC - SHIP.dir * 120.0f + SHIP.normal * 30.0f, SHIP.pos + SHIP.dir * 70.0f, SHIP.normal);
                Camara.UpdateCamera(ElapsedTime);

                // actualizo la escena
                ESCENA.Update(ElapsedTime);

                if (SHIP.colisiona)
                {
                    if (sound_ready)
                    {
                        int index    = SHIP.pos_en_ruta / ESCENA.pt_x_track;
                        int freq_wav = ESCENA.sound_tracks[index];
                        sound_out.Play(freq_wav, 500, 0.5f);
                        sound_ready = false;
                    }
                }
                else
                {
                    sound_ready = true;
                }
            }
            break;
            }


            PostUpdate();
        }
Exemple #10
0
        public InconsistenciaDepositoBajoVolumen listarDetalleInconsistenciasPROA(int idincons)
        {
            InconsistenciaDepositoBajoVolumen inconsistencias = new InconsistenciaDepositoBajoVolumen();

            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectPROADetalleInconsistenciasPorResolver");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@ID", idincons, SqlDbType.Int);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);
                if (datareader.Read())
                {
                    int        id_manifiesto     = (int)datareader["ID_Manifiesto"];
                    string     codigo_manifiesto = (string)datareader["Codigo_manifiesto"];
                    Manifiesto man = new Manifiesto();
                    man.ID     = id_manifiesto;
                    man.Codigo = codigo_manifiesto;

                    short  id_cliente     = (short)datareader["ID_Cliente"];
                    string nombre_cliente = (string)datareader["Nombre_Cliente"];

                    short  id_punto_venta     = (short)datareader["ID_Punto_Venta"];
                    string nombre_punto_venta = (string)datareader["Nombre_Punto_Venta"];

                    int    id_cajero               = (int)datareader["ID_Cajero"];
                    string nombre_cajero           = (string)datareader["Nombre_Cajero"];
                    string primer_apellido_cajero  = (string)datareader["Primer_Apellido_Cajero"];
                    string segundo_apellido_cajero = (string)datareader["Segundo_Apellido_Cajero"];

                    byte esdeposito          = (byte)datareader["Es_deposito"];
                    byte escuenta            = (byte)datareader["Es_cuenta"];
                    byte escedula            = (byte)datareader["Es_cedula"];
                    byte escodigoVD          = (byte)datareader["Es_codigoVD"];
                    byte escodigotransaccion = (byte)datareader["Es_codigotransaccion"];
                    byte esmoneda            = (byte)datareader["Es_moneda"];

                    Tula   tula = new Tula((string)datareader["codigo_tula"], id: (int)datareader["ID_Tula"]);
                    Camara cam  = new Camara((string)datareader["Camara"], (byte)datareader["ID_Camara"]);

                    Colaborador cajero      = new Colaborador(id_cajero, nombre_cajero, primer_apellido_cajero, segundo_apellido_cajero);
                    Cliente     cliente     = new Cliente(id_cliente, nombre_cliente);
                    PuntoVenta  punto_venta = new PuntoVenta(id_punto_venta, nombre_punto_venta, cliente);
                    ProcesamientoBajoVolumenDeposito procesobajo = new ProcesamientoBajoVolumenDeposito(ID: (int)datareader["ID_ProcesamientoBajoVolumenDeposito"],
                                                                                                        numero_deposito: (string)datareader["Numero_Deposito"], codigo_VD: (string)datareader["Codigo_VD"], cuenta: (string)datareader["Cuenta"],
                                                                                                        codigo_transaccion: (string)datareader["Codigo_transaccion"], cedula: (string)datareader["cedula"], moneda: (Monedas)datareader["Moneda"],
                                                                                                        MontoContado: Convert.ToDecimal(datareader["MontoDeposito"]), Diferencia: Convert.ToDecimal(datareader["DiferenciaDeposito"]), Depositante: (string)datareader["Depositante"]);
                    inconsistencias.ID                   = idincons;
                    inconsistencias.Cliente              = cliente;
                    inconsistencias.Es_cedula            = escedula;
                    inconsistencias.Es_codigotransaccion = escodigotransaccion;
                    inconsistencias.Es_codigoVD          = escodigoVD;
                    inconsistencias.Es_cuenta            = escuenta;
                    inconsistencias.Es_moneda            = esmoneda;
                    inconsistencias.Es_numdeposito       = esdeposito;
                    inconsistencias.Estado               = 0;
                    inconsistencias.Fecha                = DateTime.Today;
                    inconsistencias.Manifiesto           = man;
                    inconsistencias.procesamiento        = procesobajo;
                    inconsistencias.PuntoVenta           = punto_venta;
                    inconsistencias.Tula                 = tula;
                    inconsistencias.Cajero               = cajero;
                    inconsistencias.Camara               = cam;
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }

            return(inconsistencias);
        }