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(); }
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); }
private void frmNuevoTrabajador_Load(object sender, EventArgs e) { c = new Camara(ref pcbImagen, ref cboCamaras); CargarPuestos(); CargarSucursales(); }
/// <summary> /// Actualiza la Camara /// </summary> protected void UpdateView() { Camara.UpdateCamera(ElapsedTime); D3DDevice.Instance.Device.Transform.View = Camara.GetViewMatrix(); }
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); } } }
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; }
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(); }
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); }