Ir para conteúdo
Fórum Script Brasil
  • 0

Random


Thelon

Pergunta

Olá pessoal espero que esse tutorial seja útil a alguém =)

Criei ele a partir de um projeto que tive que fazer para a feira de ciências da escola onde

A gente teria de montar um jogo estilo Genius no VisualBasic

Ai resolvi montar no flash para ver tudo que ia ter e o que não ia para depois me matar no VB xD

Então vamos la:

Criem 2 camadas

Uma chame de MovieClips e outra de Action

Na camada MovieClips desenhe 4 círculos com o preenchimento

Verde,vermelho,amarelo e azul

Agora selecione apenas o preenchimento sem a linha e transforme em MC

Coloque o nome que quiser porem eu acho melhor colocar o nome da cor já que vai ser a instancia deles.

Depois de transformar todos selecione o MC e a linha dele e de um ctrl + g só para agrupar e não sair do lugar :D

Instancie cada um com suas respectiva cor.

Verde,vermelho,amarelo e azul

Agora na camada action digite o seguinte código :

//Deixa todas as cores invisíveis

verde._visible = false;

azul._visible = false;

vermelho._visible = false;

amarelo._visible = false;

//Aqui cria as matrizes para cada MC

var cores:Array = new Array();

cores[0] = "verde";

cores[1] = "azul";

cores[2] = "vermelho";

cores[3] = "amarelo";

function MostraCor() {

//Sorteia o numero

i = random(4);

//Aparece o numero sorteado

trace(i);

//Aqui são os ifs para que fique visivel o MC correspondente ao numero

if (i == 0) {

verde._visible = true;

azul._visible = false;

vermelho._visible = false;

amarelo._visible = false;

} else if (i == 1) {

verde._visible = false;

azul._visible = true;

vermelho._visible = false;

amarelo._visible = false;

} else if (i == 2) {

verde._visible = false;

azul._visible = false;

vermelho._visible = true;

amarelo._visible = false;

} else if (i == 3) {

verde._visible = false;

azul._visible = false;

vermelho._visible = false;

amarelo._visible = true;

}

}

MostraCor();

stop();

Agora vamos criar um MC vazio (ctrl + f8)

Coloque o nome que quiser e arraste ele para o palco sem nada nem ação dentro

Coloque onde preferir

Agora selecione ele e aperte f9

Coloque assim :

onClipEvent (load) {

var pausa = 2;

var tempo = getTimer();

}

onClipEvent (enterFrame) {

if (tempo+(pausa*200)<=getTimer()) {

_root.MostraCor()

var tempo = getTimer()

}

}

Esse trecho é para fazer o tempo do sorteio

Acho que não precisa de imagens né? é bem simples se quiserem é só pedir que eu coloco

Desculpa ser meio confuso para escrever mas ainda tenho dificuldades.

Qualquer duvida postem ai.

Obrigado a todos que leram :)

Aceito criticas para poder acertar minhas falhas

Editado por Thelon
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Thelon, to sem flash aqui e não tem como eu testar, mas se você já inicia o swf com as cores estando invisiveis, no random, não é necessario dizer quais ficarão invisiveis, e sim, somente dizer qual ficara visivel, diminuindo assim o codigo e tambem o tempo de compliação... o que acha???

Link para o comentário
Compartilhar em outros sites

  • 0

Não entendi.

//Aqui cria as matrizes para cada MC
var cores:Array = new Array(verde, azul, vermelho, amarelo);
//Deixa todas as cores invisíveis
function someCores() {
    var i = cores.length;
    while (i--) {
        cores[i]._visible = false;
    }
}
//Mostrando a cor aleatoriamente
function mostraCor() {
    //Some todo mundo
    someCores();
    //Mostra só o sorteado
    cores[random(4)]._visible = true;
}
//Iniciando e criando o intervalo de chamada
someCores();
var intervalo:Number = setInterval(mostraCor, 500);

Em questão de economizar linha assim é melhor :P

Mas explica seu jeito que agora to curioso.

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa, não programo em ActionScript, mas entendi o que ele quis dizer.

Você coloca todas as cores como invisíveis, certo?

Então poderiamos fazer isto:

if (i == 0) {
verde._visible = true;
}
Em vez disso:
if (i == 0) {
verde._visible = true;
azul._visible = false;
vermelho._visible = false;
amarelo._visible = false;

De qualquer forma, parabéns pelo seu trabalho aqui, quase ninguém da feedback, não sei como você aguentou postar tantos. :P

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

como não pensei nisso :P

De qualquer forma, parabéns pelo seu trabalho aqui, quase ninguém da feedback, não sei como você aguentou postar tantos.

Eu aprendi com tutoriais

Agora que sei um pouco quero compartilhar como uma retribuição.

Pretendo fazer mais só que ando sem motivação.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652k
×
×
  • Criar Novo...