Ignore:
Timestamp:
2013-09-01 18:40:38 (6 years ago)
Author:
dezhidki
Message:
  • Lisätty kunnon ohjeet.
  • Ctrl + RMouse toimii nyt kunnolla (voi valita monta kerrallaan).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Guis/GuiInstructions.cs

    r4752 r4753  
    1 using System; 
     1using CastleMaster.Graphics; 
     2using CastleMaster.Input; 
     3using Microsoft.Xna.Framework; 
     4using System; 
    25using System.Collections.Generic; 
    36using System.Linq; 
    47using System.Text; 
     8using System.Windows.Forms; 
     9using Microsoft.Xna.Framework.Graphics; 
    510 
    611namespace CastleMaster.Guis 
     
    813    public class GuiInstructions : Gui 
    914    { 
    10         public GuiInstructions(GuiManager manager) 
     15        private const String HELP_MOVE = "<LEFT, RIGHT> Switch Pages"; 
     16        private const String HELP_CLOSE = "<X> Main menu"; 
     17        private const String NAME = "Instructions"; 
     18        private const String PAGE = "Page"; 
     19        private const char AST = '/'; 
     20 
     21        private GuiMainScreen mainMenu; 
     22        private Rectangle backGroundRect; 
     23        private Vector2 helpPos, pageNumPos, helpPos2; 
     24        private StringBuilder pageNumText; 
     25        private int currentPage = 0; 
     26        private Texture2D[] pages; 
     27 
     28        public GuiInstructions(GuiMainScreen mainMenu, GuiManager manager) 
    1129            : base(manager) 
    1230        { 
     31            this.mainMenu = mainMenu; 
     32            backGroundRect = new Rectangle(0, 0, Game.WIDTH, Game.HEIGHT); 
     33            helpPos = new Vector2(10, Game.HEIGHT - 50); 
    1334 
     35            pages = new Texture2D[] { Resources.SPRITE_PAGE_WELCOME, Resources.SPRITE_PAGE_CONTROLS, Resources.SPRITE_PAGE_GUI, Resources.SPRITE_PAGE_BUILDINGS, Resources.SPRITE_PAGE_UNITS }; 
     36            pageNumText = new StringBuilder(PAGE).Append(" 1/").Append(pages.Length); 
     37            pageNumPos = new Vector2(Game.WIDTH - 150, Game.HEIGHT - 50); 
     38 
     39            helpPos2 = new Vector2(helpPos.X, helpPos.Y + 16); 
     40        } 
     41 
     42        public override int Importance 
     43        { 
     44            get 
     45            { 
     46                return Gui.IMPORTANCE_HIGH; 
     47            } 
     48        } 
     49 
     50        private void ShowMainMenu() 
     51        { 
     52            Remove(); 
     53            manager.AddGui(mainMenu, true, true); 
     54        } 
     55 
     56        public override void Update() 
     57        { 
     58            if (InputHandler.HasKeyBeenPressed(Keys.X)) 
     59                ShowMainMenu(); 
     60 
     61            if (InputHandler.HasKeyBeenPressed(Keys.Right)) 
     62            { 
     63                currentPage++; 
     64                if (currentPage >= pages.Length) 
     65                    currentPage = 0; 
     66 
     67                pageNumText.Clear().Append(PAGE).Append(' ').Append(currentPage + 1).Append(AST).Append(pages.Length); 
     68            } 
     69            else if (InputHandler.HasKeyBeenPressed(Keys.Left)) 
     70            { 
     71                currentPage--; 
     72                if (currentPage < 0) 
     73                    currentPage = pages.Length - 1; 
     74                pageNumText.Clear().Append(PAGE).Append(' ').Append(currentPage + 1).Append(AST).Append(pages.Length); 
     75            } 
     76 
     77        } 
     78 
     79        public override void Render(RenderHelper renderer) 
     80        { 
     81            renderer.SpriteBatch.Draw(pages[currentPage], backGroundRect, Color.White); 
     82 
     83            renderer.SpriteBatch.DrawString(Resources.FONT, HELP_CLOSE, helpPos, Color.White); 
     84            renderer.SpriteBatch.DrawString(Resources.FONT, pageNumText, pageNumPos, Color.White); 
     85            renderer.SpriteBatch.DrawString(Resources.FONT, HELP_MOVE, helpPos2, Color.White); 
     86        } 
     87    } 
     88 
     89    internal class Page 
     90    { 
     91        public virtual void Render(RenderHelper renderer) { } 
     92    } 
     93 
     94    internal class Page1 : Page 
     95    { 
     96        private const string TEST = "Hello, world!"; 
     97 
     98        public override void Render(RenderHelper renderer) 
     99        { 
     100            renderer.SpriteBatch.DrawString(Resources.FONT, TEST, new Vector2(10, 100), Color.White); 
    14101        } 
    15102    } 
Note: See TracChangeset for help on using the changeset viewer.