|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
[C#]Xna 2d: devo riuscire a calcolare un movimento (credo basti la logica)
Ciao raga,
volevo provare a fare un giochino 2d con xna 3 e il c#! Solo che ho un problemuccio magari anche + facile di quanto sembri... In mate sono bravo ma faccio ancora prima superiore e mi dovrei scervellare un po' (cosa che comunque proverò a fare ma anche nel caso riuscissi guarderò le vostre idee)! Allora... Ho uno sprite nel mio caso una astronave e vorrei che la sua punta fosse rivolta verso la posizione (in quanto nel gioco non si vedrà il cursore) del mouse. Non so se ci sia qualcosa di già pronto ma nel caso contrario ho il necessario per agire da me: mi serve solo un po' di logica. Lo sprite ha 3 valori (se così posso chiamarli) che ci interessano: la posizione che fa riferimento appunto alla posizione in cui si trova, l'origine che è un punto dello sprite (stabilito dal programmatore e che nel mio caso è il centro dello sprite) al quale si riferisce la posizione: voglio dire che la posizione dello sprite indica la sua origine (se non capite guardate qua); infine la rotazione misura con quei valori strani che non mi ricordo, sono floato scritti tipo questo 0.0f Esempio per chiarire meglio origine e posizione: ![]() qui l'origine è quella in centro allo sprite e corrisponde a 25, 25 (pixel dello sprite mentre la posizione è 425, 225 ed indica sempre lo stesso punto dell'origine ma in riferimento all'intero schermo) Abbiamo ancora poi le coordinate del mouse. Come faccio a capire che valore assegnare alla rotazione dello sprite? Considerate che non so neppure quanto valgano quei valori tipo 0.0f e quindi non co neppure quanto corrisponde a 360°... Ogni aiuto è gradito |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
mi è venuta un'idea ma per realizzarla ho bisogno di sapere una cosa... In un triangolo rettangolo si può calcolare l'ampiezza dei due angoli sull'ipotenusa conoscendo la lunghezza dei cateti?
oppure + semplicemente non c'è una funzione che faccia già al caso mio? |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
180° = PiGreco 90° = PiGreco/2 45° = PiGreco/4 In ogni caso le conoscenze che ti servono sono quelle della trigonometria In genere, nella libreria standard di ogni linguaggio c'è un "pacchetto matematico" di base che mette a disposizione le funzioni trigonometriche e, tra le costanti, c'è sicuramente già definita quella per PiGreco. Inoltre, il sistema di riferimento per le coordinate del sistema grafico di solito di default è orientato, come avrai già visto, con l'origine mappata in alto a sinistra, l'asse delle X positivo cresce a destra, quello delle Y positive cresce verso il basso. Gli angoli crescono in senso orario, partendo dall'angolo 0, coincidente con l'asse positivo delle X. Gli angoli si misurano in radianti (e di solito le funzioni trigonometriche lavorano con i radianti; la libreria standard mette a disposizione funzioni apposite per la conversione da gradi sessagesimali a gradi radianti e viceversa).
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 21-07-2009 alle 10:52. |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
Quote:
riguardo ciò che invece c'è scritto in alto mi restituisce direttamente il valore come 0.0f? (come si chiamano sti maledetti valori???) |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Sono dati a virgola mobile, a precisione singola, hanno dei fratelli: i double, che sono anche loro dati a virgola mobile, ma a precisione doppia. Per curiosità, in che linguaggio programmi? @EDIT: ah sì, C#, l'ho letto ora nel titolo del thread.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
ok ma io i float li conoscevo già ma non capivo il senso di sto f...
Comunque forse ho trovato pappa pronta qua http://social.msdn.microsoft.com/for...2-dee819d78ad5 ma ti devo ringraziare soprattutto perchè mi hai spiegato i valori degli angoli dopo proverò e vi farò sapere |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
confermo che funziona ciò che ho trovato
mi sapete però dire la necessità di questa f nell'assegnazione delle float? |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
mi autoquoto per risparmiare le dita
Quote:
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:57.










.png)










