コード例 #1
0
ファイル: Game.cs プロジェクト: Mszauer/TileBasedGames
        public void Initialize(OpenTK.GameWindow window)
        {
            Window = window;
            //window.ClientSize = new Size(room1Layout[0].Length * tileSize, room1Layout.Length * tileSize);
            //Window.ClientSize = new Size(8 * tileSize, 6 * tileSize);
            Window.ClientSize = new Size(990, 550);
            projectiles = new List<Bullet>();
            Sprite = TextureManager.Instance.LoadTexture(spriteSheets);
            TextureManager.Instance.UseNearestFiltering = true;

            GraphicsManager.Instance.SetDepthRange(0, 21 * 21);

            hero = new PlayerCharacter(heroSheet, new Point(spawnTile.X * TILE_W, spawnTile.Y * TILE_H), 20);
            room1 = new Map(room1Layout, spriteSheets, spriteSources, 2, 0);
            room2 = new Map(room2Layout, spriteSheets, spriteSources, 0, 2);
            room1[4][7].MakeDoor(room2, new Point(1, 1));
            room2[1][0].MakeDoor(room1, new Point(6, 4));
            currentMap = room1;

            room1.AddEnemy(npcSheet, new Point(6 * TILE_W, 1 * TILE_H), true);
            room2.AddEnemy(npcSheet, new Point(1 * TILE_W, 4 * TILE_H), false);
            room1.AddItem(spriteSheets, new Rectangle(20, 198, 44, 49), 10, new Point(3 * TILE_W, 2 * TILE_H + 7));
            room1.AddItem(spriteSheets, new Rectangle(20, 198, 44, 49), 20, new Point(5 * TILE_W, 4 * TILE_H + 7));
            room2.AddItem(spriteSheets, new Rectangle(20, 198, 44, 49), 30, new Point(4 * TILE_W, 2 * TILE_H + 7));
        }
コード例 #2
0
ファイル: Tile.cs プロジェクト: Mszauer/TileBasedGames
 public void MakeDoor(Map target, Point location)
 {
     DoorTarget = target;
     DoorLocation = location;
     IsDoor = true;
 }
コード例 #3
0
ファイル: Game.cs プロジェクト: Mszauer/TileBasedGames
 public void Update(float dt)
 {
     if (InputManager.Instance.KeyPressed(OpenTK.Input.Key.U)) {
         if (ViewWorldSpace == false) {
             ViewWorldSpace = true;
         }
         else {
             ViewWorldSpace = false;
         }
     }
     if (!GameOver) {
         currentMap = currentMap.ResolveDoors(hero);
         hero.Update(dt);
         if (InputManager.Instance.KeyPressed(OpenTK.Input.Key.Space)) {
             PointF velocity = new PointF(0.0f, 0.0f);
             if (hero.currentSprite == "up") {
                 velocity.Y = -100.0f;
             }
             else if (hero.currentSprite == "down") {
                 velocity.Y = 100.0f;
             }
             if (hero.currentSprite == "left") {
                 velocity.X = -100.0f;
             }
             else if (hero.currentSprite == "right") {
                 velocity.X = 100.0f;
             }
             projectiles.Add(new Bullet(hero.Center, velocity,Sprite));
         }
         for (int i = projectiles.Count - 1; i >= 0; i--) {
             projectiles[i].Update(dt);
         }
         currentMap.Update(dt, hero, projectiles);
     }
     else {
         if (InputManager.Instance.KeyPressed(OpenTK.Input.Key.Space)) {
             currentMap = room1;
             hero.Position = new Point(spawnTile.X * TILE_W, spawnTile.Y * TILE_H);
             GameOver = false;
         }
     }
 }