/ / logic para jogo de estilo guitar hero em AS3 - actionscript-3, timing

lógica para o jogo estilo guitar hero em AS3 - actionscript-3, timing

Eu estou tentando criar um jogo com um similarestrutura para o herói da guitarra. As formas são criadas no lado esquerdo da tela e animadas para uma "área de acertos" à direita. A ideia, obviamente, é que as formas cheguem à área de acertos no ponto correto da música.

No momento, estou trabalhando no horário exato em que cada forma deve atingir a área de hits, sabendo que levará 4 segundos para que a forma seja animada na tela.

Basicamente, no começo da música que estou usandoTweenMax atrasou a chamada para cada forma requerida na música no começo. o atraso que estou usando foi pré-calculado como o tempo que levará para a forma para animar menos o tempo de animação.

TweenMax.delayedCall(1, createShape, [params]);
TweenMax.delayedCall(3, createShape, [params]);
TweenMax.delayedCall(5.5, createShape, [params]);
TweenMax.delayedCall(11, createShape, [params]);
TweenMax.delayedCall(17, createShape, [params]);

etc ...

obviamente estou usando um loop e estou extraindo os atrasos e todas as outras informações de um documento xml.

Eu imagino que há uma maneira muito melhor de fazer isso, mas eu tenho procurado e não consigo encontrar nada.

Qualquer ajuda seria apreciada.

Respostas:

0 para resposta № 1

Se você não for usar o TweenMax.killDelayedCallsTo, provavelmente não há razão para usar o TweenMax.delayedCall em flash.utils.setTimeout :)

setTimeout(createShape, 5500 /* ms */, param1, param2, param3);

Dito isto, setTimeout não é realmente "melhor" de alguma forma. Você só poderia ganhar alguns bytes em tamanho swf se esse fosse o único lugar onde você usava o TweenMax.

Outra maneira de fazer isso seria colocar o seumúsicas em FLVs (sem vídeo) e usando pontos de sinalização para criar formas. IMO isso não tem vantagens reais vs seu método, exceto no caso de você tocar músicas on-line e conectividade do usuário faz pausas (caso em que a experiência é uma droga).