public MegabombShot(Vector2 loc, Megabomb wpn, double angle, SpriteEffects _flip) : base(loc, new Rectangle(830, 0, 180, 236), //Sprite new Vector2(450, 350), //Speed Vector2.One, //Scale _flip, wpn, angle, false) { ttl = InfiniteTimeToLive; saveRotation = angle; UseRotationWhenDrawing = true; hitbox = new CircleHitbox(this, true, 0.5f); }
public void Initialize() { wpn = new MachineGun(); bomb = new Megabomb(); this.speed = new Vector2(400.0f, 400.0f); //In case of a flip before frame = 0; Score = 0; Lives = 0; invincibleTime = 3.0f; DeathTime = 0.0f; trajectory = new Vector2(); Hitbox = new CircleHitbox(this, false, 3.5f); this.Flip = SpriteEffects.None; enableCommands = true; }
public BouleEpine(Vector2 loc, Vector2 scroll, Bonus bonus, MovePattern pattern, SpriteEffects flip, String[] flags) : base(loc, scroll, bonus, pattern, flags, flip, new Rectangle(20, 137, 200, 110), //Source sprite Vector2.Zero, //Speed Vector2.One, new BEWeapon() ) { //Stats hp = 30; Background = true; points = 3000; Difficulty = 10; Hitbox = new CircleHitbox(this, false, 2f); }
public Bird(Vector2 loc, Vector2 scroll, Bonus bonus, MovePattern pattern, SpriteEffects flip, String[] flags) : base(loc, scroll, bonus, pattern, flags, flip, new Rectangle(0, 0, 256, 128), //Source sprite new Vector2(350, 350.0f), //Speed new Vector2(0.3f, 0.3f), null ) { //Stats hp = 3; points = 1000; Difficulty = 5; targetFound = false; this.UseSpriteOrigin(); UseRotationWhenDrawing = flip == SpriteEffects.None; Hitbox = new CircleHitbox(this, true, 3f); }
private void OnFixedUpdate(Entity entity) { if (_counter == 0) { Color tmp = _outerSpriteRenderer.color; tmp.a = 1; _outerSpriteRenderer.color = tmp; Color tmp2 = _innerSpriteRenderer.color; tmp2.a = 1; _innerSpriteRenderer.color = tmp2; _innerCircleObject.transform.localScale = InnerRadius * 2 * Vector2.one; _outerCircleObject.transform.localScale = CurrentRadius * 2 * Vector2.one; Vector2 newPosition = _posTwoTicksAgo; _outerCircleObject.transform.position = newPosition; _innerCircleObject.transform.position = newPosition; _posTwoTicksAgo = _postLastTick; _postLastTick = entity.Position; CircleHitbox c = new CircleHitbox(newPosition, CurrentRadius, GameInfo.PlayersLayer); if (c.GetFreshHits().Contains(entity)) { if ((entity.Position - newPosition).magnitude <= InnerRadius) { CurrentRadius += 0.6f; } entity.TakeDamage(new DamageInstance(entity, entity, 2)); } else { CurrentRadius -= 0.3f; } } _counter = (_counter + 1) % TimeBetweenFlashes; }
protected abstract bool IntersectingCircle(CircleHitbox other);
public abstract bool Over(CircleHitbox other);
protected override bool IntersectingCircle(CircleHitbox other) { throw new System.NotImplementedException(); }