2016-05-02 3 views
0

Я хочу сделать спрайтный переход к мускулиту (как и в большинстве стратегических игр). Но я сделал это только тогда, когда я нажимаю и удерживаю левую кнопку мыши до сих пор. Когда я меняю if-предложения на циклы while, спрайт немедленно переходит в положение мыши. Может кто-нибудь мне помочь? Может быть, есть более простой способ сделать перемещение спрайта в определенную позицию, щелкнув мышью?Monogame/XNA, переместить спрайт в позицию мышеловка

наилучшими пожеланиями, Алекс

 mCurrentMouseState = Mouse.GetState(); 

     if (mCurrentMouseState.LeftButton == ButtonState.Pressed) 
      mDestination = new Vector2(mCurrentMouseState.X, mCurrentMouseState.Y); 


     Vector2 direction = Vector2.Normalize(mDestination - mPosition); 

     mPosition += direction * (float) gameTime.ElapsedGameTime.TotalSeconds * mSpeed; 

     if (Vector2.Distance(mPosition, mDestination) < 1) 
      direction = Vector2.Zero; 

ответ

0

Ваш код перемещает только спрайт один пиксель один раз за игру клеща. Если вы хотите переместить его мгновенно, просто используйте:

if(mCurrentMouseState.LeftButton == ButtonState.Pressed) 
{ 
     mPositionBat = mCurrentMouseState; 
} 
+0

это, конечно, умнее моего кода. Но моя главная проблема в том, что я хочу, чтобы спрайт перешел в MouseState, даже когда я отпущу кнопку. – Sancho

+0

Я не совсем уверен, что вы пытаетесь сделать. Если вы просто хотите что-то вроде я, курсор мыши просто использует 'mPositionBat = mCurrentMouseState;' без каких-либо условий. _ Также как примечание. Если это первая игра, которую вы пытаетесь сделать, я бы посоветовал вам не создавать стратегическую игру и вместо этого попробовать что-то более простое, например, понг или тетрис ._ – DeadlySurprise

+0

mPositionBat = mCurrentMouseState; не работает, потому что mPositionBat является Vector2, а mCurrentMouseState является MouseState. Я изучаю прямо сейчас, и моя задача - сделать спрайт-переход до точки, где вы нажимаете на мышь. Когда я делаю mPositionBat.X = mCurrentMouseState.X;, спрайт не медленно перемещается в направлении, а сразу переходит к точке, где я щелкнул мышью. – Sancho

 Смежные вопросы

  • Нет связанных вопросов^_^