Buenas, cuanto tiempo sin pasarme por aqui  :-[

Vengo a postear una duda que, posiblemente, no la llegue a contestar nadie  XD a no ser que hagan carrera matematica o algo.

Estoy haciendo un juego de plataformas. Pero los mobs tienen una IA avanzada. Por ahora consegui que:

- Te sigan a cierto alcanze
- Se paren si te fuiste lejos
- Si te subes en una plataforma, ellos saltan para subirla tambien
- Si saltas un vacio, ellos tambien lo saltan

Aqui mi problema: si ahora haces un acto suicida, por ejemplo, tirarte por un precipicio y gastar una vida extra, ellos se tiraran tambien, y a consecuencia de esto, mueren. Por lo que puedes llegar a matar un jefe solo suicidiandote xD y quiero arreglar esto de la siguiente manera:

Como hago para calcular la posicion donde caera un objeto, sabiendo su velocidad, salto y gravedad. De esta manera lograria que si en la posicion X, Y+1 calculada, hay un bloque, salten, sino, se quedan parados mirando como te caes en el vacio xD

Variables:

gravity = 0.8
velocidad = 6 (ojo, no es speed, es una variable que esta en el evento step tipo asi: x += velocidad)
vspeed (al saltar) = -7


PD: en un juego que hize, podia ajustar la velocidad para que cayera en una posicion X con gravedad y vspeed, pero haciendo una regla de 3 no me sirve :P
Noka siempre responde a los temas con 0 respuestas ^^

mmm...
no puedes crear un objecto invisible en ese lugar y hacer que cuando el jefe se colisione con el que pare o que salte?
Padre Nuestro del Programador de C           
C Nuestro que estas en la Memoria,
Compilado sea tu código,
venga a nosotros tu software,
carguense tus punteros.
así en la RAM como en el Disco Duro,
Danos hoy nuestro Array de cada día,
Perdona nuestros Warnings,
así como nosotros también los eliminamos,
no nos dejes caer en Bucles,
y libranos del Windows, Enter.

Esa seria una solucion muy casera y tendria que estar en todos los mapas poniendo bloques invisibles en los vacios en los que "crea" que no pueden saltar. Igualmente ya descubri una manera de hacerlo, asi que cierren el tema  :) aun asi dejo la respuesta:


Como se desconoce la formula matematica, hay que hacer primero una prueba. Se crea un objeto que al iniciar la room, hace un salto de vspeed = -8 con gravity 0.8 y una velocidad que puedes escojer cada vez que le haces click izquierdo. Haciendo diferentes pruebas me da que con:

Velocidad | Distancia
1 | 21
2 | 42
3 | 63
4 | 84
5 | 105
6 | 126
Parece que incrementa 21 posiciones por cada 1 de velocidad que se le añade.
El codigo para ese trozo de IA quedaria asi:

If place_meeting(x+(velocidad*21),y+1,bloque) = true {jump();}


Estas IA dan su trabajo  :-X ya pueden cerrar post
Noka siempre responde a los temas con 0 respuestas ^^