2011-10-31 05:36:24 +00:00
|
|
|
#region Using Statements
|
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using ANX.Framework;
|
|
|
|
using ANX.Framework.Graphics;
|
|
|
|
using ANX.Framework.Input;
|
|
|
|
#endregion // Using Statements
|
|
|
|
|
2012-08-09 09:45:04 +00:00
|
|
|
// This file is part of the ANX.Framework created by the
|
|
|
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
|
|
|
// For details see: http://anxframework.codeplex.com/license
|
2011-10-31 05:36:24 +00:00
|
|
|
|
|
|
|
namespace WindowsGame1
|
|
|
|
{
|
2012-09-28 08:07:48 +00:00
|
|
|
public class GameComponentTest : GameComponent
|
|
|
|
{
|
|
|
|
public GameComponentTest(Game game)
|
|
|
|
: base(game)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
public override void Update(GameTime gameTime)
|
|
|
|
{
|
|
|
|
//System.Diagnostics.Debugger.Break();
|
|
|
|
|
|
|
|
base.Update(gameTime);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-08-31 16:02:52 +00:00
|
|
|
/// <summary>
|
|
|
|
/// This is the main type for your game
|
|
|
|
/// </summary>
|
|
|
|
public class Game1 : ANX.Framework.Game
|
|
|
|
{
|
|
|
|
GraphicsDeviceManager graphics;
|
|
|
|
SpriteBatch spriteBatch;
|
|
|
|
|
|
|
|
Texture2D texture;
|
|
|
|
Texture2D alternateTexture;
|
|
|
|
|
2015-10-04 21:30:00 +02:00
|
|
|
KeyboardState previousKeyboardState;
|
|
|
|
Color clearColor;
|
|
|
|
|
2012-08-31 16:02:52 +00:00
|
|
|
Color[] color = new Color[] { Color.White, Color.Green, Color.Blue, Color.Black, Color.White, Color.DarkMagenta };
|
|
|
|
float[] y = new float[] { 10f, 10f, 10f, 10f, 10f, 10f };
|
|
|
|
Random r = new Random();
|
|
|
|
|
|
|
|
|
|
|
|
private float elapsedLastSecond = 0f;
|
|
|
|
private int fpsCount = 0;
|
|
|
|
private int lastFps = 60;
|
|
|
|
|
|
|
|
public Game1()
|
|
|
|
{
|
|
|
|
graphics = new GraphicsDeviceManager(this);
|
|
|
|
graphics.PreparingDeviceSettings += graphics_PreparingDeviceSettings;
|
2012-09-03 21:33:45 +00:00
|
|
|
//graphics.SynchronizeWithVerticalRetrace = false;
|
|
|
|
//IsFixedTimeStep = false;
|
2012-08-31 16:02:52 +00:00
|
|
|
Content.RootDirectory = "SampleContent";
|
|
|
|
}
|
|
|
|
|
|
|
|
void graphics_PreparingDeviceSettings(object sender, PreparingDeviceSettingsEventArgs e)
|
|
|
|
{
|
|
|
|
e.GraphicsDeviceInformation.PresentationParameters.BackBufferWidth = 800;
|
|
|
|
e.GraphicsDeviceInformation.PresentationParameters.BackBufferHeight = 600;
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 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
|
|
|
|
/// related content. Calling base.Initialize will enumerate through any components
|
|
|
|
/// and initialize them as well.
|
|
|
|
/// </summary>
|
|
|
|
protected override void Initialize()
|
|
|
|
{
|
|
|
|
base.Initialize();
|
2012-09-28 08:07:48 +00:00
|
|
|
|
|
|
|
Components.Add(new GameComponentTest(this));
|
2012-08-31 16:02:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// LoadContent will be called once per game and is the place to load
|
|
|
|
/// all of your content.
|
|
|
|
/// </summary>
|
|
|
|
protected override void LoadContent()
|
|
|
|
{
|
|
|
|
// Create a new SpriteBatch, which can be used to draw textures.
|
|
|
|
spriteBatch = new SpriteBatch(GraphicsDevice);
|
|
|
|
|
|
|
|
//this.alternateTexture = Content.Load<Texture2D>(@"Textures/DotColor4x4");
|
|
|
|
this.alternateTexture = Content.Load<Texture2D>(@"Textures/DotWhiteTopLeft5x5");
|
|
|
|
this.texture = Content.Load<Texture2D>(@"Textures/ANX.logo");
|
2012-09-08 09:07:23 +00:00
|
|
|
//this.texture = Content.Load<Texture2D>(@"Textures/dds-test");
|
2012-08-31 16:02:52 +00:00
|
|
|
|
|
|
|
//this.alternateTexture = new Texture2D(GraphicsDevice, 64, 64);
|
|
|
|
//Color[] color = new Color[this.alternateTexture.Width * this.alternateTexture.Height];
|
|
|
|
//for (int i = 0; i < color.Length; i++)
|
|
|
|
//{
|
|
|
|
// color[i] = new Color(1.0f, 1.0f, 0, 0.5f);
|
|
|
|
//}
|
|
|
|
//this.alternateTexture.SetData<Color>(color);
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// UnloadContent will be called once per game and is the place to unload
|
|
|
|
/// all content.
|
|
|
|
/// </summary>
|
|
|
|
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)
|
|
|
|
{
|
|
|
|
elapsedLastSecond += (float)gameTime.ElapsedGameTime.TotalSeconds;
|
|
|
|
fpsCount++;
|
|
|
|
if (elapsedLastSecond >= 1f)
|
|
|
|
{
|
|
|
|
elapsedLastSecond -= 1f;
|
|
|
|
lastFps = fpsCount;
|
|
|
|
fpsCount = 0;
|
|
|
|
|
|
|
|
Window.Title = "FPS=" + lastFps;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Allows the game to exit
|
|
|
|
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
|
|
|
|
this.Exit();
|
|
|
|
|
|
|
|
for (int i = 0; i < y.Length; i++)
|
|
|
|
{
|
|
|
|
y[i] += this.r.Next(100) * (float)gameTime.ElapsedGameTime.TotalSeconds;
|
|
|
|
y[i] = MathHelper.Clamp(y[i], 0, 536);
|
|
|
|
}
|
|
|
|
|
2015-10-04 21:30:00 +02:00
|
|
|
if (GamePad.GetState(PlayerIndex.One).Buttons.A == ButtonState.Pressed)
|
|
|
|
clearColor = Color.Green;
|
|
|
|
else if (Mouse.GetState().XButton1 == ButtonState.Pressed)
|
|
|
|
clearColor = Color.Chocolate;
|
|
|
|
else
|
|
|
|
clearColor = Color.CornflowerBlue;
|
|
|
|
|
|
|
|
if (Keyboard.GetState().IsKeyDown(Keys.Space) && previousKeyboardState.IsKeyUp(Keys.Space))
|
|
|
|
{
|
|
|
|
if (GraphicsDevice.PresentationParameters.BackBufferWidth != 420)
|
|
|
|
{
|
|
|
|
PresentationParameters newParams = GraphicsDevice.PresentationParameters.Clone();
|
|
|
|
newParams.BackBufferWidth = 420;
|
|
|
|
newParams.BackBufferHeight = 360;
|
|
|
|
GraphicsDevice.Reset(newParams);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
PresentationParameters newParams = GraphicsDevice.PresentationParameters.Clone();
|
|
|
|
newParams.BackBufferWidth = 800;
|
|
|
|
newParams.BackBufferHeight = 600;
|
|
|
|
GraphicsDevice.Reset(newParams);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-08-31 16:02:52 +00:00
|
|
|
base.Update(gameTime);
|
2015-10-04 21:30:00 +02:00
|
|
|
|
|
|
|
previousKeyboardState = Keyboard.GetState();
|
2012-08-31 16:02:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// This is called when the game should draw itself.
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="gameTime">Provides a snapshot of timing values.</param>
|
|
|
|
protected override void Draw(GameTime gameTime)
|
|
|
|
{
|
2015-10-04 21:30:00 +02:00
|
|
|
GraphicsDevice.Clear(clearColor);
|
2012-08-31 16:02:52 +00:00
|
|
|
|
|
|
|
spriteBatch.Begin();
|
|
|
|
|
|
|
|
for (int x = 0; x < y.Length; x++)
|
|
|
|
{
|
|
|
|
spriteBatch.Draw(texture, new Vector2(x * texture.Width + 32, y[x]), new Rectangle(0, 0, 120, 60),
|
|
|
|
color[x], 0.0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0.0f);
|
|
|
|
}
|
|
|
|
|
|
|
|
spriteBatch.Draw(alternateTexture, new Vector2(32, 32), Color.White);
|
|
|
|
|
|
|
|
spriteBatch.End();
|
|
|
|
|
|
|
|
base.Draw(gameTime);
|
|
|
|
}
|
|
|
|
}
|
2011-10-31 05:36:24 +00:00
|
|
|
}
|