public void inicializarEnemigos(int columnas, int filas, List<Enemigo> lista, float scale, float radio) { //Cargar malla original loader = new TgcSkeletalLoader(); string pathMesh = GuiController.Instance.ExamplesMediaDir + "SkeletalAnimations\\BasicHuman\\CS_Arctic-TgcSkeletalMesh.xml"; mediaPath = GuiController.Instance.ExamplesMediaDir + "SkeletalAnimations\\BasicHuman\\"; originalEnemigo = loader.loadMeshFromFile(pathMesh, mediaPath); originalEnemigo.Scale = new Vector3(3.4f, 3.4f, 3.4f); //Agregar animación a original loader.loadAnimationFromFile(originalEnemigo, mediaPath + "\\Animations\\Walk-TgcSkeletalAnim.xml"); //Cargar Shader personalizado //meshOriginal.Effect = enemigoEffect; //meshOriginal.Technique = "RenderScene"; float x = 0f; float z = 0f; //instanciasMalos = new List<TgcSkeletalMesh>(); //int rowsRobot = 3; //int colsRobot = 3; for (int k = 0; k < filas; k++) { for (int q = 0; q < columnas; q++) { //Crear instancia de modelo TgcSkeletalMesh instance = originalEnemigo.createMeshInstance(originalEnemigo.Name + k + "_" + q); do { x = rand.Next(-5000, 5000); z = rand.Next(-5000, 5000); } while (FastMath.Sqrt(x * x + z * z) <= radio); //Achico el bounding box del arbol //instance.BoundingBox.scaleTranslate(new Vector3(0f, 0f, 0f), new Vector3(0.5f, 0.5f, 0.5f)); //instance.rotateY(FastMath.Atan(3f)); //Desplazarlo instance.move(x, 0, z); //Roto el mesh rotarMesh(instance); Effect fx = TgcShaders.loadEffect(GuiController.Instance.AlumnoEjemplosMediaDir + "Shaders\\e.fx"); instance.Scale = new Vector3(scale, scale, scale); instance.AlphaBlendEnable = true; Enemigo e = new Enemigo(instance, instance.Position); e.efecto = fx; lista.Add(e); } } //originalEnemigo.playAnimation("Walk"); foreach (Enemigo enemigo in lista) { enemigo.meshEnemigo.playAnimation("Walk"); } }
private static bool estaMuerto(Enemigo e) { return !e.estaVivo; }
private void matarEnemigo(Enemigo enemigo) { enemigo.estaVivo = false; puntoDisparo.Position = col; puntoDisparo.render(); puntaje += 20; enemigo.meshEnemigo.Effect = enemigo.efecto; enemigo.meshEnemigo.Technique = "disparoEnemigo"; //disparoBarril = false; }