Пример #1
0
 public SideEntry(Arkanoid game, Vector2 location, bool flip)
 {
     Game     = game;
     Texture  = Sprites.FrmSideOpen;
     Location = location;
     Flip     = flip;
 }
Пример #2
0
 static void Main(string[] args)
 {
     using (var game = new Arkanoid())
     {
         game.Run();
     }
 }
Пример #3
0
 public static Vector2 GetBrickLocation(Arkanoid game, int x, int y)
 {
     return(new Vector2(
                game.ArenaArea.X + x * Sprites.BrkWhite.Width,
                game.ArenaArea.Y +
                y * Sprites.BrkWhite.Height));
 }
Пример #4
0
 public LevelWadSelector(Arkanoid game, bool twoPlayer, LevelWad wad, int level, bool left)
 {
     Game      = game;
     TwoPlayer = twoPlayer;
     IsLeft    = left;
     Wad       = wad;
     if (!game.Settings.Unlocks.ContainsKey(wad.Name))
     {
         //exception not set.
         game.Settings.Unlocks.Add(wad.Name, new WadScore
         {
             Name = wad.Name
         });
     }
     else if (level == -1)
     {
         try
         {
             level = game.Settings.Unlocks[wad.Name].LevelScores.Count;
         }
         catch
         {
             level = 0;
         }
     }
     Level = level;
     Name  = "Round " + (Level + 1);
 }
Пример #5
0
        public static Map GetLevel(Arkanoid game, PlayArena playArena, Level level)
        {
            BackGroundTypes bg;

            if (!Enum.TryParse(Enum.GetNames(typeof(BackGroundTypes))[level.Background], out bg))
            {
                bg = BackGroundTypes.BlueCircuit;
            }
            EnemyTypes et;

            if (!Enum.TryParse(Enum.GetNames(typeof(EnemyTypes))[level.EnemyType], out et))
            {
                et = EnemyTypes.Tri;
            }
            game.BlocksWide = level.BricksWide;
            return(new Map
            {
                BricksWide = level.BricksWide,
                BricksHigh = level.BricksHigh,
                BackGround = bg,
                TopLeftEntryEnable = level.TopLeftEntryEnable == 1,
                TopRightEntryEnable = level.TopRightEntryEnable == 1,
                SideRightTopEntryEnable = level.SideRightTopEntryEnable == 1,
                SideRightMidEntryEnable = level.SideRightMidEntryEnable == 1,
                SideLeftTopEntryEnable = level.SideLeftTopEntryEnable == 1,
                SideLeftMidEntryEnable = level.SideLeftMidEntryEnable == 1,
                MinEnimyRealeaseTime = level.MaxEnemyReleaseTime,
                MaxEnimyRealeaseTime = level.MaxEnemyReleaseTime,
                MaxEnimies = level.MaxEnemies,
                EnemyType = et,
                PlayArena = playArena,
                BrickMap = GetLevelBrickMap(game, playArena, level)
            });
        }
Пример #6
0
 public BrickArena(Arkanoid game)
     : base(game)
 {
     Show      = new TimeSpan(0, 0, 0, 15);
     Starfield = new Starfield(100, new Rectangle(0, 0, (int)Game.Width, (int)Game.Height));
     Bricks    = new Dictionary <BrickTypes, Sprite>
     {
         { BrickTypes.White, Brick.GetBrickTexture(BrickTypes.White) },
         { BrickTypes.Orange, Brick.GetBrickTexture(BrickTypes.Orange) },
         { BrickTypes.SkyBlue, Brick.GetBrickTexture(BrickTypes.SkyBlue) },
         { BrickTypes.Green, Brick.GetBrickTexture(BrickTypes.Green) },
         { BrickTypes.Red, Brick.GetBrickTexture(BrickTypes.Red) },
         { BrickTypes.DarkRed, Brick.GetBrickTexture(BrickTypes.DarkRed) },
         { BrickTypes.Blue, Brick.GetBrickTexture(BrickTypes.Blue) },
         { BrickTypes.DarkBlue, Brick.GetBrickTexture(BrickTypes.DarkBlue) },
         { BrickTypes.Pink, Brick.GetBrickTexture(BrickTypes.Pink) },
         { BrickTypes.Yellow, Brick.GetBrickTexture(BrickTypes.Yellow) },
         { BrickTypes.Silver, Brick.GetBrickTexture(BrickTypes.Silver) },
         { BrickTypes.Black, Brick.GetBrickTexture(BrickTypes.Black) },
         { BrickTypes.Gold, Brick.GetBrickTexture(BrickTypes.Gold) },
         { BrickTypes.Regen, Brick.GetBrickTexture(BrickTypes.Regen) },
         { BrickTypes.BlackRegen, Brick.GetBrickTexture(BrickTypes.BlackRegen) },
         { BrickTypes.SilverSwap, Brick.GetBrickTexture(BrickTypes.SilverSwap) },
         { BrickTypes.GoldSwap, Brick.GetBrickTexture(BrickTypes.GoldSwap) },
         { BrickTypes.BlueSwap, Brick.GetBrickTexture(BrickTypes.BlueSwap) },
         { BrickTypes.Teleport, Brick.GetBrickTexture(BrickTypes.Teleport) },
         { BrickTypes.Transmit, Brick.GetBrickTexture(BrickTypes.Transmit) }
     };
 }
Пример #7
0
 public Ball(Arkanoid game, PlayArena playArena, bool megaBall, bool isCaught, bool isMagna) : base(game)
 {
     PlayArena   = playArena;
     IsMegaBall  = megaBall;
     IsMagnaBall = isMagna;
     X           = Y = 0;
     IsCaught    = isCaught;
 }
Пример #8
0
 public Capsule(CapsuleTypes type, Arkanoid game, PlayArena playArena, Vector2 location) : base(game)
 {
     PlayArena   = playArena;
     Motion      = new Vector2(0, 2);
     Location    = location;
     CapsuleType = type;
     Texture     = GetCapTexture(type);
 }
Пример #9
0
 public DohSplinter(Arkanoid game, PlayArena playArena, Vector2 location)
     : base(game)
 {
     PlayArena  = playArena;
     Texture    = Sprites.EnmDohSplinter;
     DieTexture = Sprites.EnmDieGeomUfo;
     Location   = location;
 }
Пример #10
0
        public PlayArena(Arkanoid game, bool twoPlayer, LevelWadSelector selector, Vaus vaus, int editLevelNumber,
                         Level editLevel = null, string editPath = null, bool demo = false)
            : base(game)
        {
            TwoPlayer     = twoPlayer;
            _editLevelNum = editLevelNumber;
            _editLevel    = editLevel;
            _editPath     = editPath;
            if (demo)
            {
                var w = Levels.Levels.Wads.Where(v => v.Levels.Count != 0).ToList();
                LevelSelector = new DemoLevelWadSelector(game, w[w.Count - 1], 0, false);
            }
            else
            {
                LevelSelector = selector;
            }
            if (LevelSelector != null)
            {
                LevelSelector.Initialise(this);

                if (LevelMap.TopLeftEntryEnable)
                {
                    EnimyEntries.Add(TopLeftEntry);
                }
                if (LevelMap.TopRightEntryEnable)
                {
                    EnimyEntries.Add(TopRightEntry);
                }

                if (LevelMap.SideRightTopEntryEnable)
                {
                    EnimyEntries.Add(SideRightTopEntry);
                }
                if (LevelMap.SideRightMidEntryEnable)
                {
                    EnimyEntries.Add(SideRightMidEntry);
                }
                if (LevelMap.SideLeftTopEntryEnable)
                {
                    EnimyEntries.Add(SideLeftTopEntry);
                }
                if (LevelMap.SideLeftMidEntryEnable)
                {
                    EnimyEntries.Add(SideLeftMidEntry);
                }

                NextEnimyRelease = new TimeSpan(0, 0,
                                                Arkanoid.Random.Next(LevelMap.MinEnimyRealeaseTime,
                                                                     LevelMap.MaxEnimyRealeaseTime));
            }
            NextBrickFlash = new TimeSpan(0, 0, 1);
            DemoMode       = demo;
            EndDemo        = new TimeSpan(0, 0, 2, 30);
            Vaus           = vaus ?? (demo ? new DemoVaus(game, this) : new Vaus(game, this, true, TwoPlayer));
            Vaus.PlayArena = this;
            Vaus.Reset();
        }
Пример #11
0
 public PlayerSelectArena(Arkanoid game, BackGroundTypes backGround) : base(game)
 {
     BackGround = backGround;
     MenuItems  = new[] { Textures.Cmn1Player, Textures.Cmn2Player, Textures.CmnBack };
     foreach (var texture in MenuItems)
     {
         MenuHeight += texture.Height;
     }
 }
Пример #12
0
 public PlayableArena(Arkanoid game)
     : base(game)
 {
     EnimyEntries = new List <ISpawner>();
     Capsules     = new List <Capsule>();
     Enimies      = new List <Enemy>();
     Balls        = new List <Ball>();
     Lasers       = new List <Laser>();
 }
Пример #13
0
 public LevelWad(Arkanoid game, string name, Texture2D box, Texture2D title,
                 List <KeyValuePair <Level, Level> > levels)
 {
     Game     = game;
     Name     = name;
     Box      = box;
     Title    = title;
     Levels   = levels;
     IsCustom = false;
 }
Пример #14
0
 public Sprite(Arkanoid game, int frames, TimeSpan rate, AnimationState anim, Texture2D map, float subScale = 1)
 {
     Game      = game;
     Map       = map;
     Animation = anim;
     SubScale  = subScale;
     Rate      = rate;
     Frames    = frames;
     OnFinish += () => { };
 }
Пример #15
0
 public PowerUpArena(Arkanoid game) : base(game)
 {
     Show      = new TimeSpan(0, 0, 0, 15);
     Starfield = new Starfield(100, new Rectangle(0, 0, (int)Game.Width, (int)Game.Height));
     Capsules  = new Dictionary <CapsuleTypes, Sprite>();
     foreach (var c in Enum.GetValues(typeof(CapsuleTypes)).Cast <CapsuleTypes>())
     {
         Capsules.Add(c, Capsule.GetCapTexture(c));
     }
     LastTouch = new TimeSpan(0, 0, 0, 0, 200);
 }
Пример #16
0
 public Enemy(Arkanoid game, PlayArena playArena, Sprite texture, Sprite dieTexture, Vector2 location,
              Direction direction = Direction.Down) : base(game)
 {
     PlayArena             = playArena;
     Location              = location;
     Texture               = texture;
     DieTexture            = dieTexture;
     Life                  = 1;
     Direction             = direction;
     ChangeDirection       = new TimeSpan(0, 0, 2);
     TimeToChangeDirection = TimeSpan.Zero;
 }
Пример #17
0
 public MenuArena(Arkanoid game, BackGroundTypes?background = null) : base(game)
 {
     BackGround = background ?? RandomUtils.RandomEnum <BackGroundTypes>();
     Levels.Levels.LoadWads(Game, Game.GraphicsDevice, Game.Content);
     Levels.Levels.UpdateCustom(Game);
     Demo = new TimeSpan(0, 0, 0, 30);
     Game.Sounds.IntroMusic.Play();
     MenuItems = new[] { Textures.CmnStart, Textures.CmnEdit, Textures.CmnCredits, Textures.CmnExit };
     foreach (var texture in MenuItems)
     {
         MenuHeight += texture.Height;
     }
 }
Пример #18
0
        public MenuArenaSelector(Arkanoid game, bool twoPlayer, BackGroundTypes backGround) : base(game)
        {
            BackGround = backGround;
            TwoPlayer  = twoPlayer;
            var menu = Levels.Levels.Wads.Select(wad => wad.Title).ToList();

            menu.Add(Textures.CmnBack);
            MenuItems = menu.ToArray();
            foreach (var texture in MenuItems)
            {
                MenuHeight += texture.Height;
            }
        }
Пример #19
0
 public BlobEnemy(Arkanoid game, PlayArena playArena, Sprite texture, Sprite dieTexture, Vector2 location)
     : base(game, playArena, texture, dieTexture, location)
 {
     if (location.X < playArena.Center.X)
     {
         Motion = location.X < PlayArena.TopLeftEntry.Location.X ? new Vector2(1, 0) : new Vector2(-1, 0);
     }
     else
     {
         Motion = location.X > PlayArena.TopRightEntry.Location.X + PlayArena.TopRightEntry.Texture.Width
             ? new Vector2(-1, 0)
             : new Vector2(1, 0);
     }
 }
Пример #20
0
 public static void LoadWads(Arkanoid game, GraphicsDevice graphicsDevice, ContentManager content)
 {
     ArkanoidWad = new LevelWad(game, "Arkanoid", content.Load <Texture2D>("Level/Arkanoid/Box.png"),
                                content.Load <Texture2D>("Level/Arkanoid/Title.png"), ArkanoidLevels);
     ArkanoidDxWad = new LevelWad(game, "Arkanoid DX", content.Load <Texture2D>("Level/Arkanoid DX/Box.png"),
                                  content.Load <Texture2D>("Level/Arkanoid DX/Title.png"), ArkanoidDxLevels);
     RevengeOfTheDohWad = new LevelWad(game, "Revenge Of The Doh",
                                       content.Load <Texture2D>("Level/Revenge Of The Doh/Box.png"),
                                       content.Load <Texture2D>("Level/Revenge Of The Doh/Title.png"), RevengeOfTheDohLevels);
     ArkanoidTournamentWad = new LevelWad(game, "Arkanoid Tournament",
                                          content.Load <Texture2D>("Level/Tournament/Box.png"),
                                          content.Load <Texture2D>("Level/Tournament/Title.png"), ArkanoidTournamentLevels);
     Wads = new List <LevelWad> {
         ArkanoidWad, ArkanoidDxWad, RevengeOfTheDohWad, ArkanoidTournamentWad
     };
 }
Пример #21
0
        public static List <Brick> GetLevelBrickMap(Arkanoid game, PlayArena playArena, Level map)
        {
            var by      = map.BricksHigh;
            var bx      = map.BricksWide;
            var bricks  = new BrickTypes[by][];
            var chances = new int[by][];
            var powers  = new CapsuleTypes[by][];

            for (var y = 0; y < by; y++)
            {
                bricks[y]  = new BrickTypes[bx];
                chances[y] = new int[bx];
                powers[y]  = new CapsuleTypes[bx];
                for (var x = 0; x < bx; x++)
                {
                    BrickTypes bt;
                    if (!Enum.TryParse(Enum.GetNames(typeof(BrickTypes))[map.GetBrickValue(y, x)], out bt))
                    {
                        bt = BrickTypes.Empty;
                    }
                    bricks[y][x] = bt;
                    CapsuleTypes p;
                    if (!Enum.TryParse(Enum.GetNames(typeof(CapsuleTypes))[map.GetPowerValue(y, x)], out p))
                    {
                        p = CapsuleTypes.Slow; //todo make random
                    }
                    bricks[y][x]  = bt;
                    chances[y][x] = map.GetChanceValue(y, x);
                    powers[y][x]  = p;
                }
            }
            var bm = new List <Brick>();

            for (var y = 0; y < bricks.Length; y++)
            {
                for (var x = 0; x < bricks[y].Length; x++)
                {
                    var b = bricks[y][x];
                    if (b != BrickTypes.Empty)
                    {
                        bm.Add(Types.GetBrick(b, game, playArena, GetBrickLocation(game, x, y), chances[y][x],
                                              powers[y][x]));
                    }
                }
            }
            return(bm);
        }
Пример #22
0
        public UnifiedInput(Arkanoid game)
        {
            Game              = game;
            TapListeners      = new List <Procedure <Vector2> >();
            MoveListeners     = new List <Procedure <Vector2> >();
            DraggingListeners = new List <Operation <Vector2> >();
            DraggedListeners  = new List <Operation <Vector2> >();

            Game.MouseInput.LeftClickListeners.Add(Tap);
            Game.MouseInput.MoveListeners.Add(Move);
            Game.MouseInput.DraggedListeners.Add(Dragged);
            Game.MouseInput.DraggingListeners.Add(Dragging);
            Game.TouchInput.TapListeners.Add(Tap);
            Game.TouchInput.MoveListeners.Add(Move);
            Game.TouchInput.DraggedListeners.Add(Dragged);
            Game.TouchInput.DraggingListeners.Add(Dragging);
        }
Пример #23
0
 public CreditsArena(Arkanoid game, BackGroundTypes backGround)
     : base(game)
 {
     Show    = new TimeSpan(0, 0, 0, 15);
     Credits = new List <string>
     {
         "Lead Developer",
         "Benjamin Tarrant",
         "I",
         "Creative Concepts and Levels",
         "Chloe Tarrant",
         "Jansen Tarrant",
         "Benjamin Tarrant",
         "I",
         "Deticated To",
         "Aurora and Ianeta Tarrant"
     };
 }
Пример #24
0
        public static void UpdateCustom(Arkanoid game)
        {
            var folder = AsyncIO.CreateFolderAsync(ApplicationData.Current.RoamingFolder, "Custom");
            var files  = AsyncIO.GetFilesAsync(folder).Where(f => f.Name.EndsWith(".level"));
            var levels = files.ToList();

            if (levels.Count != 0)
            {
                var levelList =
                    levels.Select(
                        f => new KeyValuePair <Level, Level>(LevelIO.ReadLevel(AsyncIO.ReadTextFileAsync(f)), null))
                    .ToList();
                var customWad = new LevelWad(game, "Custom", Textures.CmnTitle, Textures.CmnVerCustom, levelList);
                var ow        = Wads.Find(p => p.Name == "Custom");
                if (ow != null)
                {
                    Wads.Remove(ow);
                }
                Wads.Add(customWad);
            }
        }
Пример #25
0
 public Doh(Arkanoid game, PlayArena playArena) : base(game)
 {
     PlayArena  = playArena;
     DohBdrRect =
         new Rectangle((int)(PlayArena.Bounds.Right - (Sprites.CmnDohBoarder.Width + Sprites.BgDoh.Width)),
                       PlayArena.Bounds.Top,
                       (int)Sprites.CmnDohBoarder.Width, (int)Sprites.CmnDohBoarder.Height);
     DohRect = new Rectangle((int)(DohBdrRect.Center.X - Sprites.EnmDoh.Center.X),
                             (int)(Sprites.BgDoh.Height + PlayArena.Bounds.Top),
                             (int)Sprites.EnmDoh.Width, (int)Sprites.EnmDoh.Height);
     Splinters = new List <DohSplinter>();
     Life      = MaxLife;
     DohState  = DohState.CloseMouth;
     Texture.ToStart();
     Texture.SetAnimation(AnimationState.Pause);
     Web.ToStart();
     Web.SetAnimation(AnimationState.Pause);
     // Texture.OnFinish = AddSplinter;
     SetNextRelease();
     Hit = 0f;
 }
Пример #26
0
        public Brick(Arkanoid game, PlayArena playArena, Sprite texture, Sprite flash, Vector2 location, int score,
                     int life, int chance, CapsuleTypes capsuleType) : base(game)
        {
            PlayArena          = playArena;
            Texture            = texture;
            FlashTexture       = flash;
            Location           = location;
            IsInvincible       = life == -1 || life == -3 || life == -5 || life == -9;
            IsRegen            = life == -2 || life == -7;
            IsTeleport         = life == -3;
            IsTransmit         = life == -8;
            IsHorizontalMoving = life == -9;
            IsSwap             = life == -4 || life == -5 || life == -6;

            Regen       = TimeSpan.Zero;
            Swap        = IsTransmit ? new TimeSpan(0, 0, 0, Arkanoid.Random.Next(2, 6)) : new TimeSpan(0, 0, 0, 0, 500);
            Score       = score;
            Life        = life == -2 || life == -4 ? 2 : life == -6 || life == -8 ? 1 : life == -7 ? 4 : life;
            InitialLife = Life;
            Chance      = chance;
            CapsuleType = capsuleType;
        }
Пример #27
0
 public BaseArena(Arkanoid game)
 {
     Game          = game;
     TopLeftEntry  = new TopEntry(Game, new Vector2(Sprites.FrmCorner.Width + Sprites.FrmTopOpen.Width, 0));
     TopRightEntry = new TopEntry(Game,
                                  new Vector2(
                                      Game.FrameArea.Width - (Sprites.FrmCorner.Width + Sprites.FrmTopOpen.Width * 2),
                                      0));
     SideLeftTopEntry = new SideEntry(Game, new Vector2(0, Sprites.FrmCorner.Height), false);
     SideLeftMidEntry = new SideEntry(Game,
                                      new Vector2(0,
                                                  Game.FrameArea.Height / 2f - Sprites.FrmSideWarp.Height / 2), false);
     SideRightTopEntry = new SideEntry(Game,
                                       new Vector2(Game.FrameArea.Width - Sprites.FrmSideOpen.Width,
                                                   Sprites.FrmCorner.Height), true);
     SideRightMidEntry = new SideEntry(Game,
                                       new Vector2(Game.FrameArea.Width - Sprites.FrmSideOpen.Width,
                                                   Game.FrameArea.Height / 2f - Sprites.FrmSideWarp.Height / 2), true);
     LeftWarp  = new Warp(new Vector2(0, Game.FrameArea.Height - Sprites.FrmSideWarp.Height * 2), false);
     RightWarp = new Warp(new Vector2(Game.FrameArea.Width - Sprites.FrmSideWarp.Width,
                                      Game.FrameArea.Height - Sprites.FrmSideWarp.Height * 2), true);
     Fade = new Fader(true, true);
 }
Пример #28
0
        public LoadArena(Arkanoid game, LevelWad wad, BackGroundTypes backGround, bool twoPlayer)
            : base(game)
        {
            TwoPlayer       = twoPlayer;
            BackGround      = backGround;
            Wad             = wad;
            LevelNumber     = game.Settings.Unlocks.ContainsKey(wad.Name) ? game.Settings.Unlocks[wad.Name].LevelScores.Count : 0;
            MaxLevel        = LevelNumber;
            LeftLevelOffset = new Vector2(Bounds.Center.X - (Textures.CmnSmallFrameCustom.Width + 20),
                                          Bounds.Center.Y - Textures.CmnSmallFrameCustom.Height / 2f);

            RightLevelOffset = new Vector2(Bounds.Center.X, LeftLevelOffset.Y);
            RightButton      = new Vector2(RightLevelOffset.X + (Textures.CmnSmallFrame.Width + 20),
                                           LeftLevelOffset.Y - Textures.CmnRight.Height + Textures.CmnSmallFrame.Height / 2f);
            LeftButton = new Vector2(LeftLevelOffset.X - (Textures.CmnLeft.Width + 20),
                                     LeftLevelOffset.Y - Textures.CmnLeft.Height + Textures.CmnSmallFrame.Height / 2f);
            ExitOffset = new Vector2(Bounds.Center.X - Textures.CmnBack.Width / 2f,
                                     LeftLevelOffset.Y + Textures.CmnSmallFrame.Height + 20);

            TitleOffset = new Vector2(Bounds.Center.X - wad.Title.Width / 2f,
                                      LeftLevelOffset.Y - (wad.Title.Height + 20));

            Left = wad.Levels[LevelNumber].Key != null;
        }
Пример #29
0
        public KeyboardInput(Arkanoid game, Color oskColor, float oskAlpha, bool visible)
        {
            Game         = game;
            Typed        = new List <string>();
            _oskShowHide = new Tween(new TimeSpan(0, 0, 0, 0, 500), 1, 0);
            _oskShowHide.Finish();
            _oskButtonHits = new List <OskButton>();
            OskAlpha       = oskAlpha;
            OskColor       = oskColor;
            _oskVisible    = visible;
            _oskLower      = Game.Content.Load <Texture2D>(@"OSK\OSKLC");
            _oskUpper      = Game.Content.Load <Texture2D>(@"OSK\OSKUC");
            _oskFrame      = Game.Content.Load <Texture2D>(@"OSK\OSKF");
            _oskUnShift    = Game.Content.Load <Texture2D>(@"OSK\OSKUSFT");
            _oskShift      = Game.Content.Load <Texture2D>(@"OSK\OSKSFT");
            OskAlignment   = AlignmentX.Center;
            _oskRects      = new Dictionary <Keys, Rectangle>
            {
                { Keys.Escape, new Rectangle(3, 5, 53, 45) },
                { Keys.NumPad1, new Rectangle(58, 5, 33, 45) },
                { Keys.NumPad2, new Rectangle(94, 5, 33, 45) },
                { Keys.NumPad3, new Rectangle(130, 5, 33, 45) },
                { Keys.NumPad4, new Rectangle(166, 5, 33, 45) },
                { Keys.NumPad5, new Rectangle(200, 5, 33, 45) },
                { Keys.NumPad6, new Rectangle(238, 5, 33, 45) },
                { Keys.NumPad7, new Rectangle(274, 5, 33, 45) },
                { Keys.NumPad8, new Rectangle(310, 5, 33, 45) },
                { Keys.NumPad9, new Rectangle(346, 5, 33, 45) },
                { Keys.NumPad0, new Rectangle(382, 5, 33, 45) },
                // {Keys.D1, new Rectangle(58,5,33,45)},
                // {Keys.D2, new Rectangle(94,5,33,45)},
                // {Keys.D3, new Rectangle(130,5,33,45)},
                // {Keys.D4, new Rectangle(166,5,33,45)},
                // {Keys.D5, new Rectangle(200,5,33,45)},
                // {Keys.D6, new Rectangle(238,5,33,45)},
                // {Keys.D7, new Rectangle(274,5,33,45)},
                // {Keys.D8, new Rectangle(310,5,33,45)},
                // {Keys.D9, new Rectangle(346,5,33,45)},
                // {Keys.D0, new Rectangle(382,5,33,45)},
                { Keys.Back, new Rectangle(417, 5, 52, 45) },
                { Keys.Tab, new Rectangle(4, 52, 51, 43) },
                { Keys.Q, new Rectangle(58, 52, 33, 43) },
                { Keys.W, new Rectangle(94, 52, 33, 43) },
                { Keys.E, new Rectangle(130, 52, 33, 43) },
                { Keys.R, new Rectangle(166, 52, 33, 43) },
                { Keys.T, new Rectangle(200, 52, 33, 43) },
                { Keys.Y, new Rectangle(238, 52, 33, 43) },
                { Keys.U, new Rectangle(274, 52, 33, 43) },
                { Keys.I, new Rectangle(310, 52, 33, 43) },
                { Keys.O, new Rectangle(346, 52, 33, 43) },
                { Keys.P, new Rectangle(382, 52, 33, 43) },
                { Keys.Enter, new Rectangle(418, 52, 51, 89) },
                { Keys.CapsLock, new Rectangle(4, 98, 51, 43) },
                { Keys.A, new Rectangle(58, 98, 33, 43) },
                { Keys.S, new Rectangle(94, 98, 33, 43) },
                { Keys.D, new Rectangle(130, 98, 33, 43) },
                { Keys.F, new Rectangle(166, 98, 33, 43) },
                { Keys.G, new Rectangle(200, 98, 33, 43) },
                { Keys.H, new Rectangle(238, 98, 33, 43) },
                { Keys.J, new Rectangle(274, 98, 33, 43) },
                { Keys.K, new Rectangle(310, 98, 33, 43) },
                { Keys.L, new Rectangle(346, 98, 33, 43) },
                { Keys.LeftShift, new Rectangle(3, 143, 53, 44) },
                { Keys.Z, new Rectangle(58, 144, 33, 43) },
                { Keys.X, new Rectangle(94, 144, 33, 43) },
                { Keys.C, new Rectangle(130, 144, 33, 43) },
                { Keys.V, new Rectangle(166, 144, 33, 43) },
                { Keys.B, new Rectangle(200, 144, 33, 43) },
                { Keys.N, new Rectangle(238, 144, 33, 43) },
                { Keys.M, new Rectangle(274, 144, 33, 43) },
                { Keys.OemQuotes, new Rectangle(382, 98, 33, 43) },  //"
                { Keys.OemComma, new Rectangle(310, 144, 33, 43) },  //;
                { Keys.OemPeriod, new Rectangle(346, 144, 33, 43) }, //:

                //{Keys.OemSemicolon, new Rectangle(346,52,33,43)}, SHIFT oemSemicolon
                { Keys.Up, new Rectangle(382, 144, 33, 43) },
                { Keys.RightShift, new Rectangle(418, 143, 51, 44) },
                { Keys.Space, new Rectangle(94, 190, 249, 43) },
                { Keys.Left, new Rectangle(346, 190, 33, 43) },
                { Keys.Down, new Rectangle(382, 190, 33, 43) },
                { Keys.Right, new Rectangle(418, 190, 33, 43) }
            };

            _keyboardListeners = new List <Procedure <KeyboardInput> >();
            _taps             = new List <Vector2>();
            _oskCurrentState  = new List <Keys>();
            _oskPreviousState = new List <Keys>();
            OskArea           = new Rectangle((int)(Game.Center.X - _oskLower.Width / 2f), (int)Game.Height, _oskLower.Width,
                                              _oskLower.Height);
        }
Пример #30
0
 public KeyboardInput(Arkanoid game)
     : this(game, Color.White, .75f, false)
 {
 }