i want to draw a sprite of an arrow pointing up at 200, 200. when A is hit it rotated left , when you hit D it rotates right.
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
// this line draws my arrow in the perfect spot but obviously doesnt account for rotation.
[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
//spriteBatch.Draw(image, position, Color.White);
[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
// this line draws my arrow half visible in the top left corner of the screen. and it doesnt rotate but pivot.
[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
spriteBatch.Draw(image, position, null, Color.White, rotation, origin, 1.0f,SpriteEffects.None, 0);
[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
can anyone help me out here? thanks in advance
[/font][color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
namespace ArrowRotation
{
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
SpriteFont font1;
KeyboardState k_current_state;
Vector2 position;
Vector2 origin;
float rotation;
Texture2D image;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
protected override void Initialize()
{
// TODO: Add your initialization logic here
position.X = 200;
position.Y = 200;
origin.X = position.X + 32;
origin.Y = position.Y + 32;
rotation = 0.0f;
base.Initialize();
}
protected override void LoadContent()
{
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
font1 = Content.Load<SpriteFont>("testFont");
image = Content.Load<Texture2D>("up");
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
}
protected override void UnloadContent()
{
// TODO: Unload any non ContentManager content here
}
protected override void Update(GameTime gameTime)
{
k_current_state = Keyboard.GetState();
if (k_current_state.IsKeyDown(Keys.Escape))
{
this.Exit();
}
if (k_current_state.IsKeyDown(Keys.A))
{
rotation -= 0.1f;
}
if (k_current_state.IsKeyDown(Keys.D))
{
rotation += 0.1f;
}
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
base.Update(gameTime);
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
spriteBatch.DrawString(font1, "rotation = " + rotation.ToString(), new Vector2(0, 0), Color.White);
spriteBatch.DrawString(font1, "X position = " + position.X.ToString(), new Vector2(0, 30), Color.White);
spriteBatch.DrawString(font1, "Y position = " + position.Y.ToString(), new Vector2(0, 60), Color.White);
spriteBatch.DrawString(font1, "X Origin = " + origin.X.ToString(), new Vector2(0, 90), Color.White);
spriteBatch.DrawString(font1, "Y Origin = " + origin.Y.ToString(), new Vector2(0, 120), Color.White);
//spriteBatch.Draw(image, position, Color.White);
spriteBatch.Draw(image, position, null, Color.White, rotation, origin, 1.0f,SpriteEffects.None, 0);
[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]
spriteBatch.End();
base.Draw(gameTime);
}
}
}