Example #1
0
        public override void Notify()
        {
            // It is very important to know the data type of pObjA and pObjB
            AlienGroup pAlien = (AlienGroup)this.pSubject.pObjA;
            GameObject pWall  = (GameObject)this.pSubject.pObjB;

            if (pWall.GetName() == GameObject.Name.WallRight)
            {
                if (!pAlien.isInWall)
                {
                    pAlien.isInWall = true;
                    pAlien.ChangeState(AlienGridMoveState.MoveState.GridHitRightWall);
                }
            }
            else if (pWall.GetName() == GameObject.Name.WallLeft)
            {
                if (!pAlien.isInWall)
                {
                    pAlien.isInWall = true;
                    pAlien.ChangeState(AlienGridMoveState.MoveState.GridHitLeftWall);
                }
            }
        }
Example #2
0
 public override void Handle(AlienGroup pGrid)
 {
     Debug.Assert(pGrid != null);
     pGrid.ChangeState(MoveState.GridMoveToRight);
 }