Example #1
0
        public void add(GameEntity instance)
        {
            CollisionEntry entry = new CollisionEntry();
              entry.owner = instance;

              if(instance is Player){
            entry.type = CollisionEntityType.Player;
              } else if (instance is Cell){
            entry.type = CollisionEntityType.Cell;
              } else if (instance is WinSection || instance is TrashCan){
            entry.type = CollisionEntityType.Sensor;
              }

              entry.center = instance.GetCenter;
              entry.radius = instance.GetRadius;

              collisionEntries.Add(entry);
        }
Example #2
0
        public override void CollideTo(GameEntity instance)
        {
            collisionCells = new List<Cell>();
              if(instance is Cell){
            Cell c = (Cell)instance;
            if(c.grabbed){
              collisionCells.Add(c);
              Vector2 cellCenter = c.GetCenter();

              for(var i = 0; i < collisionCells.Count; i++){
            //s.DestroyCell(collisionCells[i]);
            Support.SoundSystem.Instance.Play("trash.wav");
            collisionCells[i].Visible = false;
            collisionCells[i].destroyed = true;
            Console.WriteLine("TRASH!!!");
              }
            }
              }
        }
Example #3
0
        public override void CollideTo(GameEntity instance)
        {
            collisionCells = new List<Cell>();
              if(instance is Cell){
            Cell c = (Cell)instance;
            collisionCells.Add(c);
            Vector2 cellCenter = c.GetCenter();
            Vector2 trashCenter = this.GetCenter();
            displacement = trashCenter - cellCenter;

            for(var i = 0; i < collisionCells.Count; i++){
              if(collisionCells[i].grabbed){
            if(this.checkCellWin(collisionCells[i])){
              Console.WriteLine("WINNER");
              Scheduler.Instance.Unschedule(GameScene.Instance,SpawnManager.Instance.FrameUpdate);
              Scheduler.Instance.Unschedule(GameScene.Instance,GameScene.Instance.player.Tick);
              Scheduler.Instance.Unschedule(GameScene.Instance,GameScene.Instance.Tick);
              GameOverScene.Instance = new GameOverScene(true);
              Director.Instance.ReplaceScene(GameOverScene.Instance);
              Scheduler.Instance.Schedule(GameOverScene.Instance,GameOverScene.Instance.Tick, 0.0f, false);
            } else {
              Console.WriteLine("WRONG ONE");
            }
              }
            }
              }
        }
Example #4
0
 public override void CollideFrom(GameEntity instance)
 {
 }
Example #5
0
 public override void CollideFrom(GameEntity instance)
 {
     if(instance is Player && grabbed){
       } else if(instance is Cell && !grabbed){
     instance.sprite.Position += (instance.sprite.Position-sprite.Position)*.1f;
       }
 }
Example #6
0
 public virtual void CollideTo(GameEntity instance)
 {
     throw new NotImplementedException();
 }
Example #7
0
 public void remove(GameEntity instance)
 {
     CollisionEntry e = collisionEntries.Find(x => x.owner == instance);
       collisionEntries.Remove(e);
 }
Example #8
0
 public override void CollideTo(GameEntity instance)
 {
     Boolean canGrab = (instance == grabbing || grabbing == null);
       if(Input2.GamePad0.Circle.Down && canGrab){
     if(instance is Cell){
       Cell c = (Cell)instance;
       //c.sprite.Position = new Vector2(c.sprite.Position.X+10, c.sprite.Position.Y+10);
       c.grabbed = true;
       grabbing = c;
       }
       } else {
     if(!(instance is Cell)) return;
     Cell c = (Cell)instance;
     //instance.sprite.Position += (instance.sprite.Position-sprite.Position)*.2f;
     Vector2 cellCenter = c.GetCenter();
     Vector2 playerCenter = this.GetCenter();
     Vector2 displacement = cellCenter - playerCenter;
     if(System.Math.Abs(displacement.X) > System.Math.Abs(displacement.Y)){
       if(playerCenter.X < cellCenter.X){
     sprite.Position = new Vector2(sprite.Position.X - runSpeed,sprite.Position.Y);
       } else if(playerCenter.X > cellCenter.X){
     sprite.Position = new Vector2(sprite.Position.X + runSpeed,sprite.Position.Y);
       }
     } else {
       if(playerCenter.Y < cellCenter.Y){
     sprite.Position = new Vector2(sprite.Position.X,sprite.Position.Y - runSpeed);
       } else if(playerCenter.Y > cellCenter.Y){
     sprite.Position = new Vector2(sprite.Position.X,sprite.Position.Y + runSpeed);
       }
     }
       }
 }