Dessa vez vou explicar de uma forma bem simples como se faz um
shoryuken simples... logo, logo vc já terá um shotokan da vida pronto,
só copiando e colando os códigos daqui uauhhuahuahahha :P
Começando pelo CMD:
Aqui está como é o comando do shoryuken da Sakura:
Quote
[Command]
name = "shoryuken_x"
command = ~F,D,DF,x
time = 20
Decifrando as linhas:
[Command]: indica que vc vai adicionar um comando ao seu personagem
name: é aonde vc declara o nome do seu golpe, isso é usado pelo trigger Command.
command:
é o comando do golpe. Preste muita atenção ao til (~) antes do
comando... o ~ indica quando o botão é solto, ~F diz que quando vc
soltar a tecla "Frente" o comando começará a ser ativado.
time: é quanto tempo, em ticks, vc tem para executar o comando.
O código ai embaixo é para ser colocado depois do [statedef -1] do CMD:
Quote
[State -1, Shoryuken Fraco]
type = ChangeState
value = 1010
triggerall = Command = "shoryuken_x"
triggerall = StateType != A
trigger1 = Ctrl
Decifrando as linhas:
[State -1, Shoryuken Fraco]: indica que vc vai declarar um sctrl (state control) no seu personagem.
type = ChangeState: ChangeState indica que o personagem vai para outro state quando acontecer o comando.
value = 1010: valor do statedef que o personagem vai... esse valor ai tem que estar em um statedef no CNS
triggerall = Command = "shoryuken_x": lembram do comando que vc declarou lá em cima? ai está ele... quando vc usar o comando e...
triggerall = StateType != A: ... seu personagem não estiver no ar (StateType != A) ele vai usar o golpe, mas antes...
trigger1 = Ctrl: ...ele vai checar se vc está controlando o personagem (Ctrl).
Oh blz! fiz um comando no CMD! Mas e agora? o que eu coloco no CNS?
Segunda Parte - o CNS
Quote
[Statedef 1010]
type = S
movetype = A
physics = S
poweradd = ifelse(Var(11) = 1,-60,60)
ctrl = 0
anim = 1010
sprpriority = 4
Decifrando as linhas:
[Statedef 1010]: lembra lá no CMD quando falei pra indicar o statedef no CNS? ai está ele
type = S: o tipo da animação, no caso em pé (S)... mas o shoryuken não é no ar? sim, é... mas espera um pouco ai vai :P
movetype = A: o tipo do movimento, no caso ataque (A), não preciso explicar muito o pq...
physics = S: a física aplicada ao personagem... vamos deixa-la em S (Stand) mesmo....
poweradd = 60: aqui é a quantidade de Power que vai aumentar na sua barra caso vc use o shoryuken
ctrl = 0: vc acaba de perder o controle de seu personagem... mas calma, é só por um tempinho :P
anim = 1010: a animação do golpe no AIR... sem ela, seu shoryuken vai ser uma imagem parada do seu personagem :P
sprpriority = 4:
a prioridade das sprites do golpe... um numero alto, pode fazer as
sprites do seu personagem aparecer na frente das sprites do inimigo, um
numero baixo pode ter o efeito contrario.
Essa parte é "sucegada", como diria o lion huahuahuahahhaha mal ae lion, mas tive que fazer essa piada :P
Agora vem as principais partes do shoryuken... fazer o personagem subir
Quote
[State 1010, StateTypeSet]
type = StateTypeSet
trigger1 = AnimElem = 4
statetype = A
Decifrando as linhas:
type = StateTypeSet: vai indicar que seu personagem vai ter o StateType, que atualmente está em Stand (S), para outro StateType...
trigger1 = AnimElem = 4:
aqui vai indicar em que elemento da animação do shoryuken vai ser
mudado o StateType... aqui é a parte que mais vária de personagem para
personagem e de programador para programador... no lugar de AnimElem, vc
pode usar várias coisas como AnimElemTime(), Time, Var() e outros...
vou deixar isso para outro tutorial.
statetype = A: de Stand, agora o StateType está indo para A (Air) indicando que seu personagem já está no ar.
Esses dois statedefs a seguir, vão indicar a velocidade de seu
shoryuken... vc pode mudar do jeito que quiser isso, só fique atento
para não fazer merda.
Quote
[State 1010, VelSet]
type = VelSet
trigger1 = AnimElem = 4
x = 6
y = -6
[State 1010, VelAdd]
type = VelAdd
trigger1 = Time > 15
x = 0.23
y = .6
Decifrando as linhas:
O primeiro statedef...
type = VelSet: vai setar a velocidade do personagem para os valores indicados em x (horizontal) e y (vertical)
trigger1 = AnimElem = 4:
aqui é em que elemento da animação vai ser aplicado essa velocidade...
lembrando que isso varia de personagem para personagem e de criador para
criador.
x = 6: velocidade x (horizontal) aplicada no 4º elemento da animação, isso é aquele pequena ida para frente que os shoryukens fazem
y = -6: velocidade y (vertical) aplicada no 4º elemento da animação, aqui é a altura do shoryuken... quanto mais negativo o valor, mais alto ele vai... tome cuidado.
O outro statedef...
type = VelAdd:
aqui vai indicar quando de velocidade está se aplicando a cada tick do
golpe... alem disso, ele pode ser seu "controlador de gravidade",
aplicando uma certa física ao seu golpe.
trigger1 = Time > 15:
aqui indica depois de quanto tempo percorrido da animação vai ser
ativado esse statedef... e novamente, isso varia de personagem para
personagem e de criador para criador.
x = 0.23: aqui será quanto de velocidade x (horizontal) será aplicada a cada tick depois da ativação do trigger.
y = 0.6:
aqui será quanto de velocidade y (vertical) será aplicada a cada tick
depois da ativação do trigger... alem disso, a velocidade y aplicada
dessa maneira em um VelAdd ele ser o seu "controlador de gravidade"...
Huhuhu meu Ryu voa... mas eu quero que ele fique no chão depois que acabe o golpe :P
Isso acontece por falta de um ChangeState adequado para quando ele
estiver chegando ao ponto 0 de y... tambem conhecido como chão
uhahuahuhahahua aff... :P
Para corrigir isso, colocamos o seguinte ChangeState
Quote
[State 1010, ChangeState]
type = ChangeState
trigger1 = Pos Y >= 1
value = 1013
ctrl = 0
Decifrando as linhas:
type = ChangeState: o seu personagem vai mudar de statedef quando ele chegar ao chão
trigger1 = Pos Y >= 1:
indica quando seu personagem vai mudar de state... no caso, quando a
posição dele em relação a y for de 1 ou maior que 1 (Pos Y >= 1)
value = 1013: é o valor do state que seu personagem está indo
ctrl = 0:
vc continua sem controle sobre o personagem... fique a vontade de
cacetar as suas teclas que não vai adiantar nada uahhuahahhauuha :P
Legal! mas agora ele fica travado quando chega ao chão... :P
É... agora só falta a parte final!
Parte Final - O Último Statedef!
Quote
[Statedef 1013]
type = S
physics = A
ctrl = 0
anim = 1013
sprpriority = 4
Decifrando as linhas:
[Statedef 1013]: ai está o state definido no ChangeState de quando vc chega ao chão.
type = S: ele tem o tipo S (Stand) por vc já ter voltado ao chão
physics = A: a física indica que vc ainda está no ar (A), mas não tem problema...
ctrl = 0: ainda sem controle sobre o personagem...
anim = 1013: ai está a animação no AIR que seria a animação do seu personagem chegando ao chão
Os dois states abaixos irão fazer o seguinte:
Quote
[State 1013, PosSet]
type = PosSet
trigger1 = 1
y = 0
[State 1013, VelSet]
type = VelSet
trigger1 = !Time
y = 0
Decifrando as linhas:
O primeiro state...
type = PosSet:
se por algum problema seu personagem passe um pouco do ponto de mudar
de state e fique uns pixels abaixo do normal, isso vai fixar a posição
dele
trigger1 = !Time: indica que vai ser ativado assim que começar o statedef... !Time tambem é conhecido como Time = 0...
y = 0: vai ajustar a sua posição y (vertical) a 0
O segundo state...
type = VelSet: aqui o VelSet vai ser usado para zerar a velocidade que ainda está vindo do shoryuken
trigger1 = !Time: indica que vai ser ativado assim que começar o statedef... !Time tambem é conhecido como Time = 0...
y = 0: isso zerou sua velocidade y
Agora sim, o Grand Finalle uhahuahuahhah o ultimo ChangeState :P
Quote
[State 1013, ChangeState]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
Decifrando as linhas:
type = ChangeState: muda de statedef... acho que vc já viu isso antes :P
trigger1 = AnimTime = 0: vai mudar de state só quando a animação chegar ao fim (AnimTime = 0)... aqui tambem varia de criador para criador e tal...
value = 0: no caso, a Sakura está voltando para a Stand depois de terminar todo o shoryuken
ctrl = 1: finalmente vc voltou a ter controle sobre seu personagem
Aeeeeeeeeee agora meu Ryu tem um soco, um hadouken e um shoryuken \o/
isso ae, o tutorial termina ai... só lembrando que esse é um dos jeitos de se fazer um shoryuken
qualquer dúvida, sugestão, critica, correção e tal, por favor poste ai
valeu!
Obs: ai no código não coloquei o HitDef.