public CompressedTouhouBall(Room room, Vector2 pos, float dir) : base(room, pos, dir) { outlineHue = 0; outlineColor = new Color(255, 255, 255); outlineSprite = new SpriteData(); outlineSprite.Layer = 4f / 100; outlineSprite.Size = new Vector2(32, 32); outlineSprite.Offset = outlineSprite.Size / 2; Speed = 3; Sprite.Size = new Vector2(24, 24); Sprite.Offset = Sprite.Size / 2; Hitbox = AddVectorToRect(new Rectangle(0, 0, (int)Sprite.Size.X, (int)Sprite.Size.Y), -Sprite.Offset * 2); Sprite.Layer = 5f / 100; AssetManager.RequestTexture("touhouBall", (frames) => { Sprite.Change(frames); }); AssetManager.RequestTexture("touhouBallOutline", (frames) => { outlineSprite.Change(frames); }); }
public DirtTile(Room room, Vector2 pos) : base(room, pos, new Vector2(32, 32)) { string[] options = new string[] { "dirt", "dirt2" }; int optionInd = randGen.Next(options.Length); AssetManager.RequestTexture(options[optionInd], (frames) => { Sprite = new SpriteData(frames); Sprite.Size = new Vector2(32, 32); Sprite.Speed = 0; Sprite.Layer = Layer; if (!Room.CheckTileAt(Position + new Vector2(Size.X, 0))) { GameTile tl = new DirtSideRightTile(Room, Position); tl.Layer = Layer + 0.01f; Room.GameTileList.Add(tl); } if (!Room.CheckTileAt(Position + new Vector2(0, Size.Y))) { GameTile tl = new DirtSideBottomTile(Room, Position); tl.Layer = Layer + 0.01f; Room.GameTileList.Add(tl); } if (!Room.CheckTileAt(Position - new Vector2(Size.X, 0))) { GameTile tl = new DirtSideLeftTile(Room, Position); tl.Layer = Layer + 0.01f; Room.GameTileList.Add(tl); } if (!Room.CheckTileAt(Position - new Vector2(0, Size.Y))) { GameTile tl = new DirtSideTopTile(Room, Position); tl.Layer = Layer + 0.01f; Room.GameTileList.Add(tl); } }); }
public BossObject(Room room, Vector2 pos) : base(room, pos, new Vector2(0, 0), new Vector2(64, 64)) { life = maxLife; stepCooldown = 0; sprayDir = minSprayDir; attackMode = 3; target = null; remainingStepsBeforeChange = stepsBeforeAttackChange; Sprite = new SpriteData(); Sprite.Size = new Vector2(64, 64); Sprite.Layer = Layer; Sprite.Speed = 0.1f; Light = new LightData(); Light.Brightness = 64; Light.Position = Position + (Size / 2); healthbar = new SpriteData(); healthbar.Size = new Vector2(384, 32); healthbar.Source = new Rectangle(0, 0, (int)healthbar.Size.X, (int)healthbar.Size.Y); healthbar.Layer = 0.98f; healthbarFrame = new SpriteData(); healthbarFrame.Size = new Vector2(384, 32); healthbarFrame.Layer = 0.99f; drawHealthbarFrom = new Vector2((Room.Game.GraphicsDevice.Viewport.Width - healthbarFrame.Size.X) / 2, healthbarTopPadding); AssetManager.RequestTexture("clownpiece", (frames) => { Sprite.Change(frames); }); AssetManager.RequestTexture("clownpieceHealthbar", (frames) => { healthbar.Change(frames); }); AssetManager.RequestTexture("clownpieceHealthbarFrame", (frames) => { healthbarFrame.Change(frames); }); }
/// <summary> /// /// </summary> /// <param name="room"></param> /// <param name="pos"></param> /// <param name="dir">radians</param> public BulletObject(Room room, Vector2 pos, float dir) : base(room, pos, new Vector2(0, 0), new Vector2(16, 16)) { DirectionVector = new Vector2((float)Math.Cos(dir), (float)Math.Sin(dir)); Speed = 4; Sprite = new SpriteData(); }