Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
Non conosco Dark Orbit.
Comunque, lo sprite deve ruotarsi, il metodo Draw della classe SpriteBatch accetta anche in ingresso un parametro di tipo float che rappresenta l'angolo di rotazione. Prima ovviamente dovrai calcolare questo angolo.
P.S.: Ho trovato anche un po' di documentazione che può aiutarti a calcolare l'angolo di rotazione. Comunque è cosa facile: Rotazione di uno sprite
Ah bhé sì. Io parlavo della rotazione dell'immagine dello sprite.Non penso che gli vada bene quel parametro. Comunque per trovare il verso ti devi calcolare il delta delle coordinate X e Y tra posizione del mouse e posizione dello sprite (es: se delta x è positivo lo sprite sarà girato verso destra)
Purtroppo questo non funziona :S , ora sto provando la soluzione di speedNon penso che gli vada bene quel parametro. Comunque per trovare il verso ti devi calcolare il delta delle coordinate X e Y tra posizione del mouse e posizione dello sprite (es: se delta x è positivo lo sprite sarà girato verso destra)
La mia soluzione in fondo è la stessa cosa. Nel primo messaggio ti ho detto come fare per la rotazione dello sprite, nel secondo come muovere lo sprite nella direzione del mouse (se questo ti interessa). Altrimenti, se non devi spostare lo sprite, ti basta calcolare l'angolo di rotazione (sempre sfruttando il delta tra le coordinate) e ruotare lo sprite come spiega MSDN nel link che ti ho passato.Purtroppo questo non funziona :S , ora sto provando la soluzione di speed
L'angolo deve essere in radianti. Allora prima di tutto calcoliamo il coefficiente angolare (m) della retta passante per lo sprite (origine O) e il mouse (punto A). Possiamo farlo con la formula:MSDN ha detto:Specifies the angle (in radians) to rotate the sprite about its center.
Perfetto: fai come ti ho spiegato ora qui sopraMi spiego meglio ... , voglio che il verso del mio sprite sarà sempre ruotato verso il mio cursore
float Ya_Yo = Mouse.GetState().Y - Centro_Imm.Y ;
float Xa_Xo = Mouse.GetState().X - Centro_Imm.X ;
double coeff = Ya_Yo / Xa_Xo;
double arc = Math.Atan(coeff);
Rotazione = Convert.ToSingle(arc) ;
float M_A = Mouse.GetState().X - Pos_Cursore.X;
float M_B = Mouse.GetState().Y - Pos_Cursore.Y;
Rotazione = (float)Math.Atan2(M_B, M_A) - Errore;
// Se non sbaglio nella rotazione alcune volte fa degli errori
// Io ho risolto un po a culo , vedendo graficamente quanto è l'errore :)
// L'errore deve essere una variabile float