public Spinning(GenerateObstacles obs, Map map, Bomberman player, GraphicsContext g, Vector2 scale) : base(obs, map, player, g, scale) { this.position.Width = 12 * scale.X; this.position.Height = 14 * scale.Y; this.health = 10; this.score = 1000; this.sl = new SpriteLoader(); this.sl.cargarImagen(ANIMATION); this.sl.setImage(sl.getImage().Resize(new ImageSize((int)(sl.getImage().Size.Width *scale.X), (int)(sl.getImage().Size.Height *scale.Y)))); this.ss = new SpriteSheet(this.sl.getImage()); Sprite[] mov = { ss.obtenerSprite((int)(0 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g), ss.obtenerSprite((int)(1 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g), ss.obtenerSprite((int)(2 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g), ss.obtenerSprite((int)(3 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g) }; Sprite[] die = { ss.obtenerSprite((int)(4 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g), ss.obtenerSprite((int)(5 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g), ss.obtenerSprite((int)(6 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g), ss.obtenerSprite((int)(7 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g), ss.obtenerSprite((int)(8 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g), ss.obtenerSprite((int)(9 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.Y), g), new Score(score, w, h, g, scale).getImage() }; this.down = new Animation(mov, 8, Animation.Direction.DOWN); this.death = new Animation(die, 14, Animation.Direction.DOWN); // Animacion inicial animation = down; animation.start(); }
public Enemy(GenerateObstacles obs, Map map, Bomberman player, GraphicsContext g, Vector2 scale) : base(g, scale) { this.obs = obs; this.player = player; this.speed = (int)(1 * scale.X / 2); while (!located) { findStartPos(map); } switch (r.Next(3)) { case 0: xdir = speed; ydir = 0; break; case 1: xdir = -speed; ydir = 0; break; case 2: xdir = 0; ydir = speed; break; case 3: xdir = 0; ydir = -speed; break; } }
public SnakeHead(GenerateObstacles obs, Map map, Bomberman player, GraphicsContext g, Vector2 scale) : base(obs, map, player, g, scale) { this.position.Width = 12 * scale.X; this.position.Height = 14 * scale.Y; this.health = 80; this.score = 100; this.sl = new SpriteLoader(); this.sl.cargarImagen(ANIMATION); this.sl.setImage(sl.getImage().Resize(new ImageSize((int)(sl.getImage().Size.Width *scale.X), (int)(sl.getImage().Size.Height *scale.Y)))); this.ss = new SpriteSheet(this.sl.getImage()); up = new Animation[4]; down = new Animation[4]; left = new Animation[4]; right = new Animation[4]; for (int i = 0; i < 4; i++) { Sprite[] u = { ss.obtenerSprite((int)(0 * w * scale.X), (int)((2 * i + 1) * h * scale.Y + (i + 1) * scale.Y), (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(1 * w * scale.X), (int)((2 * i + 1) * h * scale.Y + (i + 1) * scale.Y), (int)(w * scale.X), (int)(h * scale.X), g) }; Sprite[] d = { ss.obtenerSprite((int)(6 * w * scale.X), (int)((2 * i + 1) * h * scale.Y + (i + 1) * scale.Y), (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(7 * w * scale.X), (int)((2 * i + 1) * h * scale.Y + (i + 1) * scale.Y), (int)(w * scale.X), (int)(h * scale.X), g) }; Sprite[] l = { ss.obtenerSprite((int)(8 * w * scale.X), (int)((2 * i + 1) * h * scale.Y + (i + 1) * scale.Y), (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(9 * w * scale.X), (int)((2 * i + 1) * h * scale.Y + (i + 1) * scale.Y), (int)(w * scale.X), (int)(h * scale.X), g) }; Sprite[] r = { ss.obtenerSprite((int)(2 * w * scale.X), (int)((2 * i + 1) * h * scale.Y + (i + 1) * scale.Y), (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(3 * w * scale.X), (int)((2 * i + 1) * h * scale.Y + (i + 1) * scale.Y), (int)(w * scale.X), (int)(h * scale.X), g) }; up[i] = new Animation(u, 20, Animation.Direction.UP); down[i] = new Animation(d, 20, Animation.Direction.DOWN); left[i] = new Animation(l, 20, Animation.Direction.LEFT); right[i] = new Animation(r, 20, Animation.Direction.RIGHT); } Sprite[] die = { ss.obtenerSprite((int)(0 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(1 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(2 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(3 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(4 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(5 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(6 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.X), g), ss.obtenerSprite((int)(7 * w * scale.X), 0, (int)(w * scale.X), (int)(h * scale.X), g), new Score(score, w, h, g, scale).getImage() }; this.death = new Animation(die, 14, Animation.Direction.DOWN); animation = down[0]; animation.start(); }
public static void initLevel() { bool dead = (player != null) ? player.removed : false; int powerupssize = powerups.Count; clear(); StreamReader sr = new StreamReader(File.OpenRead("/Application/res/maps/definitions/" + level + "/" + level + "_" + levelmap + ".txt")); map = new Map(sr.ReadLine(), Map.TILESIZE, scales, graphics); // obstacles = new GenerateObstacles(map, true); PowerUps powerup = null; if (levelmap != 8) { obstacles = new GenerateObstacles(map, true, graphics); powerup = new PowerUps(Convert.ToInt32(sr.ReadLine()), obstacles.getList(), graphics, scales); } else { obstacles = new GenerateObstacles(map, false, graphics); } if (levelmap != 8) { if (level == 4 || level == 7) { keymusic = "bgm_03"; } else if (level == 6 || level == 8) { keymusic = "bgm_02"; } else { keymusic = "bgm_01"; } } else { keymusic = "bgm_boss"; } while (sr.Peek() >= 0) { String[] line = sr.ReadLine().Split(); int type = Convert.ToInt32(line[0]); int count = Convert.ToInt32(line[1]); switch (type) { case 6: // blue snake // for (int x = 0; x < count; x++) { // // SnakeHead head = new SnakeHead(obstacles, map, player); // SnakeBody body = new SnakeBody(obstacles, map, player, head); // // for (int i = 0; i < 4; i++) { // head.setChild(body); // enemies.Add(head); // enemies.Add(body); // head = body; // body = new SnakeBody(obstacles, map, player, head); // } // } break; default: for (int i = 0; i < count; i++) { enemies.Add(Enemy.createEnemy(type, obstacles, map, player, graphics, scales)); } break; } } // in.close(); if (powerup != null && levelmap != 8 && !dead) { powerups.Add(powerup); } else if (powerup != null && levelmap != 8 && dead && powerupssize > 0) { powerups.Add(powerup); } if (levelmap != 8) { do { exit = new Exit(obstacles.getList(), enemies, graphics, scales); } while (exit.intersects(powerup)); } else { exit = new Exit(null, enemies, graphics, scales); } sr.Dispose(); }
public Boss(GenerateObstacles obs, Map map, Bomberman player, GraphicsContext g, Vector2 scale) : base(obs, map, player, g, scale) { this.speed = (int)(1 * scale.X / 2); }
public static Enemy createEnemy(int type, GenerateObstacles obs, Map map, Bomberman player, GraphicsContext g, Vector2 scale) { switch (type) { case 0: return(new Balloon(obs, map, player, g, scale)); case 1: return(new BalloonPurple(obs, map, player, g, scale)); case 2: return(new BalloonBlue(obs, map, player, g, scale)); case 3: return(new BalloonRed(obs, map, player, g, scale)); case 4: return(new DragonPurple(obs, map, player, g, scale)); case 5: return(new GhostYellow(obs, map, player, g, scale)); // case 6: // return new SnakeHead(obs, map, player); case 7: return(new CrocodileGreen(obs, map, player, g, scale)); case 8: return(new GarlicBlue(obs, map, player, g, scale)); case 9: return(new FishGreen(obs, map, player, g, scale)); case 10: return(new GhostBlue(obs, map, player, g, scale)); case 11: return(new CoinYellow(obs, map, player, g, scale)); case 12: return(new GhostPink(obs, map, player, g, scale)); case 13: return(new Flame(obs, map, player, g, scale)); case 14: return(new DuckPurple(obs, map, player, g, scale)); case 15: return(new GhostWhite(obs, map, player, g, scale)); case 16: return(new Spinning(obs, map, player, g, scale)); case 17: return(new FrogYellow(obs, map, player, g, scale)); case 18: return(new GhostGreen(obs, map, player, g, scale)); } return(null); }