Acabei de Terminar um especial/Modo que faz a Pan ser protegida pelo Giru. A questão é: Este escudo tem a função de proteger, seguir, e ficar envolta dela, até o fim do especial/Modo mas que de certa forma, fica meio estático a animação original.
Eu queria aplicar um pouco de flutuação (fazer ir para cima, e para baixo) ao Especial/Modo, para finalizar de forma bonita e detalhada.
basicamente, o escudo, é feito pelo Giru/helper. (statedef 22000) que controla dois helpers responsáveis por gerar esse escudo. (stadef 22001 e 22002), pois como escudo gira ao redor do corpo dela, ela precisa de duas anims, um para ficar atrás (SpritePriority -1) e outra para ficar na frente (SpriteSpriority 5).
Esses dois states (22001 e 22002) precisam de BindToRoot para seguir a Pan durante a sua execução, o detalhe, é que isso mantém o Giru estático durante o BindToRoot.
Queria, e preciso que o giru, durante o tempo que fique protegendo o corpo da Pan, possa flutuar para cima, e para baixo durante o especial para aperfeiçoar de forma devida a este ataque.
Sei que é um detalhe supérfluo para este modo, levando em conta que já funciona perfeitamente e não gera erros. e é legal visualmente. mas quero saber se alguém pode me ajudar a fazer isto?
Deixei os states de forma Simples, e reduzida, para se entender o Modo Escudo dela:
;--------------------------------------------------------------------------- ;Giru Super Spin Shield [Statedef 22000] type = S movetype= I physics = N anim = 3503 ctrl = 0 sprpriority = -1 velset = 0,0
[State 22000, AssertSpecial] type = AssertSpecial trigger1 = 1 flag = noshadow
Este é o tipo de Código que eu uso para fazer objetos flutuarem:
[State 0, VarSet] ; reset type = VarSet trigger1 = !time v = 6 value = 0
[State 1500,fuwavar(1)];Movimento de flutuação type = VarSet trigger1 = (command != "holdfwd" && command != "holdback" && command != "holdup" && command != "holddown") && var(6) != 2 trigger2 = (var(6) = 2) && Vel Y >= 1 v = 6 value = 1
[State 1500,fuwavar(2)] type = VarSet triggerall = var(6) = 1 trigger1 = Vel Y <= -1 trigger2 = (P2BodyDist Y > 200)&&(Vel Y < 0) v = 6 value = 2
[State 1500,fuwaUp] type = VelAdd trigger1 = var(6) = 1 y = -0.05
[State 1500,fuwaDown] type = VelAdd trigger1 = var(6) = 2 y = 0.05
Obviamente, não funciona junto com o BindToRoot. (a não ser que eu não saiba como fazer usar os dois)
Acredito, que a solução viavel, seja fazer o a Poisção Y do RootToBind, funcionar de acordo com uma Var que será atualizada a cada segundo, gerando essa flutuação. mas o meu cerebro não processa um meio de se criar isso.
Mensagem editada por benhazard - Sexta, 07/09/2012, 8:57 PM
looool mano eu naum entendi o q EXATAMENTE vc quer, eu entendi mais ou menos xD mas deixa eu tirar minhas dúvidas primeiro: Tipo, o Giru se transforma no escudo? Se sim, a animação dele é invisível no momento pra aparecer os outros dois helpers? Isso naum vai influenciar mto, só quero entender melhor a situação xD Vlw MD² Vlw Baka-Sennin Vlw FM²
ahhhhh sim, bem interessante o/ enfim, como vai ser esse esquema dele flutuar? vai ser tipo só ele subindo e descendo levemente com o tempo ou ele vai subir e descer de acordo com o apertar de comandos? Vlw MD² Vlw Baka-Sennin Vlw FM²
Bem, a ideia e fazer esse giro se deslocar levemente, para cima, e para baixo. de forma natural, definida por um padrão de ticks. tipo, começa levemente para cima, vai desacelerando até chegar no limte da altura pre definida, e então deçe e comça a desacelerar quando alcança a base, e repete de forma natural.) usando um pouco a logica do velcet + Var. (veja o codigo de flutuação com as vars(6))
como disse antes, o problema, é que o BindToRoot fixa a posição relativa ao P2, o fazendo seguir somente uma posição pré-definida.
Se eu soubesse de um meio, para fazer o valor gerado continuamente por ticks, ser importado para o Y do BindToRoot V = 0,Var(7) por exemplo, já ia resolver.
Mensagem editada por benhazard - Sexta, 07/09/2012, 10:00 PM
[State 0, BindToRoot] type = BindToRoot trigger1 = 1 time = 1 pos = 0,-(Floor(Root,Pos y)+45)+(10+Floor(Sin(GameTime/25.0*PI)*10))
A pos Y vai varias de 45 (pos que é o centro da 35 e 55 em um intervalo de 25 de tempo mesmo Se o char pular, o helper vai ficar entre 35,55 sendo 45 o meio (vc pode alterar esse valor livremente, juntamente com o 10 do inicio da equação o final (sendo o 1° o numero que vai subtrair de 45 e o final o valor que vai somar!)
----
[State 0, BindToRoot] type = BindToRoot trigger1 = 1 time = 1 pos = 0,-45+(10+Floor(Sin(GameTime/25.0*PI)*10))
O -45 é a pos do meio, e soma-se 10 e subtrai-se 10 em 25 de tempo (sendo 12,5 pra cada um, vc pode alterar esse valor) esse dai é para o helper seguir o p2 na posição y tb no caso XD
Ja o x, vc altera como for preciso o/
flw davidluanrizi@hotmail.com <-- Se add por favor se identificar o/
Valeu, me adiantou 10 anos XD, bem, pode me explicar um pouco sobre a sua formula, que daí eu ponho, mais em pratica, quando for precisar, e poder já resolver sozinho?, tipo, o que significa PI por exemplo?
Mensagem editada por benhazard - Sexta, 07/09/2012, 11:04 PM
[State 0, BindToRoot] type = BindToRoot trigger1 = 1 time = 1 pos = 0,-45+(10+Floor(Sin(GameTime/25.0*PI)*10))
Vou separar-la por partes
-45 = posição y do char(root) base, para tudo acontecer, influencia em quase tudo xD +Floor(Sin... Vai ser o -45 + O Arredondamento do Seno ,Posição Y que varia em formas de ondas no caso, em 25 de tempo, metade dele esse grafico sai do 0 e desce até o -35 (no caso -45+10, que ta inicio ali da forma, somando) isso em 12,5 de tempo, ja que esse 25 é a onda toda, subida e descida após 12,5 de tempo ele começa a somar os 10, somando 45+10, 55, tudo isso vs o PI, ja que ondas estao ligaas a Circulos e tals
não tenho muita noção de como isso funciona na realidade, melhor, não sei explicar kkkkkk faz tempo que aprendi essa jossa de parabolas e graficos senoidais e cossenoidais e seila o que
enfim
flw
EDIT:
isso em forma de grafico ficaria
davidluanrizi@hotmail.com <-- Se add por favor se identificar o/
Mensagem editada por david11 - Sexta, 07/09/2012, 10:56 PM
Thunderbert, EAHEIUHIE nadaa aprendi uma parte disso com vc se não me engano kkkkkk créditos a Thunder ae em cima o//
outra ultilização disso é pra palfx :B
[State 0, PalFX] Type = PalFX trigger1 = 1 time = 1 add = 0,25+Floor(Sin(Time/10.0*PI)*25),80+Floor(Sin(Time/10.0*PI)*80)
fica bonito esse azulzim que da eu nao manjo mt de sinadd e essas coisas entao faço assim as veses, mais eu to conseguindo mecher um poko mais com sin add e tipo add = 256,256,256 se eu por time = 6 se eu coloca no sinadd -256,-256,-256,6*4=24 acaba que da akele flash (256 ate chegar no 0) enfim davidluanrizi@hotmail.com <-- Se add por favor se identificar o/