Come faccio a allineare i proiettili con una pistola?
-
13-12-2019 - |
Domanda
Ho un'immagine del mio giocatore (top-down 2d).Il giocatore ruota per affrontare la fotocamera e tiene una pistola.Quando vengono creati i proiettili, vengono creati su X e Y del giocatore.Funziona quando il giocatore è rivolto verso il modo giusto, ma quando il giocatore ruota e spara, i proiettili vanno la giusta direzione, ma non venire dalla pistola.Come posso risolvere questo?
public void fire() {
angle = sprite.getRotation();
System.out.println(angle);
x = sprite.getX();
y = sprite.getY();
Bullet b = new Bullet(x, y, angle);
Utils.world.addBullet(b);
}
. Soluzione
Dovrai determinare l'offset per la pistola (aprire l'immagine in vernice o studio ed errore), quindi ruotare che l'offset per ottenere la posizione iniziale per il proiettile.
Qualcosa come il seguente dovrebbe funzionare: Nota - non ho testato questo e potrebbe avere TypoS
public void fire() {
angle = sprite.getRotation();
System.out.println(angle);
x = sprite.getX();
y = sprite.getY();
double bulletX = x + (gunOffsetX * Math.cos(angle) - gunOffsetY * Math.sin(angle);
double bulletY = y + (gunOffsetX * Math.sin(angle) + gunOffsetY * Math.cos(angle);
Bullet b = new Bullet(bulletX , bulletY , angle);
Utils.world.addBullet(b);
}
.
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow