Difference between revisions of "Ruminate Example"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Create a new screen)
(Create a new screen)
Line 27: Line 27:
  
 
==Create a new screen==
 
==Create a new screen==
Create a new class from the project menu and name the class screen1. Edit the class declaration to make it a class of Screen:
+
Create a new class from the project menu and name the class screen1. You need to add the following to the using section of the new class;
 +
 
 +
<syntaxhighlight lang=csharp>
 +
using Microsoft.Xna.Framework;
 +
using Microsoft.Xna.Framework.Graphics;
 +
using Ruminate.GUI.Content;
 +
using Ruminate.GUI.Framework;
 +
</syntaxhighlight>
 +
 
 +
Edit the class declaration to make it a class of Screen:
  
 
<syntaxhighlight lang=csharp>
 
<syntaxhighlight lang=csharp>

Revision as of 14:02, 9 October 2017

Installation

The nuget repository for Ruminate is broken and won't install, so download this zip file which contains the RuminateGUI.dll file. Copy the DLL file into your project folder.

Then under project, click add reference and browse for the DLL file.

Setup

Click on project and create a new class, call it Screen.cs. Copy the following code:

using Microsoft.Xna.Framework;

namespace YourNameSpace {

    public abstract class Screen {

        public Color Color { get; set; }

        public abstract void Init(Game1 game);
        public abstract void OnResize();
        public abstract void Update();
        public abstract void Draw();
    }
}

Remember to use the original namespace from when you created the class.

Create a new screen

Create a new class from the project menu and name the class screen1. You need to add the following to the using section of the new class;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Ruminate.GUI.Content;
using Ruminate.GUI.Framework;

Edit the class declaration to make it a class of Screen:

class screen1: Screen{

}

Now copy the following methods into the class:

 public override void OnResize() {            
     _gui.Resize();              
 }

 public override void Update() {
     _gui.Update();
 }

 public override void Draw() {
     _gui.Draw();
 }

the final method required is an Init method, create the following variable and init method:

 Gui _gui;

 public override void Init(Game1 game) {

      Color = Color.White;

      var skin = new Skin(game.GreyImageMap, game.GreyMap);
      var text = new Text(game.GreySpriteFont, Color.Black);

      _gui = new Gui(game, skin, text, testSkins, testTexts) {
          Widgets = new Widget[] {                                           
              new SingleLineTextBox(10, 550, 120, 10) { Value = "0123456789" }, //Test with default value 
              new SingleLineTextBox(10, 575, 120, 10) { Value = "0123456789", Text = "testText" } //Test with specified font
          }
      };
 }

Displaying a screen

Add the following variables into your Game1.cs:

Screen _currentScreen;
Screen[] _currentScreens;

public SpriteFont GreySpriteFont;
public Texture2D GreyImageMap;
public string GreyMap;

In the LoadContent method of Game1.cs add the following to load the textures and imagemap:

GreyImageMap = Content.Load<Texture2D>(@"GreySkin\ImageMap");
GreyMap = File.OpenText(@"GuiExampleContent\GreySkin\Map.txt").ReadToEnd();
GreySpriteFont = Content.Load<SpriteFont>(@"GreySkin\Texture");