Changeset 4521 for 2013/30/DenisZ


Ignore:
Timestamp:
2013-07-22 14:57:49 (6 years ago)
Author:
dezhidki
Message:

Talletus.

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  
    8484    <Compile Include="Game.cs" /> 
    8585    <Compile Include="World\Level.cs" /> 
     86    <Compile Include="World\LevelTest.cs" /> 
    8687    <Compile Include="World\Tiles\Tile.cs" /> 
    8788    <Compile Include="World\Tiles\TileFloor.cs" /> 
  • 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Game.cs

    r4512 r4521  
    1010using Microsoft.Xna.Framework.Media; 
    1111using CastleMaster.Input; 
    12  
    1312using Keys = System.Windows.Forms.Keys; 
     13using Viewport = CastleMaster.Graphics.Viewport; 
    1414using System.Text; 
    1515using CastleMaster.Graphics; 
     
    3535        private RenderHelper renderer; 
    3636        private Camera camera; 
    37         private Level level; 
    38          
     37        private LevelTest level; 
     38        private int cameraSpeed = 10; 
     39 
    3940        #region Counter 
    4041        private readonly TimeSpan ONE_SECOND = TimeSpan.FromSeconds(1.0); 
     
    7374        { 
    7475            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); 
    7582        } 
    7683 
     
    101108 
    102109            camera = new Camera(); 
    103             level = new Level(128, 128); 
     110            level = new LevelTest(128, 128); 
    104111        } 
    105112 
     
    116123            if (InputHandler.HasKeyBeenPressed(Keys.Escape)) 
    117124                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; 
    118137 
    119138            updates++; 
     
    140159 
    141160            level.RenderBackground(camera, renderer); 
    142              
     161 
    143162            renderer.EndRender(); 
    144163 
  • 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Graphics/Camera.cs

    r4512 r4521  
    44using System.Text; 
    55using Microsoft.Xna.Framework; 
     6using CastleMaster.Input; 
    67 
    78namespace CastleMaster.Graphics 
     
    3031        } 
    3132 
    32         public int XRight  
     33        public int XRight 
    3334        { 
    3435            get { return xOffs + Game.WIDTH; } 
     
    4546        public void Update() 
    4647        { 
     48            mouseWorldPos = Viewport.ScreenToWorld(InputHandler.MouseX + xOffs, InputHandler.MouseY + yOffs); 
     49        } 
    4750 
     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); 
    4857        } 
    4958    } 
  • 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/World/Level.cs

    r4512 r4521  
    2828            new Tile(this); 
    2929            InitTiles(); 
     30 
     31            InitLevel(); 
    3032        } 
     33 
     34        public int Width { get { return width; } } 
     35 
     36        public int Height { get { return height; } } 
    3137 
    3238        public List<Tile> RegisteredTiles { get { return registeredTiles; } } 
     
    3440        protected virtual void InitTiles() { } 
    3541 
     42        protected virtual void InitLevel() { } 
     43 
    3644        public void RenderBackground(Camera camera, RenderHelper renderer) 
    3745        { 
    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; 
    4048 
    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; 
    4553 
    4654            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++) 
    5059                { 
    5160                    int xTile = x + (y >> 1) + (y & 1); 
     
    5463                    if (xTile >= 0 && zTile >= 0 && xTile < width && zTile < height) 
    5564                    { 
    56                         Tile t = registeredTiles[tiles[xTile + zTile * width]]; 
     65                        tp = xTile + zTile * width; 
     66                        Tile t = registeredTiles[tiles[tp]]; 
    5767                        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]); 
    5969                    } 
    6070                } 
     71            } 
    6172 
    6273            renderer.SetOffset(); 
  • 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/World/Tiles/TileFloor.cs

    r4512 r4521  
    1717        public override void Render(RenderHelper renderer, Vector2 screenPos, int tileX, int tileZ, byte dataVal) 
    1818        { 
     19            renderer.Render(screenPos, 0, 0, Resources.SPRITESHEET_TILES, Viewport.ZOOM); 
    1920        } 
    2021    } 
Note: See TracChangeset for help on using the changeset viewer.