protected override bool OnGameObjectCollision(GameObject collider) { if (collider is MoneyBall) { if (soul == null) { return true; } MoneyBall moneyBall = collider as MoneyBall; if (Wallet < Cost) { wallet += moneyBall.Value; ActiveScene.Scene.RemoveAndUninitialize(collider); } if (Wallet >= Cost) { moneyBall.Parent.AddSoul(this.soul); this.soul = null; ActiveScene.Scene.RemoveAndUninitialize(this); ActiveScene.Scene.AddAndInitialize(new Husk("black", this.worldPosition, this.worldScale)); } return true; } return base.OnGameObjectCollision(collider); }
protected override bool OnGameObjectCollision(GameObject collider) { if (collider is Obstacle) { Obstacle obstacle = collider as Obstacle; switch (CollisionSide(obstacle)) { case Side.BOTTOM: worldPosition.Y = obstacle.TopRightPosition.Y; if (velocity.Y < 0.0f) { velocity.Y = 0.0f; } onGround = true; break; case Side.LEFT: worldPosition.X = obstacle.TopRightPosition.X; if (velocity.X < 0.0f) { velocity.X = 0.0f; } break; case Side.RIGHT: worldPosition.X = obstacle.BottomLeftPosition.X - worldScale.X; if (velocity.X > 0.0f) { velocity.X = 0.0f; } break; case Side.TOP: worldPosition.Y = obstacle.BottomLeftPosition.Y - worldScale.Y; if (velocity.Y > 0.0f) { velocity.Y = 0.0f; } break; } return true; } return base.OnGameObjectCollision(collider); }
protected override bool OnGameObjectCollision(GameObject collider) { if (collider is KillZone) { Respawn(); return false; } else if (collider is MoneyBall) { MoneyBall moneyBall = collider as MoneyBall; if (moneyBall.HasLeftPlayer) { this.money += moneyBall.Value; ActiveScene.Scene.RemoveAndUninitialize(collider); } return true; } return base.OnGameObjectCollision(collider); }
public GraphicsObject(GameObject parent, string texString) { this.parent = parent; this.texString = texString; }
public void AddCollider(GameObject collider) { Colliders.Add(collider); }
protected virtual bool OnGameObjectCollision(GameObject collider) { return true; }
public PhysicsObject(GameObject parent, Vector2 position, Vector2 size) { this.parent = parent; this.scale = size; this.Position = position; }
public void AddAndInitialize(GameObject gameObject) { Add(gameObject); GraphicsSystem.RegisterGraphicsObject(gameObject.GraphicsObject); PhysicsSystem.RegisterPhysicsObject(gameObject.PhysicsObject); }
public void Add(GameObject gameObject) { insertionQueue.Add(gameObject); }
public void RemoveAndUninitialize(GameObject gameObject) { Remove(gameObject); PhysicsSystem.RemovePhyicsObject(gameObject.PhysicsObject); }
public void Remove(GameObject gameObject) { removalQueue.Add(gameObject); }