Estoy intentando crear un juego, un tio que se mueve segun la posicion del raton, i dispara a sus enemigos, girando 360 grados.
El problema esque debo tener un error con el angulo, o no entiendo bien el porque, si disparo hacia arriba y hacia abajo, lo k seria cerca del grado 0 y del grado 180, lo que me hace es disparar hacia atras.
Mejor hos pongo el codigo que utilizo:
Código Javascript:
Código Javascript :
//ESTA ES LA FORMULA DE LA RECTA DADO DOS vectores //al clickar con el raton recojo su posicion, y la del tio, y al tener 2 puntos //puedosaber la formula de la recta. //por cada vuelta, sumo o resto 5 a 'x', y vuelvo a recojer la x segun esaa x. var yb = ytio+(((yraton-ytio)/(xraton-xtio))*(bala.getX()-xtio)); bala.setY(yb); //si el grado es superior de 180 dispara hacia el otro lado. if (parseInt(grados) > 180) { bala.setX(bala.getX()-5); }else{ bala.setX(bala.getX()+5); }
La variable grados la saco de la rotacion del personaje.
Tengo el 'juego' colgado para que podais ver el error, mantened pulsado el raton para disparar, y 'wsad', para mover. Si el disparo se hacerca arriba o abajo vereis el error.
"gclimb.com/fire"
No sabia como crear la trayectoria de la bala, y esto me lo monte yo con lo que sabia, si sabeis otra forma de generar mejor la trayectoria..
GRacias por adelantado!
PD: Hos pongo como saco los grados:
Código Javascript :
var theta = Math.atan2(ratony - pjy-15, ratonx - pjx-15); // be sure theta is positive if (theta < 0) { theta += 2 * Math.PI }; // convert to degrees and rotate so 0 degrees = 12 o'clock var grados= (theta * 180 / Math.PI + 90) % 360;