Julian_Sk Los Jefes
Cantidad de envíos : 400 Edad : 31 Localización : Argentina Fecha de inscripción : 18/04/2008
| Tema: Tutorial Basico Sobre Variables (Sawady) Miér Mar 03, 2010 8:33 pm | |
| Bueno Aca les Dejo Este Exelente Tuto Que nos Brindo Sawady Hace ya Un Tiempo! - Citación :
- Bueno, esto vendria a hacer un mini tutorial de dos de los tantos usos que tienen las variables. Antes que nada agradezco a pablok83 que es el que me inicio en este tema de las variables cuando no podia entender por ninguna via su funcionamiento.
Primero veamos: ¿Qué es una variable?
La explicacion super simple es que una variable es un elemento de la programacion (en este caso de mugen) que puede adoptar un valor (cualquier) cuando se cumplan determinadas condiciones.
En mugen se asignan de esta manera:
[State 0, VarSet] type = VarSet trigger1 = pos y = 0 ; condicion para que tenga efecto la variable v = 10 ; numero de la variable value = 1 ; valor de la variable
Y vamos a los ejemplos mas absurdos:
- Spoiler:
Ej 1) Cuando el p1 este al nivel del suelo [State 0, VarSet] type = VarSet trigger1 = pos y = 0 v = 10 value = 1
Ej 2) Cuando el p1 este en un movimiento de ataque [State 0, VarSet] type = VarSet trigger1 = movetype = A v = 10 value = 1
Ej 3) Cuando se encuentre en el anim 10 y el tiempo sea mayor o igual a 10 [State 0, VarSet] type = VarSet trigger1 = anim = 200 && Time >= 10 v = 10 value = 1 Y asi podemos seguir con infinidad de tipos de triggers y combinaciones entre los mismos.
Pero ahora vamos a ver como se utilizan.
Yo lo uso para dos cosas:
1) como interruptores
2) como contadores
1) Las variables como interruptores
Bueno, el uso mas clasico de las variables es el de interruptores.
Por ejemplo:
[State 0, VarSet] type = VarSet trigger1 = (pos y < 0 || pos y > 0) v = 10 value = 0
[State 0, VarSet] type = VarSet trigger1 = pos y = 0 v = 10 value = 1
En el caso anterior si esta en el nivel del suelo, la variable adopta el valor 1 y si esta por encima o debajo del suelo adopta el valor 0. Ese es un claro ejemplo de una variable utilizada como interruptor.
Se explica de la siguiente manera: si se cumplen esas condiciones la variable se activa, esta en "on". Si se dejan de cumplir esas condiciones la variable se desactiva, esta en "off".
Veamos este ejemplo:
- Spoiler:
[State 0, VarSet] type = VarSet trigger1 = (pos y < 0 || pos y > 0) v = 10 value = 0
[State 0, VarSet] type = VarSet trigger1 = pos y = 0 v = 10 value = 1
[State 0, Explod] type = Explod trigger1 = var(10) = 1 anim = 7000 ID = 7000 pos = 0,0 postype = p1 facing = 1 vfacing = 1 bindtime = -1 ; para que se mantenga en la misma posicion cuando el p1 se mueve removetime = -1 ; para que se repita continuamente scale = 1,1 sprpriority = 2 ontop = 0 shadow = 0,0,0 ownpal = 1 removeongethit = 0 persistent = 0 ; para que no se active una y otra vez, sino una sola vez
[State 0, RemoveExplod] type = RemoveExplod trigger1 = var(10) = 0 id = 7000 Y este ejemplo mas claro no puede ser
Ahora bien, no solo puede adoptar valores de 0 y 1 cuando se utiliza una variable con este uso.
Vean este ejemplo:
;tengan presente el funcionamiento del statedef -2 para poner cosas que quieren que esten activadas sin importar el state donde se encuentren
- Spoiler:
[State -2, VarSet] type = VarSet trigger1 = prevstateno = 200 trigger2 = prevstateno = 210 trigger3 = prevstateno = 230 trigger4 = prevstateno = 240 ;cuando me pegaron y volvi al state nro 0 trigger5 = movetype = H || stateno = 0 ;cuando me pegaron y volvi al state nro 0 v = 10 value = 0
[State -2, VarSet] type = VarSet trigger1 = stateno = 200 && movehit v = 10 value = 1
[State -2, VarSet] type = VarSet trigger1 = stateno = 210 && movehit v = 10 value = 2
[State -2, VarSet] type = VarSet trigger1 = stateno = 230 && movehit v = 10 value = 3
[State -2, VarSet] type = VarSet trigger1 = stateno = 240 && movehit v = 10 value = 4
;lo que viene va en su respectivo state
[State 200, ChangeState] ; piña debil combo type = ChangeState trigger1 = command = "x" && var(10) = 1 value = 2000 ctrl = 0
[State 210, ChangeState] ; piña fuerte combo type = ChangeState trigger1 = command = "y" && var(10) = 2 value = 2010 ctrl = 0
[State 230, ChangeState] ; patada debil combo type = ChangeState trigger1 = command = "a" && var(10) = 3 value = 2030 ctrl = 0
[State 240, ChangeState] ; patada fuerte combo type = ChangeState trigger1 = command = "b" && var(10) = 4 value = 2040 ctrl = 0 Y miren que lindos combos nos armamos en pocos minutos...
Ya habiendo visto el uso de las variables como interruptores pasamos a un uso diferente (pero no mas complicado):
2) Las variables como contadores
Los dos elementos necesarios para este caso son basicamente: varset y varadd
Un muy claro ejemplo seria:
- Spoiler:
;Modo Furioso ; Statedef 3000 [Statedef 3000] type = S movetype= I physics = S juggle = 4 ctrl = 0 anim = 3000 poweradd = -3000 sprpriority = 1 velset = 0,0
[State 0, varset] type=varset trigger1= Time > 1 var(20) = 300
[State 0, ChangeState] type = ChangeState trigger1 = AnimTime = 0 value = ifelse(pos y < 0, 108, 0) ctrl = 1
;Contador del tiempo en modo furioso ; va en el Statedef -2
[State -2, varset] type = varset trigger1 = var(20) <= 0 var(20) = 0 ignorehitpause = 1
[State -2, varadd] type = varadd trigger1 = var(20) > 0 var(20) = -1 ignorehitpause = 1
[State 0, AttackMulSet] type = AttackMulSet trigger1 = var(20) > 0 time = 1 value = 4 Lo anterior parece complicado pero es demasiado simple para ser verdad... La cosa es asi, queremos un modo furioso, cuando pase por ese state 3000 de la activacion de ese modo, el valor de la variable 20 se posicionara en 300 hasta terminar el state de activacion del modo.
[State 0, varset] type=varset trigger1= Time > 1 var(20) = 300
Cuando termine el state el varadd del statedef -2 se dara cuenta mediante su trigger que el valor esta por encima del valor 0 y cada tic de tiempo que transcurra el valor decrecera (dismunuira) en -1... es decir -1 por cada tic transcurrido
[State -2, varadd] type = varadd trigger1 = var(20) > 0 var(20) = -1 ignorehitpause = 1
Es asi como el modo furioso durara exactamente 300 tics a partir de terminada su activacion. El char en esos 300 tics tendra el cuadruple de su fuerza. Una vez transcurridos los 300 tics, el varset colocado en el statedef -2 vera que el valor del var(20) llego a 0 y dejara inmovil al var(20) en ese valor 0 hasta activar nuevamente el state del modo furioso.
Hasta aqui llega el tutorial. Me despido. Cualquier cosa que no entiendan lean una y otra vez. Si hay algo que no se ve muy claro pregunten en el presente post que contestare a la brevedad.
Todo lo demas queda a su imaginacion
Saludos. Saludos | |
|
sawwen Los Jefes
Cantidad de envíos : 164 Fecha de inscripción : 12/09/2008
| Tema: Re: Tutorial Basico Sobre Variables (Sawady) Miér Mar 03, 2010 8:39 pm | |
| | |
|
yonimankpo Super Sayan
Cantidad de envíos : 57 Edad : 28 Localización : Argentina Fecha de inscripción : 22/02/2010
| Tema: Re: Tutorial Basico Sobre Variables (Sawady) Vie Mar 05, 2010 6:15 pm | |
| En verdad muy es excelente el post muy explicativo. | |
|
WTF Majin
Cantidad de envíos : 209 Edad : 29 Localización : Chile , Santiago , Maipu Fecha de inscripción : 07/09/2008
| Tema: Re: Tutorial Basico Sobre Variables (Sawady) Vie Mar 05, 2010 6:51 pm | |
| a mi no me salen los combos con variables . osea se supone que los engancho bien i todo . bueh tendre que hacerlo con los changestate :S XD.
buen tutorial .pero cuando aprenda mas lo pongo en practica . | |
|
Relampago Future Sayan
Cantidad de envíos : 101 Fecha de inscripción : 20/02/2010
| Tema: Re: Tutorial Basico Sobre Variables (Sawady) Vie Mar 05, 2010 7:14 pm | |
| nunca pude entender las variables | |
|
Contenido patrocinado
| Tema: Re: Tutorial Basico Sobre Variables (Sawady) | |
| |
|