24/8/09

Engine de Explosiones [VX-XP]

Buenas, hoy os presento un ngine bastante simple pero latoso de hacer, aunque una vez creado cuenta con la ventaja de poder copiarse y pegarse tantas veces como se quiera. Para empezar necesitamos tener un evento que guarde la informacion de la posicion del personaje, es decir: sus coordenadas. Creamos un nuevo evento, lo llamamos como nos dé la gana, y vamos operaciones de variable. Una vez alli, seleccionamos la opcion personaje -> coordenadas X y lo guardamos en una variable, por ejemplo, personaje_X. Repetimos el proceso con las coordenadas Y y guardamos el evento en proceso paralelo. Bien, con esto hemos conseguido que en todo momento, el rpg pueda calcular la posicion del personaje lo que no es muy util a la hora de ser afectado por disparos y cosas asi, pero de eso, hablaremos otro dia. Ahora que el rpg ya es capaz de encontrar al jugador, empcemos a darle instrucciones sobre lo que hará con esa informacion. Creamos un nuevo evento, sobre el cual ocurrirá nuestra explosion, y repetimos el proceso de variables pra que tambien se pueda calcular la posicion de este SELECCIONANDO LA OPCION ESTE EVENTO Y NO EL NOMBRE DEL MISMO (Si quieres que la explosion se active a distancia ponlo en proceso paralelo pero con un interruptor de condicion). Después de esto, toca empezar a comparar, asi que ponemos en el nuevo evento: condiciones y efectos Personaje X = Explosión X y justo debajo condiciones y efectos Personaje Y = Explosión Y. Con esto conseguiremos que se detecte si el personaje está justo debaj de la explosion, en el punto de su nacimiento, asi que despues de las dos condiciones, ponemos la opcion cambiar PV y lo redicimos en funcion de la fuerza que se suponne que tine la explosión. Esto que hemos hecho, es lo más básico paraque te afecte, pero aun no nos hemos ocupado de los alrededores del foco, donde tambien llega la explosion. Yo rcecomiendo que esta ocupe 9 tiles, es decir, 3x3 porque es una explosion de un tamaño considerable, y la más fácil de hacer. Toca que el programa etecte si el personaje no esta en el foco, sino por ejemplo, a la izquierda. Sabemos que esto quiere decir que tiene las mismas coordenadas Y pero una coordenada X menos, por lo que ponemos debajo de fin las dos variables que indican las coordenas X e Y de la explosion (otra vez) y despues lo siguiente: operaciones de variable, X explosión - 1 y debajo el mismo condiciones y efectos de antes. Esto viene a decirnos que si la explosion hubiera estado a la izquierda le habria pillado. Este es todo el proceso, lo único, es que hay que repetirlo para las demás direcciones, teniendo en cuenta si hay que modificar el eje X (izquierda-derecha) el Y (arriba a bajo) o ambos para hacer diagonales. Recuerda que antes de cada variacion de la coordenadas de la explosion para detectar donde está el personaje SIEMPRE hay que colocarlasen su sitio.
Si no lo has cogido muy bien, puedes compararlo con este ejemplo:

1 comentario: