Basic GUI library!
This commit is contained in:
+176
-151
@@ -1,161 +1,186 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Diagnostics;
|
||||||
using Microsoft.Xna.Framework;
|
using System.Linq;
|
||||||
using Microsoft.Xna.Framework.Audio;
|
using DepthsBelow.GUI;
|
||||||
using Microsoft.Xna.Framework.Content;
|
using Microsoft.Xna.Framework;
|
||||||
using Microsoft.Xna.Framework.GamerServices;
|
using Microsoft.Xna.Framework.Audio;
|
||||||
using Microsoft.Xna.Framework.Graphics;
|
using Microsoft.Xna.Framework.Content;
|
||||||
using Microsoft.Xna.Framework.Input;
|
using Microsoft.Xna.Framework.GamerServices;
|
||||||
using Microsoft.Xna.Framework.Media;
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using Microsoft.Xna.Framework.Input;
|
||||||
namespace DepthsBelow
|
using Microsoft.Xna.Framework.Media;
|
||||||
{
|
|
||||||
/// <summary>
|
namespace DepthsBelow
|
||||||
/// This is the main type for your game
|
{
|
||||||
/// </summary>
|
/// <summary>
|
||||||
public class Core : Microsoft.Xna.Framework.Game
|
/// This is the main type for your game
|
||||||
{
|
/// </summary>
|
||||||
|
public class Core : Microsoft.Xna.Framework.Game
|
||||||
|
{
|
||||||
public static GraphicsDeviceManager GraphicsDeviceManager;
|
public static GraphicsDeviceManager GraphicsDeviceManager;
|
||||||
SpriteBatch spriteBatch;
|
SpriteBatch spriteBatch;
|
||||||
|
|
||||||
public Camera Camera;
|
public Camera Camera;
|
||||||
|
|
||||||
public static MouseInput MouseInput;
|
public static MouseInput MouseInput;
|
||||||
public static KeyboardInput KeyboardInput;
|
public static KeyboardInput KeyboardInput;
|
||||||
public List<Soldier> Squad;
|
public List<Soldier> Squad;
|
||||||
public List<SmallEnemy> Swarm;
|
public List<SmallEnemy> Swarm;
|
||||||
public static Map Map;
|
public static Map Map;
|
||||||
|
|
||||||
public SmallEnemy TestMonster;
|
public SmallEnemy TestMonster;
|
||||||
|
|
||||||
public Core()
|
public Core()
|
||||||
{
|
{
|
||||||
GraphicsDeviceManager = new GraphicsDeviceManager(this);
|
GraphicsDeviceManager = new GraphicsDeviceManager(this);
|
||||||
Content.RootDirectory = "Content";
|
Content.RootDirectory = "Content";
|
||||||
|
|
||||||
GraphicsDeviceManager.PreferredBackBufferWidth = 1280;
|
GraphicsDeviceManager.PreferredBackBufferWidth = 1280;
|
||||||
GraphicsDeviceManager.PreferredBackBufferHeight = 720;
|
GraphicsDeviceManager.PreferredBackBufferHeight = 720;
|
||||||
GraphicsDeviceManager.IsFullScreen = false;
|
GraphicsDeviceManager.IsFullScreen = false;
|
||||||
|
|
||||||
//graphics.SynchronizeWithVerticalRetrace = false;
|
//graphics.SynchronizeWithVerticalRetrace = false;
|
||||||
this.IsFixedTimeStep = false;
|
this.IsFixedTimeStep = false;
|
||||||
GraphicsDeviceManager.ApplyChanges();
|
GraphicsDeviceManager.ApplyChanges();
|
||||||
|
|
||||||
this.IsMouseVisible = true;
|
this.IsMouseVisible = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Allows the game to perform any initialization it needs to before starting to run.
|
/// Allows the game to perform any initialization it needs to before starting to run.
|
||||||
/// This is where it can query for any required services and load any non-graphic
|
/// This is where it can query for any required services and load any non-graphic
|
||||||
/// related content. Calling base.Initialize will enumerate through any components
|
/// related content. Calling base.Initialize will enumerate through any components
|
||||||
/// and initialize them as well.
|
/// and initialize them as well.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected override void Initialize()
|
protected override void Initialize()
|
||||||
{
|
{
|
||||||
// TODO: Add your initialization logic here
|
// TODO: Add your initialization logic here
|
||||||
Camera = new Camera(this);
|
Camera = new Camera(this);
|
||||||
Squad = new List<Soldier>();
|
Squad = new List<Soldier>();
|
||||||
Swarm = new List<SmallEnemy>();
|
Swarm = new List<SmallEnemy>();
|
||||||
|
|
||||||
TestMonster = new SmallEnemy(this, ref Swarm);
|
TestMonster = new SmallEnemy(this, ref Swarm);
|
||||||
|
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// LoadContent will be called once per game and is the place to load
|
/// LoadContent will be called once per game and is the place to load
|
||||||
/// all of your content.
|
/// all of your content.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected override void LoadContent()
|
protected override void LoadContent()
|
||||||
{
|
{
|
||||||
// Create a new SpriteBatch, which can be used to draw textures.
|
// Create a new SpriteBatch, which can be used to draw textures.
|
||||||
spriteBatch = new SpriteBatch(GraphicsDevice);
|
spriteBatch = new SpriteBatch(GraphicsDevice);
|
||||||
|
|
||||||
Map = Content.Load<Map>("maps/Cave.Level1");
|
Map = Content.Load<Map>("maps/Cave.Level1");
|
||||||
// Load map objects
|
// Load map objects
|
||||||
Map.ParseObjects(this);
|
Map.ParseObjects(this);
|
||||||
|
|
||||||
// TODO: use this.Content to load your game content here
|
// TODO: use this.Content to load your game content here
|
||||||
Soldier.LoadContent(this);
|
Soldier.LoadContent(this);
|
||||||
SmallEnemy.LoadContent(this);
|
SmallEnemy.LoadContent(this);
|
||||||
|
|
||||||
MouseInput = new MouseInput(this);
|
MouseInput = new MouseInput(this);
|
||||||
MouseInput.LoadContent();
|
MouseInput.LoadContent();
|
||||||
KeyboardInput = new KeyboardInput(this);
|
KeyboardInput = new KeyboardInput(this);
|
||||||
}
|
|
||||||
|
// Test GUI frames
|
||||||
/// <summary>
|
var frame = new GUI.Button()
|
||||||
/// UnloadContent will be called once per game and is the place to unload
|
{
|
||||||
/// all content.
|
X = 100,
|
||||||
/// </summary>
|
Width = 48,
|
||||||
protected override void UnloadContent()
|
Height = 23,
|
||||||
{
|
Texture = Content.Load<Texture2D>("images/Enter"),
|
||||||
// TODO: Unload any non ContentManager content here
|
OnClick = delegate(Point clickPos)
|
||||||
}
|
{
|
||||||
|
Debug.WriteLine("That ugly button was clicked at (" + clickPos.X + "," + clickPos.Y + ")");
|
||||||
/// <summary>
|
}
|
||||||
/// Allows the game to run logic such as updating the world,
|
};
|
||||||
/// checking for collisions, gathering input, and playing audio.
|
var text = new GUI.Text(Content.Load<SpriteFont>("Arial"));
|
||||||
/// </summary>
|
text.Value = "Hello world!";
|
||||||
/// <param name="gameTime">Provides a snapshot of timing values.</param>
|
frame.Add(text);
|
||||||
protected override void Update(GameTime gameTime)
|
}
|
||||||
{
|
|
||||||
// Allows the game to exit
|
/// <summary>
|
||||||
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
|
/// UnloadContent will be called once per game and is the place to unload
|
||||||
this.Exit();
|
/// all content.
|
||||||
|
/// </summary>
|
||||||
Camera.Update(gameTime);
|
protected override void UnloadContent()
|
||||||
|
{
|
||||||
|
// TODO: Unload any non ContentManager content here
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Allows the game to run logic such as updating the world,
|
||||||
|
/// checking for collisions, gathering input, and playing audio.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="gameTime">Provides a snapshot of timing values.</param>
|
||||||
|
protected override void Update(GameTime gameTime)
|
||||||
|
{
|
||||||
|
// Allows the game to exit
|
||||||
|
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
|
||||||
|
this.Exit();
|
||||||
|
|
||||||
|
Camera.Update(gameTime);
|
||||||
MouseInput.Update(gameTime);
|
MouseInput.Update(gameTime);
|
||||||
KeyboardInput.Update(gameTime);
|
KeyboardInput.Update(gameTime);
|
||||||
|
|
||||||
// Update soldiers in squad
|
// Update soldiers in squad
|
||||||
foreach (var soldier in Squad)
|
foreach (var soldier in Squad)
|
||||||
soldier.Update(gameTime);
|
soldier.Update(gameTime);
|
||||||
|
|
||||||
foreach (var body in Swarm)
|
foreach (var body in Swarm)
|
||||||
body.Update(gameTime);
|
body.Update(gameTime);
|
||||||
|
|
||||||
base.Update(gameTime);
|
GUIManager.Update(gameTime);
|
||||||
}
|
|
||||||
|
base.Update(gameTime);
|
||||||
/// <summary>
|
}
|
||||||
/// This is called when the game should draw itself.
|
|
||||||
/// </summary>
|
/// <summary>
|
||||||
/// <param name="gameTime">Provides a snapshot of timing values.</param>
|
/// This is called when the game should draw itself.
|
||||||
protected override void Draw(GameTime gameTime)
|
/// </summary>
|
||||||
{
|
/// <param name="gameTime">Provides a snapshot of timing values.</param>
|
||||||
GraphicsDevice.Clear(Color.Black);
|
protected override void Draw(GameTime gameTime)
|
||||||
|
{
|
||||||
// Start drawing using the Camera transform
|
GraphicsDevice.Clear(Color.Black);
|
||||||
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null, null,
|
|
||||||
Camera.Transform);
|
// Start drawing using the Camera transform
|
||||||
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null, null,
|
||||||
// Draw the level
|
Camera.Transform);
|
||||||
Map.Draw(spriteBatch);
|
|
||||||
|
// Draw the level
|
||||||
// Draw units
|
Map.Draw(spriteBatch);
|
||||||
foreach (var soldier in Squad)
|
|
||||||
{
|
// Draw units
|
||||||
var sr = soldier.GetComponent<Component.SpriteRenderer>();
|
foreach (var soldier in Squad)
|
||||||
if (sr != null)
|
{
|
||||||
sr.Draw(spriteBatch);
|
var sr = soldier.GetComponent<Component.SpriteRenderer>();
|
||||||
}
|
if (sr != null)
|
||||||
foreach (var body in Swarm)
|
sr.Draw(spriteBatch);
|
||||||
{
|
}
|
||||||
var sr = body.GetComponent<Component.SpriteRenderer>();
|
foreach (var body in Swarm)
|
||||||
if (sr != null)
|
{
|
||||||
sr.Draw(spriteBatch);
|
var sr = body.GetComponent<Component.SpriteRenderer>();
|
||||||
}
|
if (sr != null)
|
||||||
|
sr.Draw(spriteBatch);
|
||||||
// Draw mouse input visuals
|
}
|
||||||
|
|
||||||
|
// Draw mouse input visuals
|
||||||
MouseInput.Draw(spriteBatch);
|
MouseInput.Draw(spriteBatch);
|
||||||
|
|
||||||
TestMonster.GetComponent<Component.SpriteRenderer>().Draw(spriteBatch);
|
TestMonster.GetComponent<Component.SpriteRenderer>().Draw(spriteBatch);
|
||||||
|
|
||||||
spriteBatch.End();
|
spriteBatch.End();
|
||||||
|
|
||||||
base.Draw(gameTime);
|
// Start drawing GUI components
|
||||||
}
|
spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.AnisotropicClamp, null, null, null, Matrix.Identity);
|
||||||
}
|
GUIManager.Draw(spriteBatch);
|
||||||
}
|
spriteBatch.End();
|
||||||
|
|
||||||
|
base.Draw(gameTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -122,6 +122,10 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Camera.cs" />
|
<Compile Include="Camera.cs" />
|
||||||
|
<Compile Include="GUIManager.cs" />
|
||||||
|
<Compile Include="GUI\Button.cs" />
|
||||||
|
<Compile Include="GUI\Frame.cs" />
|
||||||
|
<Compile Include="GUI\Text.cs" />
|
||||||
<Compile Include="KeyboardInput.cs" />
|
<Compile Include="KeyboardInput.cs" />
|
||||||
<Compile Include="Component\PathFinder.cs" />
|
<Compile Include="Component\PathFinder.cs" />
|
||||||
<Compile Include="Component\Transform.cs" />
|
<Compile Include="Component\Transform.cs" />
|
||||||
@@ -186,6 +190,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="DepthsBelow_TemporaryKey.pfx" />
|
<None Include="DepthsBelow_TemporaryKey.pfx" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
|
||||||
<!--
|
<!--
|
||||||
|
|||||||
Executable
+63
@@ -0,0 +1,63 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using Microsoft.Xna.Framework.Input;
|
||||||
|
|
||||||
|
namespace DepthsBelow.GUI
|
||||||
|
{
|
||||||
|
public class Button : Frame
|
||||||
|
{
|
||||||
|
public delegate void OnClickHandler(Point pos);
|
||||||
|
|
||||||
|
public OnClickHandler OnClick;
|
||||||
|
|
||||||
|
private MouseState lastMouseState;
|
||||||
|
|
||||||
|
public Button()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*public void OnClick(Point pos)
|
||||||
|
{
|
||||||
|
Debug.WriteLine(this + " was clicked at (" + pos.X + "," + pos.Y + ")");
|
||||||
|
}*/
|
||||||
|
|
||||||
|
public override void Update(GameTime gameTime)
|
||||||
|
{
|
||||||
|
base.Update(gameTime);
|
||||||
|
|
||||||
|
MouseState ms = Mouse.GetState();
|
||||||
|
|
||||||
|
if (ms.LeftButton == ButtonState.Released && lastMouseState.LeftButton == ButtonState.Pressed)
|
||||||
|
{
|
||||||
|
// HACK: This should be handled globally somewhere else to prevent event bubbling
|
||||||
|
if (
|
||||||
|
ms.X >= Rectangle.Left
|
||||||
|
&& ms.X < Rectangle.Right
|
||||||
|
&& ms.Y >= Rectangle.Top
|
||||||
|
&& ms.Y < Rectangle.Bottom)
|
||||||
|
{
|
||||||
|
if (OnClick != null)
|
||||||
|
{
|
||||||
|
var clickPos = new Point(ms.X - Rectangle.X, ms.Y - Rectangle.Y);
|
||||||
|
OnClick(clickPos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lastMouseState = ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
//spriteBatch.DrawString(Font, Value, new Vector2(Rectangle.X + Parent.Rectangle.X, Rectangle.Y + Parent.Rectangle.Y), Color);
|
||||||
|
|
||||||
|
base.Draw(spriteBatch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Executable
+91
@@ -0,0 +1,91 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
|
||||||
|
namespace DepthsBelow.GUI
|
||||||
|
{
|
||||||
|
public class Frame
|
||||||
|
{
|
||||||
|
public int Width
|
||||||
|
{
|
||||||
|
get { return this.Rectangle.Width; }
|
||||||
|
set { this.Rectangle.Width = value; }
|
||||||
|
}
|
||||||
|
public int Height
|
||||||
|
{
|
||||||
|
get { return this.Rectangle.Height; }
|
||||||
|
set { this.Rectangle.Height = value; }
|
||||||
|
}
|
||||||
|
public int X
|
||||||
|
{
|
||||||
|
get { return this.Rectangle.X; }
|
||||||
|
set { this.Rectangle.X = value; }
|
||||||
|
}
|
||||||
|
public int Y
|
||||||
|
{
|
||||||
|
get { return this.Rectangle.Y; }
|
||||||
|
set { this.Rectangle.Y = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public Rectangle Rectangle;
|
||||||
|
public Texture2D Texture;
|
||||||
|
public Color Color;
|
||||||
|
public bool Visible = true;
|
||||||
|
|
||||||
|
public Frame Parent;
|
||||||
|
public List<Frame> Children;
|
||||||
|
|
||||||
|
public Frame()
|
||||||
|
{
|
||||||
|
this.Rectangle = Rectangle.Empty;
|
||||||
|
this.Texture = null;
|
||||||
|
this.Color = Color.White;
|
||||||
|
|
||||||
|
this.Children = new List<Frame>();
|
||||||
|
|
||||||
|
GUIManager.Add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Add(Frame childFrame)
|
||||||
|
{
|
||||||
|
childFrame.Parent = this;
|
||||||
|
if (!Children.Contains(childFrame))
|
||||||
|
Children.Add(childFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Remove(Frame childFrame)
|
||||||
|
{
|
||||||
|
if (Children.Contains(childFrame))
|
||||||
|
Children.Remove(childFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Destroy()
|
||||||
|
{
|
||||||
|
if (Parent != null)
|
||||||
|
Parent.Remove(this);
|
||||||
|
|
||||||
|
GUIManager.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Update(GameTime gameTime)
|
||||||
|
{
|
||||||
|
foreach (var child in Children)
|
||||||
|
child.Update(gameTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
if (Visible)
|
||||||
|
{
|
||||||
|
if (Texture != null)
|
||||||
|
spriteBatch.Draw(Texture, Rectangle, Color);
|
||||||
|
|
||||||
|
foreach (var child in Children)
|
||||||
|
child.Draw(spriteBatch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Executable
+30
@@ -0,0 +1,30 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
|
||||||
|
namespace DepthsBelow.GUI
|
||||||
|
{
|
||||||
|
class Text : Frame
|
||||||
|
{
|
||||||
|
public String Value;
|
||||||
|
public SpriteFont Font;
|
||||||
|
public Color Color;
|
||||||
|
|
||||||
|
public Text(SpriteFont font)
|
||||||
|
: base()
|
||||||
|
{
|
||||||
|
this.Font = font;
|
||||||
|
this.Color = Color.Black;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
base.Draw(spriteBatch);
|
||||||
|
|
||||||
|
spriteBatch.DrawString(Font, Value, new Vector2(Rectangle.X + Parent.Rectangle.X, Rectangle.Y + Parent.Rectangle.Y), Color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Executable
+37
@@ -0,0 +1,37 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using DepthsBelow.GUI;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
|
||||||
|
namespace DepthsBelow
|
||||||
|
{
|
||||||
|
static class GUIManager
|
||||||
|
{
|
||||||
|
public static List<Frame> Frames = new List<Frame>();
|
||||||
|
|
||||||
|
public static void Add(Frame frame)
|
||||||
|
{
|
||||||
|
Frames.Add(frame);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Remove(Frame frame)
|
||||||
|
{
|
||||||
|
Frames.Remove(frame);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Update(GameTime gameTime)
|
||||||
|
{
|
||||||
|
foreach (var frame in Frames)
|
||||||
|
frame.Update(gameTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Draw(SpriteBatch spriteBatch)
|
||||||
|
{
|
||||||
|
foreach (var frame in Frames)
|
||||||
|
frame.Draw(spriteBatch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+60
@@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
This file contains an xml description of a font, and will be read by the XNA
|
||||||
|
Framework Content Pipeline. Follow the comments to customize the appearance
|
||||||
|
of the font in your game, and to change the characters which are available to draw
|
||||||
|
with.
|
||||||
|
-->
|
||||||
|
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
|
||||||
|
<Asset Type="Graphics:FontDescription">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Modify this string to change the font that will be imported.
|
||||||
|
-->
|
||||||
|
<FontName>Berlin Sans FB</FontName>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Size is a float value, measured in points. Modify this value to change
|
||||||
|
the size of the font.
|
||||||
|
-->
|
||||||
|
<Size>11</Size>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Spacing is a float value, measured in pixels. Modify this value to change
|
||||||
|
the amount of spacing in between characters.
|
||||||
|
-->
|
||||||
|
<Spacing>0</Spacing>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
UseKerning controls the layout of the font. If this value is true, kerning information
|
||||||
|
will be used when placing characters.
|
||||||
|
-->
|
||||||
|
<UseKerning>true</UseKerning>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Style controls the style of the font. Valid entries are "Regular", "Bold", "Italic",
|
||||||
|
and "Bold, Italic", and are case sensitive.
|
||||||
|
-->
|
||||||
|
<Style>Regular</Style>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If you uncomment this line, the default character will be substituted if you draw
|
||||||
|
or measure text that contains characters which were not included in the font.
|
||||||
|
-->
|
||||||
|
<!-- <DefaultCharacter>*</DefaultCharacter> -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
CharacterRegions control what letters are available in the font. Every
|
||||||
|
character from Start to End will be built and made available for drawing. The
|
||||||
|
default range is from 32, (ASCII space), to 126, ('~'), covering the basic Latin
|
||||||
|
character set. The characters are ordered according to the Unicode standard.
|
||||||
|
See the documentation for more information.
|
||||||
|
-->
|
||||||
|
<CharacterRegions>
|
||||||
|
<CharacterRegion>
|
||||||
|
<Start> </Start>
|
||||||
|
<End>~</End>
|
||||||
|
</CharacterRegion>
|
||||||
|
</CharacterRegions>
|
||||||
|
</Asset>
|
||||||
|
</XnaContent>
|
||||||
@@ -113,6 +113,13 @@
|
|||||||
<Processor>TextureProcessor</Processor>
|
<Processor>TextureProcessor</Processor>
|
||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Arial.spritefont">
|
||||||
|
<Name>Arial</Name>
|
||||||
|
<Importer>FontDescriptionImporter</Importer>
|
||||||
|
<Processor>FontDescriptionProcessor</Processor>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|||||||
Reference in New Issue
Block a user