Difference between revisions of "Ruminate Example"
(→Setup) |
(→Create a new screen) |
||
Line 80: | Line 80: | ||
var text = new Text(game.GreySpriteFont, Color.Black); | var text = new Text(game.GreySpriteFont, Color.Black); | ||
− | _gui = new Gui(game, skin, text, | + | _gui = new Gui(game, skin, text); |
− | + | _gui.AddWidget( | |
− | new | + | new Panel(10,10,300,300) |
− | new SingleLineTextBox(10, | + | { |
+ | Children = new Widget[] { | ||
+ | new Button(10,10,"test"), | ||
+ | new SingleLineTextBox(10, 50, 120, 10) { Value = "Hello World"} | ||
} | } | ||
− | }; | + | }); |
} | } | ||
Revision as of 09:44, 10 October 2017
Installation
Open the nuget package console (under tools) and run the command
Install-Package MonoGame.Framework.Gui -Version 1.0.1
Now you need to download the following zip file which contains the content folder for Ruminate, you need to extract this into the content folder of your project:
https://drive.google.com/file/d/0Bw-0YEA_JX9gcFEyY1F2aXVJbGs/view?usp=sharing
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(GameTime time);
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{
}
Within the new class add the following variable:
Gui _gui;
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 method:
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);
_gui.AddWidget(
new Panel(10,10,300,300)
{
Children = new Widget[] {
new Button(10,10,"test"),
new SingleLineTextBox(10, 50, 120, 10) { Value = "Hello World"}
}
});
}
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(@"GreySkin\Map.txt").ReadToEnd();
GreySpriteFont = Content.Load<SpriteFont>(@"GreySkin\Texture");