2011-12-04 44 views
0

对,我在谷歌上查找它,但我仍然无法弄清楚如何解决它。任何帮助?'Microsoft.Xna.Framework.Vector2'是'类型',但用作变量吗?

public class Game1 : Microsoft.Xna.Framework.Game 
    { 
     GraphicsDeviceManager graphics; 
     SpriteBatch spriteBatch; 

     Texture2D spritesheet; 
     Rectangle sourceRect; 
     Rectangle destinationRect; 

     int spriteWidth = 50; 
      int spriteHeight = 50; 

      Texture2D maze; 
      Vector2 mazePosition = Vector2(0f, 0f); 

      Color[] spritetextureData; 
      Color[] mazeTextureData; 

      int direction = 0; 
      bool persotHit = false; 


     public Game1() 
     { 
      graphics = new GraphicsDeviceManager(this); 
      Content.RootDirectory = "Content"; 
     } 

     /// <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); 

      // 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 

      base.Update(gameTime); 
     } 

     /// <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.CornflowerBlue); 

      // TODO: Add your drawing code here 

      base.Draw(gameTime); 
     } 
    } 
} 

回答

3

这是你如何创建新的对象:

Vector2 mazePosition = new Vector2(0f, 0f); 

,而不是:

Vector2 mazePosition = Vector2(0f, 0f); 

注的 “新” 字。

+2

+1:很好的地方。此外,你可以使用'Vector2 mazePosition = Vector2.Zero';' –

+0

@NeilKnight建议稍好于使用new运算符,因为它不会在内存池中添加额外的对象,然后需要收集。 Vector2的结构并不要求你使用新的操作符来实例化它们。 – borrillis

相关问题