xbox360-tribe web
   

XBOXTRIBE advertisments
XBOX TRiBE Tutorials
Piattaforma:
Introduzione a XNA Game Studio Express
Tutorials xbox360
Development Tutorials
Il tutorial illustra come installare, configurare l'SDK per Xbox 360 e come costruire il primo progetto 3D animato.
Lorenz
22/12/2006
Controllo della rotazione del modello 3D con il mouse

Per chi non ha un pad wired e vuole subito verificare i risultati sulla piattaforma Windows, vediamo ora il set di istruzioni per l'utilizzo del mouse.

Una volta compilata l'applicazione, la pressione del tasto sinistroi permetterà di ruotare l'oggetto, la traslazione sui 2 assi di aumentare e diminuire la velocità di rotazione fino all'inversione, il tasto destro di ripristinare la vista iniziale.

Innanzitutto modifichiamo il metodo Update come riportato di seguito:

protected override void Update(GameTime gameTime)
{
    if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
        this.Exit();
    //Get some input
    UpdateInput();
    //add velocity to current position
    modelPosition += modelVelocity;
    //bleed off velocity over time
    modelVelocity *= 0.95f;
    base.Update(gameTime);

}

Immediatamente sopra al metodo Update, aggiungiamo le seguenti stringhe:

//Velocity of the model, applied each frame to the model's position
Vector3 modelVelocity = Vector3.Zero;

Analogamente al caso precedente notiamo che il metodo Update lancia una particolare funzione, UpdateInput, che di seguito andremo a definire.

Per fare ciò, di seguito al metodo Draw, aggiungiamo il codice seguente:

protected void UpdateInput()

{

//get the gamepad state

GamePadState currentState = GamePad.GetState(PlayerIndex.One);

if (currentState.IsConnected)

{

// Istruzioni per il pad

}

else

{

// istruzioni per il mouse

MouseState mouseState = Mouse.GetState();

Rectangle rt = this.Window.ClientBounds;

if (mouseState.LeftButton == ButtonState.Pressed)

{

//Routa clickando il tasto sinistro e accelera traslando il mouse

modelRotation -= (mouseState.X - rt.Width / 2) * 0.01f;

Vector3 modelVelocity_add = Vector3.Zero;

//find out what direction we should be thrusting, using rotation

modelVelocity_add.X = -(float)Math.Sin(modelRotation);

modelVelocity_add.Z = -(float)Math.Cos(modelRotation);

//finally, add this vector to our velocity.

modelVelocity += modelVelocity_add;

}

//Ripristina la vista iniziale

if (mouseState.RightButton == ButtonState.Pressed)

{

modelPosition = Vector3.Zero;

modelVelocity = Vector3.Zero;

modelRotation = 0.0f;

}

}

}

Torna all'indice tutorials xbox360
Xbox360-Tribe.org Designed by Dec & SeV3n - Powered by Console-Tribe.com - Copyright © 2002-2006 All rights reserved.
E' vietata la riproduzione, anche parziale, di contenuti e grafica senza il consenso degli autori.
Microsoft Xbox, Xbox360 and Xboxs logos' are trademarks of Microsoft Corp.
Il materiale contenuto all'interno di questo sito è volto a scopi didattici ed informativi.
Xbox Tribe ed i membri del suo staff non incoraggiano la pirateria.
Le copie di backup di software sono legittime solo se si dispone di una copia originale.

Console-Tribe Network: Xbox360-Tribe - PSP-Tribe - PS3-Tribe - DS-Tribe - Wii-Tribe