#30 Si lo que tienes que hacer es subirlo a github para que te podamos dar consejos de verdad, no a ciegas
#31 Tienes razón, Lecherito, y supongo que lo haré. Mi pregunta anterior la dije por si podría ser un error muy de novato, como lo del operador que comentaste que quizás podría haberlo puesto mal (si eso era lo que te referías) y alguien me lo decía para comprobarlo.
No quiero que se convierta este hilo en "ILLOS AYUDADME A HACER EL JUEGO PORQUE NO SÉ NADA" xD. Soy muy novato programando y a lo mejor me dais buenos consejos para el código, pero que en ese momento pueden salir de mi entendimiento y no puedo incluirlos, así que os ahorro molestias innecesarias.
Si alguna vez estoy atascado realmente, sin ninguna pondré mi código, y a la larga también la colocaré para que lo veáis. Aun así si alguien tiene curiosidad lo paso por privado
Dicho en pocas palabras, yo no soy de pedir algo al menos que lo necesite de verdad.
Qué envidia! A ver si termino pronto la parte de diseño del Master y empiezo a picar código
A FAVs como dicen por aquí
Pequeña actualización, aunque me tuve que comer bastante la cabeza el día de ayer. Me vino la solución justo cuando apagué el PC y lo apunté en un papel para hacerlo hoy xD.
Cuando un enemigo es destruido se vuelve invisible, pierde el hitbox y deja de disparar. Tantos el enemigo invisible como los proyectiles son eliminados tras llegar al final.
Ahora tengo una duda, la cual si alguien me puede aconsejar se lo agradecería.
No quiero que el enemigos disparen hacia delante, sino que su misil vaya dirigido a la posición que se encontraba el jugador por última vez cuando el fue creado.
Tengo que crear un método que coja las coordenadas del jugador y de la nave que lanza el proyectil. Con ellas podré saber la dirección en diagonal donde tendrá que dirigirse el proyectil, pero a partir de ahí es cuando me pierdo por completo. ¿Hago un array bidimensional con los valores X e Y del rectángulo que se crea entre ambas naves? aun así debo de jugar con la velocidad (actualmente la tengo en int, supongo que deberé de cambiarlo a un float para que sea fluido).
A lo mejor se puede hacer una manera más fácil, ojalá xD
#34 De qué manera se mueven los misiles de los "malos"? Tendrán un vector director, no? Lo que tienes que hacer en resumidas cuentas es que tu vector dirección sea la posición del player en el momento del disparo, nada más. Y ese es la posición del player menos la del origen.
#35 Gracias hermoso
Lo tengo de esta manera:
En la clase Enemy hay un método que automáticamente crea y agrega un misil a un ArrayList
public void shoot() {
if (prepared && visible) {
// Aquí le indico donde tiene que aparecer (comentario que te hago pa ti xD)
enemyMissile.add(new Missile(x - WENEMY, y));
prepared = false;
}
}
También habría que cambiar algo en el movimiento del misil, no? Ya que tengo puesto lo siguiente:
Esto forma parte de la clase del proyectil.
public void moveMissile2() {
x -= 3;
// y += 0.1f;
if (x < 0) {
waste = true; // con el update de
}
}
Si el misil usa ese método no irá donde se encuentra el jugador, no? me refiero, el vertical que coja no sé si valdrá como el x o directamente seguirá hacia delante.
#36 échate un ojo a estos dos links:
https://gamedev.stackexchange.com/questions/84017/how-to-move-an-object-uniformly-from-one-point-to-another-at-a-fixed-angle
https://gamedev.stackexchange.com/questions/48119/how-do-i-calculate-how-an-object-will-move-from-one-point-to-another/48191#48191
Básicamente lo que tienes que hacer es ir moviendo tu misil en la dirección resultante de restar la posición del player menos la del misil, y ese movimiento hacerlo uniforme mediante tu deltaTime.
#38 Tienes ya el código en Github? Sino como consejo es que empieces a usarlo cuanto antes. A parte de que te vamos a poder ayudar mejor, vas a esforzarte en escribir código más limpio y legible sabiendo que otros lo van a ver xDD Y acostumbrarte a usar un sistema de control de versiones es lo mejor.
#39 Me has pillado!
Una de las razones por lo que no lo he subido todavía es porque quiero terminar la primera fase (ya mismo, pongo lo de los misiles y ya) y empezaré a mejorar el código para subirlo. Aunque tengo nombres en inglés y otros pocos en español. En eso seguro que me criticáis xD
Me vendrá bien para coger soltura :p
#37 solucionado
Como me dijo @Akiramaster , parece Jiren esquivando golpes HAHAHAHAHA
Tengo que afinarlo bastante. Primero que el proyectil una vez llegado al punto siga su trayectoria natural en vez de pararse y que cuando una nave pase de largo deje de disparar.
Luego por la noche lo veo
P.D: Es probable que ese mismo movimiento lo use para otro tipo de naves enemigas que tengo pensado en introducir.
Lo hice con este método, que se encuentra en la clase Missile.
public void aondeva(float playerX , float playerY) {
if (!detected) {
detectedX = playerX;
detectedY = playerY;
detected = true;
}
else {
float dx = detectedX - x;
float dy = detectedY - y;
float length = (float) Math.sqrt(dx*dx+dy*dy);
dx /= length;
dy /= length;
dx *= SPEED;
dy *= SPEED;
velocityX = dx;
velocityY = dy;
moveMissile2();
}
}
Este es el método moveMissile2()
public void moveMissile2() {
x += velocityX;
y += velocityY;
if (x < 0) {
waste = true;
}
}