Possible Duplicate:
XNA – File not found problem
Here I am trying to load a Round.png file in windows phone 7 application project. I don’t know how to load this image during run time. I am really sorry if this is a silly question as i m a newbie in windows app development. Please help…
Thanks in advance!!!
/// <summary>
/// This is the main type for your game
/// </summary>
public class Game1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Texture2D texRound;
Rectangle HitRegion;
bool isSelected = false;
TouchCollection touches = TouchPanel.GetState();
//start position of round, in the center of screen
int positionX = 400;
int positionY = 240;
//random number Axis X and Y
Random randomX;
Random randomY;
//the range for random number of start and end of X, Y
int startX, endX;
int startY, endY;
//total time
float milliseconds = 0f;
//score count
int count = 0;
//game font
SpriteFont font;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
// Frame rate is 30 fps by default for Windows Phone.
TargetElapsedTime = TimeSpan.FromTicks(333333);
// Extend battery life under lock.
InactiveSleepTime = TimeSpan.FromSeconds(1);
}
/// <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()
{
// TODO: Add your initialization logic here
base.Initialize();
}
/// <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);
texRound = Content.Load<Texture2D>("Round");
randomX = new Random();
randomY = new Random();
// The X axis bound range of touch for ball
startX = texRound.Width;
endX = GraphicsDevice.Viewport.Width - texRound.Width;
// The X axis bound range of touch for ball
startY = texRound.Height;
endY = GraphicsDevice.Viewport.Height - texRound.Height;
// Define the HitRegion of ball in the middle of touchscreen
HitRegion = new Rectangle(positionX - texRound.Width / 2,
positionY - texRound.Height / 2, texRound.Width,
texRound.Height);
// Load the font definition file
font = Content.Load<SpriteFont>("gamefont");
// TODO: use this.Content to load your game content here
}
/// <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)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: Add your update logic here
// Accumulate the elapsed milliseconds every frame
milliseconds +=
(float)gameTime.ElapsedGameTime.TotalMilliseconds;
if (milliseconds > 1000)
{
// When the milliseconds greater than 1000 milliseconds,
// randomly locate a new position for the ball
HitRegion.X = randomX.Next(startX, endX + 1);
HitRegion.Y = randomY.Next(startY, endY + 1);
// Reset the milliseconds to zero for new milliseconds
// count
// make the ball not been selected
milliseconds = 0f;
if (isSelected)
isSelected = false;
}
base.Update(gameTime);
Point touchPoint = new Point((int)touches[0].Position.X, (int)touches[0].Position.Y);
if (HitRegion.Contains(touchPoint))
{
isSelected = true;
count++;
}
else
{
isSelected = false;
}
}
/// <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)
{
GraphicsDevice.Clear(Color.Green);
// TODO: Add your drawing code here
spriteBatch.Begin();
if (isSelected)
{
spriteBatch.Draw(texRound, HitRegion, Color.Red);
}
else
{
spriteBatch.Draw(texRound, HitRegion, Color.White);
}
spriteBatch.DrawString(font, "Score:" + count.ToString(),
new Vector2(0f, 0f), Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
}


The path in the inner exception looks correct:
\"Content\\Round.xnb\", the extra slashes are just because it’s escaped. This is a relative path from your executable, be default it’s something like:Visual Studio Projects\MyCoolGame\MyCoolGame\bin\x86\Debug\Content\Round.xnb. You should be comparing this path to the the real path to theRound.xnbfile, not the png.Round.xnbdoes not exist anywhere, then your png file isn’t part of Content project, or the Content project isn’t being builtContent.Load<Texture2D>("myDir\\Round");Since the inner exception isn’t looking for “Round.png.xnb”, you have your names up correctly and @Ricket’s answer won’t help you any further.