Sto sviluppando un videogioco indie, e ho operato partendo dal presupposto che, poiché la levetta sul mio controller ha un raggio di movimento circolare, restituisce le coordinate "circolari"; cioè, coordinate cartesiane vincolate a un'area circolare (di raggio 1). Infatti, le coordinate sono "quadrate"; ad esempio, la posizione del pollice in alto a destra registra come x = 1, y = 1. Quando converto le coordinate da cartesiano a polare, la magnitudine può superare 1 - il che ha l'effetto che il giocatore può muoversi più rapidamente in diagonale di quanto possa verticalmente o orizzontalmente.Come posso convertire le coordinate su un quadrato in coordinate su un cerchio?
Quindi, per chiarire, voglio registrare la posizione di una levetta analogica in termini di direzione e magnitudine, dove la magnitudine è compresa tra 0 e 1. La levetta restituisce le coordinate su un piano quadrato, quindi è sufficiente convertire le coordinate da cartesiano a polare non è sufficiente. Penso di aver bisogno di convertire le coordinate nello spazio, ma ciò sta premendo i limiti del mio cervello scimmia.
Si occupa del quadrato "intero" o restituisce coordinate che si trovano all'interno di qualcosa che sembra già un cerchio? Per esempio.assicurati di poter (o non puoi) prendere la sqrt-magnitude. –
Cosa (x, y) ottieni con il bastone verso l'alto? Inoltre, il tuo stick analogico o interruttori? Puoi ottenere valori come (0,5,0,5)? – Nosredna
Sì, le coordinate sono distribuite su un quadrato, inclusi gli angoli. – Metaphile