Changeset 4521
- Timestamp:
- 2013-07-22 14:57:49 (10 years ago)
- Location:
- 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/CastleMaster.csproj
r4512 r4521 84 84 <Compile Include="Game.cs" /> 85 85 <Compile Include="World\Level.cs" /> 86 <Compile Include="World\LevelTest.cs" /> 86 87 <Compile Include="World\Tiles\Tile.cs" /> 87 88 <Compile Include="World\Tiles\TileFloor.cs" /> -
2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Game.cs
r4512 r4521 10 10 using Microsoft.Xna.Framework.Media; 11 11 using CastleMaster.Input; 12 13 12 using Keys = System.Windows.Forms.Keys; 13 using Viewport = CastleMaster.Graphics.Viewport; 14 14 using System.Text; 15 15 using CastleMaster.Graphics; … … 35 35 private RenderHelper renderer; 36 36 private Camera camera; 37 private Level level; 38 37 private LevelTest level; 38 private int cameraSpeed = 10; 39 39 40 #region Counter 40 41 private readonly TimeSpan ONE_SECOND = TimeSpan.FromSeconds(1.0); … … 73 74 { 74 75 input.RegisterKeyboardKey(Keys.Escape); 76 input.RegisterKeyboardKey(Keys.W); 77 input.RegisterKeyboardKey(Keys.A); 78 input.RegisterKeyboardKey(Keys.S); 79 input.RegisterKeyboardKey(Keys.D); 80 input.RegisterKeyboardKey(Keys.Z); 81 input.RegisterKeyboardKey(Keys.X); 75 82 } 76 83 … … 101 108 102 109 camera = new Camera(); 103 level = new Level (128, 128);110 level = new LevelTest(128, 128); 104 111 } 105 112 … … 116 123 if (InputHandler.HasKeyBeenPressed(Keys.Escape)) 117 124 this.Exit(); 125 if (InputHandler.IsKeyDown(Keys.W)) 126 camera.YTop -= cameraSpeed; 127 if (InputHandler.IsKeyDown(Keys.S)) 128 camera.YTop += cameraSpeed; 129 if (InputHandler.IsKeyDown(Keys.A)) 130 camera.XLeft -= cameraSpeed; 131 if (InputHandler.IsKeyDown(Keys.D)) 132 camera.XLeft += cameraSpeed; 133 if (InputHandler.HasKeyBeenPressed(Keys.Z)) 134 Viewport.ZOOM += Viewport.ZOOM_STEP; 135 if (InputHandler.HasKeyBeenPressed(Keys.X)) 136 Viewport.ZOOM -= Viewport.ZOOM_STEP; 118 137 119 138 updates++; … … 140 159 141 160 level.RenderBackground(camera, renderer); 142 161 143 162 renderer.EndRender(); 144 163 -
2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Graphics/Camera.cs
r4512 r4521 4 4 using System.Text; 5 5 using Microsoft.Xna.Framework; 6 using CastleMaster.Input; 6 7 7 8 namespace CastleMaster.Graphics … … 30 31 } 31 32 32 public int XRight 33 public int XRight 33 34 { 34 35 get { return xOffs + Game.WIDTH; } … … 45 46 public void Update() 46 47 { 48 mouseWorldPos = Viewport.ScreenToWorld(InputHandler.MouseX + xOffs, InputHandler.MouseY + yOffs); 49 } 47 50 51 public void Zoom(float factor) 52 { 53 Viewport.ZOOM += factor; 54 55 xOffs = (int)((mouseWorldPos.X - mouseWorldPos.Y) * Viewport.X_SCALE_ZOOMED); 56 yOffs = (int)((mouseWorldPos.X + mouseWorldPos.Y) * Viewport.Y_SCALE_ZOOMED); 48 57 } 49 58 } -
2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/World/Level.cs
r4512 r4521 28 28 new Tile(this); 29 29 InitTiles(); 30 31 InitLevel(); 30 32 } 33 34 public int Width { get { return width; } } 35 36 public int Height { get { return height; } } 31 37 32 38 public List<Tile> RegisteredTiles { get { return registeredTiles; } } … … 34 40 protected virtual void InitTiles() { } 35 41 42 protected virtual void InitLevel() { } 43 36 44 public void RenderBackground(Camera camera, RenderHelper renderer) 37 45 { 38 int w = (Game.WIDTH / Viewport.FLOOR_TILE_HEIGHT);39 int h = (Game.HEIGHT / Viewport.Y_STEP);46 float w = (Game.WIDTH / Viewport.FLOOR_TILE_WIDTH) / Viewport.ZOOM; 47 float h = (Game.HEIGHT / Viewport.Y_STEP) / Viewport.ZOOM; 40 48 41 int x0 = camera.XLeft / Viewport.FLOOR_TILE_HEIGHT;42 int y0 = camera.YTop / Viewport.Y_STEP;43 int x1 = x0 + w;44 int y1 = y0 + h;49 int x0 = (int)((camera.XLeft / Viewport.FLOOR_TILE_WIDTH) / Viewport.ZOOM) - 3; 50 int y0 = (int)((camera.YTop / Viewport.Y_STEP) / Viewport.ZOOM) - 5; 51 int x1 = (int)(x0 + w) + 5; 52 int y1 = (int)(y0 + h) + 7; 45 53 46 54 renderer.SetOffset(camera); 47 48 for (int y = y0; y <= y1; y++) 49 for (int x = x0; x <= x1; x++) 55 int tp; 56 for (int y = y0; y < y1; y++) 57 { 58 for (int x = x0; x < x1; x++) 50 59 { 51 60 int xTile = x + (y >> 1) + (y & 1); … … 54 63 if (xTile >= 0 && zTile >= 0 && xTile < width && zTile < height) 55 64 { 56 Tile t = registeredTiles[tiles[xTile + zTile * width]]; 65 tp = xTile + zTile * width; 66 Tile t = registeredTiles[tiles[tp]]; 57 67 if (t.ID != TILE_VOID) 58 t.Render(renderer, new Vector2((x * Viewport.FLOOR_TILE_WIDTH + (y & 1) * Viewport.X_STEP) * Viewport.ZOOM, (y * Viewport.Y_STEP - Viewport.Y_STEP) * Viewport.ZOOM), xTile, zTile, data[xTile + zTile * width]);68 t.Render(renderer, new Vector2((x * Viewport.FLOOR_TILE_WIDTH + (y & 1) * Viewport.X_STEP) * Viewport.ZOOM, (y * Viewport.Y_STEP + Viewport.Y_STEP) * Viewport.ZOOM), xTile, zTile, data[tp]); 59 69 } 60 70 } 71 } 61 72 62 73 renderer.SetOffset(); -
2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/World/Tiles/TileFloor.cs
r4512 r4521 17 17 public override void Render(RenderHelper renderer, Vector2 screenPos, int tileX, int tileZ, byte dataVal) 18 18 { 19 renderer.Render(screenPos, 0, 0, Resources.SPRITESHEET_TILES, Viewport.ZOOM); 19 20 } 20 21 }
Note: See TracChangeset
for help on using the changeset viewer.