コード例 #1
0
ファイル: GameCharacter.cs プロジェクト: ianlee74/Gadgeteer
 public GameCharacter(Maze maze)
 {
     Maze = maze;
       TargetSpeed = 4;
       Active = true;
       Lives = 3;
 }
コード例 #2
0
ファイル: PacmanGame.cs プロジェクト: ianlee74/Gadgeteer
        public override void LoadContent()
        {
            _font = Resources.GetFont(Resources.FontResources.NinaB);

              var tempSheet = Resources.GetBitmap(Resources.BitmapResources.pacman);
              _spriteSheet = new Bitmap(tempSheet.Width, tempSheet.Height);
              _spriteSheet.DrawImage(0, 0, tempSheet, 0, 0, tempSheet.Width, tempSheet.Height);
              _spriteSheet.MakeTransparent(Microsoft.SPOT.Presentation.Media.Color.Black);

              _maze = new Maze();
              _maze.Draw(Surface, Host);

              _pacman = new Player(_spriteSheet, _maze);

              #region Initialize Bonus Point Sprites
              _bonus200 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(80, 104, 16, 8) }));

              _bonus400 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(96, 104, 16, 8) }));

              _bonus800 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(112, 104, 16, 8) }));

              _bonus1600 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(128, 104, 16, 8) }));

              _bonus100 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(0, 112, 16, 8) }));

              _bonus300 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(16, 112, 16, 8) }));

              _bonus500 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(32, 112, 16, 8) }));

              _bonus700 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(48, 112, 16, 8) }));

              _bonus1000 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(64, 112, 20, 8) }));

              _bonus2000 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(84, 112, 20, 8) }));

              _bonus3000 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(106, 112, 20, 8) }));

              _bonus5000 = new Sprite(new AnimationSequence(_spriteSheet, 0,
            new Rect[] { new Rect(128, 112, 16, 8) }));
              #endregion

              #region Initialize Ghosts
              _blinky = new Ghost(_spriteSheet, _maze, _pacman, 16,
            new Personality()
            {
              ScatterX = 13 * 16,
              ScatterY = -2 * 16,
              TargetOffsetX = 0,
              TargetOffsetY = 0,
              HouseX = 7 * 16,
              HouseY = 7 * 16,
              StartX = 7 * 16,
              StartY = 5 * 16
            });
              _blinky.CurrentDirection = Direction.Left;

              _pinky = new Ghost(_spriteSheet, _maze, _pacman, 32,
            new Personality()
            {
              ScatterX = 1 * 16,
              ScatterY = -2 * 16,
              TargetOffsetX = 4 * 16,
              TargetOffsetY = 0,
              HouseX = 6 * 16,
              HouseY = 7 * 16,
              StartX = 6 * 16,
              StartY = 7 * 16
            });
              _pinky.CurrentDirection = Direction.Left;

              _inky = new Ghost(_spriteSheet, _maze, _pacman, 48,
            new Personality()
            {
              ScatterX = 14 * 16,
              ScatterY = 15 * 16,
              TargetOffsetX = -3 * 16,
              TargetOffsetY = 0,
              HouseX = 7 * 16,
              HouseY = 7 * 16,
              StartX = 7 * 16,
              StartY = 7 * 16
            });
              _inky.CurrentDirection = Direction.Left;

              _clyde = new Ghost(_spriteSheet, _maze, _pacman, 64,
            new Personality()
            {
              ScatterX = 0 * 16,
              ScatterY = 15 * 16,
              TargetOffsetX = 0,
              TargetOffsetY = -2 * 16,
              HouseX = 8 * 16,
              HouseY = 7 * 16,
              StartX = 8 * 16,
              StartY = 7 * 16
            });
              _clyde.CurrentDirection = Direction.Left;
              #endregion

              _pacman.Enemies = new Ghost[]
              {
            _blinky, _pinky, _inky, _clyde
              };

              #region Add objects to scene
              AddToScene(_showBonusCountDown);
              AddToScene(_showBonusScoreCountDown);
              AddToScene(_maze);
              AddToScene(_pacman);
              AddToScene(_blinky);
              AddToScene(_pinky);
              AddToScene(_inky);
              AddToScene(_clyde);
              #endregion

              _maze.LevelComplete += MazeLevelComplete;
              _showBonusCountDown.Expired += BonusCountDown_Expired;

              MessageService.Instance.Subscribe(typeof(Messages.PacmanDeadMessage), HandlePacmanDeadMessage);
              MessageService.Instance.Subscribe(typeof(Messages.PacmanAteGhostMessage), HandlePacmanAteGhostMessage);
              MessageService.Instance.Subscribe(typeof(Messages.AteBonusItemMessage), HandleAteBonusItem);

              base.LoadContent();

              Reset();
        }
コード例 #3
0
ファイル: Player.cs プロジェクト: ianlee74/Gadgetab
        public Player(Bitmap spriteSheet, Maze maze)
            : base(maze)
        {
            // NB: The sequence of the animations must match the
              //     "Animation Selection Constants" defined above
              SetAnimationSequences(
            new AnimationSequence[]
            {
              // 0 - Left
              new AnimationSequence(spriteSheet, 12,
            new Rect[]
            {
              new Rect(128, 0, 16, 16), // Closed
              new Rect(0, 0, 16, 16),  // Opening
              new Rect(16, 0, 16, 16),  // Open
            }),
              // 1 - Right
              new AnimationSequence(spriteSheet, 12,
            new Rect[]
            {
              new Rect(128, 0, 16, 16), // Closed
              new Rect(32, 0, 16, 16),  // Opening
              new Rect(48, 0, 16, 16),  // Open
            }),
              // 2 - Up
              new AnimationSequence(spriteSheet, 12,
            new Rect[]
            {
              new Rect(128, 0, 16, 16), // Closed
              new Rect(64, 0, 16, 16),  // Opening
              new Rect(80, 0, 16, 16),  // Open
            }),
              // 3 - Down
              new AnimationSequence(spriteSheet, 12,
            new Rect[]
            {
              new Rect(128, 0, 16, 16), // Closed
              new Rect(96, 0, 16, 16),  // Opening
              new Rect(112, 0, 16, 16),  // Open
            }),
              // 4 - Dying
              new AnimationSequence(spriteSheet, 12, false, -1,
            new Rect[]
            {
              new Rect(128, 0, 16, 16),
              new Rect(64, 0, 16, 16),
              new Rect(80, 0, 16, 16),
              new Rect(0, 80, 16, 16),
              new Rect(16, 80, 16, 16),
              new Rect(32, 80, 16, 16),
              new Rect(48, 80, 16, 16),
              new Rect(64, 80, 16, 16),
              new Rect(80, 80, 16, 16),
              new Rect(96, 80, 16, 16),
              new Rect(112, 80, 16, 16),
              new Rect(128, 80, 16, 16),
              new Rect(144, 80, 16, 16),
            }),
              // 5 - Stop
              new AnimationSequence(spriteSheet, 12, false, -1,
            new Rect[]
            {
              new Rect(128, 0, 16, 16),
            })
            });

              this[AnimateDying].Completed += new EventHandler(Dying_Completed);

              MessageService.Instance.Subscribe(typeof(Messages.CollidedWithPacmanMessage), HandleCollidedWithPacman);

              Reset();
        }
コード例 #4
0
ファイル: Ghost.cs プロジェクト: ianlee74/Gadgetab
        public Ghost(Bitmap spriteSheet, Maze maze, Player player, int spriteSheetYOffset, Personality personality)
            : base(maze)
        {
            _game = (PacmanGame)GameManager.Game;

              Player = player;
              _personality = personality;

              // NB: The sequence of the animations must match the
              //     "Animation Selection Constants" defined above
              SetAnimationSequences(new AnimationSequence[]
              {
            // 0 - Left
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(0, spriteSheetYOffset, 16, 16),
              new Rect(16, spriteSheetYOffset, 16, 16),
            }),
            // 1 - Right
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(32, spriteSheetYOffset, 16, 16),
              new Rect(48, spriteSheetYOffset, 16, 16),
            }),
            // 2 - Up
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(64, spriteSheetYOffset, 16, 16),
              new Rect(80, spriteSheetYOffset, 16, 16),
            }),
            // 3 - Down
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(96, spriteSheetYOffset, 16, 16),
              new Rect(112, spriteSheetYOffset, 16, 16),
            }),

            // 4 - Frightened
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(128, 16, 16, 16),
              new Rect(144, 16, 16, 16),
            }),

            // 5 - Recovering
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(128, 16, 16, 16),
              new Rect(128, 32, 16, 16),
              new Rect(144, 16, 16, 16),
              new Rect(144, 32, 16, 16),
            }),
            // 6 - Left Dead
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(128, 48, 16, 16),
            }),
            // 7 - Right Dead
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(144, 48, 16, 16),
            }),
            // 8 - Up Dead
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(128, 64, 16, 16),
            }),
            // 9 - Down Dead
            new AnimationSequence(spriteSheet, 6, new Rect[]
            {
              new Rect(144, 64, 16, 16),
            }),
              });

              Reset();

              MessageService.Instance.Subscribe(typeof(Messages.AtePowerPillMessage), HandleAtePowerPillMessage);
              MessageService.Instance.Subscribe(typeof(Messages.PacmanDyingMessage), HandlePacmanDyingMessage);
              MessageService.Instance.Subscribe(typeof(Messages.PacmanDeadMessage), HandlePacmanDeadMessage);

              _stateCountDown.Expired += StateCountDown_Expired;
        }
コード例 #5
0
 public Character(Bitmap body, Maze maze)
 {
     this.body = body;
     this.maze = maze;
     direction = Direction.Right;
 }