Posted September 10, 2007 · Report post Tutorial Avanzao de Variables¿Y que mejor pa aprender variables de modo avanzao, que haciendo un engine de rango de vision para enemigos?Los que ya manejeis variables, operaciones con variables y tal, no os resultará muy dificil comprender esto y manejaros con esto.Antes de nada. Vamos a mezclar variables y coordenadas, ya sabeis que se usan las coordenadas X e Y, X como horizontal e Y como vertical.Empezando. En un engine de rango de vision, tenemos que darle un area de vision al enemigo, segun a donde este mirando..... Se suele usar un area conica, de menos a mas pero no muy extensa.....Hacer el engine. Antes de na tenemos que creas las variables, del enemigo y del prota, en un evento en proceso paralelo.CODEOperaciones de variable: [0001: X Enemigo] = Enemigo - Coordenada XOperaciones de variable: [0002: Y Enemigo] = Enemigo - Coordenada YOperaciones de variable: [0003: X Personaje] = Personaje - Coordenada X Operaciones de variable: [0004: Y Personaje] = Personaje - Coordenada Y Cuando esten creas las 4 variables, pasaremos a hacer el engine de verdad.Vamos a crear un evento comun, donde tengamos las acciones y el engine de la vision del enemigo:[Spoiler][/Spoiler]Bueno, ese seria el engine, con el rango de vision, mirando hacia abajo el enemigo, esto nos daria un rango de vision en efecto cono, Ejemplo:[spoiler][/spoiler]Ahora la explicación:La primera condicion, es que este mirando hacia abajo.Despues podemos ver que ahi 4 operaciones de variable antes de cada condicion y efecto.Estas operaciones, lo que hacen es igualar las 2 variables a las coordenadas X e Y del personaje, despues de cada condicion anterior, las siguen otras 2 operaciones de variables, las cuales hacen una operacion, restan la coordenada X del personaje a la coordenada X del enemigo, haciendo lo mismo con la coordenada Y.Despues de cada operacion, ponemos condiciones y efectos, indicandole el "rango".Por ejemplo, en la primera.Le decimos que la coordenda Y del pesonaje debe ser igual a 1 (es decir, le estamos diciendo que el personaje tiene que estar 1 tile por debajo del enemigo) y que la coordenada X tiene que ser = a 0 (es decir, tiene que estar alineao con el enemigo).En la segunda, le decimos que la coordenada Y del personaje debe ser igual a 2 (2 tiles por debajo del enemigo) y la coordenada X debe ser igual a 0 (tiene k estar alineao con el enemigo).En las siguientes condiciones, le decimos que la coordenada Y debe ser igual a 2, y la coordenada X igual a 1 (es decir, aqui ya estamos ampliando el rango de vision hacia los lados, que la coordenada X sea igual a 1, quiere decir que el personaje puede estar a 1 tile a su izquierda).Y en la siguiente condicion hacemos lo mismo pero diciendole a la coordenada X que seria a -1, es decir, que puede estar 1 tile a su derecha. (izquierda y derecha del enemigo, no la nuestra).Las siguientes condiciones, son lo mismo, solo que vamos bajando y vamos ampliando la coordenada X para que lo vea estando mas a su derecha e izquierda.Basicamente, este es el engine de rango de vision, solo queda hacer las demas posiciones, que vienen siendo lo mismo, jugar con ambas variables, las variables que guardan el valor de la coordenada X e Y del enemigo/Personaje.No tiene ninguna complicacion para los que esten acostumbrados a manejar coordenadas negativas y positivas, por que si no, uno se lia con to esto...Esta es solo una forma de hacerlo (pa mi la mas sencilla) ahi varias......Espero que lo hayais entendio y si no.. ya sabeis.Salu2 0 Share this post Link to post Share on other sites
Posted September 10, 2007 · Report post Esta muy bien el tuto, buen aporte Salu2 0 Share this post Link to post Share on other sites
Posted September 10, 2007 · Report post Entiendo o.oEntonces, hay que recrear la vision del enemigo, con 4 variables principales: Evento mirando arriba, evento mirando abajo, evento mirando a izquierda, evento mirando a derecha. y espues, con varias subvariables, dependientes de cada variable principal.as vez, hay kea ñadir una subvariable que sirve para detectar si el heroe o lo que sea este dentro del rango de vision.Seria algo como:Si evento mira para arriba:-Si la posicion de algo es igual a posicion evento + (Relevantemente)[ [-2 -3] [-1 -3] [ 0 -3] [ 1 -3] [ 2 -3]+++++[-1 -2] [ 0 -2] [ 1 -2] [ 2 -2]++++++++++[ 0 -1]]-Poner variable "Ha caido" en marcha.Asi con cada tipo, no?Pero hay n fallo de railsmo...realismo.Se nota el fallo? Hay diagonales cerca del evento que no se cubren.Por lo tanto, habria que añadir una hxeta por cada rango mas ke keramos fijarnos, haciendo varias posiciones compartidas por dos o varias de las variales globales.estoy en ll ceto? 0 Share this post Link to post Share on other sites
Posted September 10, 2007 (edited) · Report post MmmmBueno, los numeros que se usan como veo k en la segunda imagen pones 0 en su diagonal del enemigo hmm....Los numeros k usamos es para referirnos a la coordemada del enemigo....El Enemigo seria la coordenada 0 x e y respecto al personaje, a nuestra izquierda la coordenada X es negativa, a nuestra derecha positiva, la coordenada Y hacia arriba es negativa, hacia abajo positiva...Por eso lo de los numeros, le indicamos lo que nos estamos "alejando" de el, ya que el enemigo es el 0..PD:Ya e entendio lo que querias decir, entonces es cuestion de agregar un rango de vision mas grande en diagonal, justo delante del enemigo.Salu2 Edited September 10, 2007 by Dieguin451 0 Share this post Link to post Share on other sites
Posted September 11, 2007 · Report post Muy buen tutorial dieguÃn, yo estube intentando hacer uno con iteradores (lo cual ofrece mucha más flexibilidad y menos posibilidades de errores) y todo eso, pero la cosa iba lentÃsima, aunque funcionaba xDEstá bastante bien para que aprendan los más novatos y se entren en el engorroso (gracias gaynterbrain) mundo de los engines 0 Share this post Link to post Share on other sites