Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
 }
Beispiel #5
0
 public void AddCollider(GameObject collider)
 {
     Colliders.Add(collider);
 }
Beispiel #6
0
 protected virtual bool OnGameObjectCollision(GameObject collider)
 {
     return true;
 }
Beispiel #7
0
 public PhysicsObject(GameObject parent, Vector2 position, Vector2 size)
 {
     this.parent = parent;
     this.scale = size;
     this.Position = position;
 }
Beispiel #8
0
 public void AddAndInitialize(GameObject gameObject)
 {
     Add(gameObject);
     GraphicsSystem.RegisterGraphicsObject(gameObject.GraphicsObject);
     PhysicsSystem.RegisterPhysicsObject(gameObject.PhysicsObject);
 }
Beispiel #9
0
 public void Add(GameObject gameObject)
 {
     insertionQueue.Add(gameObject);
 }
Beispiel #10
0
 public void RemoveAndUninitialize(GameObject gameObject)
 {
     Remove(gameObject);
     PhysicsSystem.RemovePhyicsObject(gameObject.PhysicsObject);
 }
Beispiel #11
0
 public void Remove(GameObject gameObject)
 {
     removalQueue.Add(gameObject);
 }