Jogo Do Sete Erro - Flash & ActionScript - Fórum Script Brasil
Asked by Guest padreAVEZEDO
Guest padreAVEZEDO
eu estou tentando montar um jogo do sete erros no flash, mas empaquei numa coisa besta: quando se acha um erro, não consigo fazer com que um sinal apareça no local ao ser clicado.
já tentei de tudo que é jeito e não consegui.
O mais proximo que cheguei foi fazendo um mc com o primeiro frame em branco com stop() e dois seguinte com gotoplay direcionado para o segundo frame, ate ai deu certo pois como o primeiro frame esta em branco ele não aparece sobre a imagem de fundo, só aparecendo quando se clica sobre ele pois coloquei um play apos inserir o mc no palco. O grande problema é que quando se clica um do mc, todos os outros aparecem tambem.
Se alguém tiver uma solução para isso ou qualquer outra diferente, por favor me ajudem.
Obs: eu uso o Flash MX
Action Script não é muito minha area, apenas dou umas enroladas hauhe ....
ma acho que você deve instanciar os seus movie clips, ou seja dar um nome pra cada um deles...
ex: erro_1 ; erro_2 e na programação você chama somente o MC a ser mostrado.
O que deve estar acontecendo é que você ta usando o mesmo MC pra todos os erros, sendo assim quando um é clicado suas cópias tem a mesma ação...
Pra facilitar, na biblioteca, você pode clicar com o botão direito sobre o MC e duplicar ele, apenas mudando o nome e programe cada um deles...
Ou então usar o mesmo código, apenas usando referencia as instancias diferentes...
Aee neste caso você ve o que é mais facil pra vc ...
Isso não funciona pois os pontos não tem controladores externos (botões), o acionador esta nele mesmo ( play())
Pra resumir e pra entender melhor o que eu estou querendo, é o seguinte:
um Mc ou botão ou qualquer outra coisa que: De inicio ao ser visualizado ele aparece um imagem ( que no meu caso é transparente pois o jogador deve ver apenas as duas imagem de fundo para porcurar a diferença) e se clicar nela, e tão somente nela, a partir desse momento ela passará a exibir outra imagem naquele mesmo lugar ( no caso um desenho de uma bolinha, um x ou qualquer outra coisa que demarque o local).
PELO AMOR DE DEUS ME AJUDEM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Cara, posso estar muito enganado, mas pra aparecer todos os movie clips de uma vez, quando você clica, só mesmo usando o mesmo objeto em vários locais...
Ou programando pra isso...
Desta forma, se o acionador é interno, faz aquele esquema de mudar os nomes, duplicando o movie clip, desta forma eles se tornam independentes um dos outros ...
Se não for isso, desculpe ...
você deve estar com o mesmo nome de instância para todos os movs (como o tavinho disse) ou então a action play(); está dentro do mov.
o que você pode fazer é colocar nomes diferentes de instâncias e em um quadro separado colocar as actions (ou então colocar nas própias estâncias).
nomeInstancia.onRelease = function(){
O problema é que se você não tem nenhum shape no primeiro quadro e nenhum botão lá, então essa ação não pode ser acionada justamente porque não tem onde ser clicado. Uma solução é fazer um bt invisível e colocá-lo no primeiro frame, assim a sua primeira linha para ativar o bt ficaria:
nomeInstancia.nomeBotao.onRelease = function(){
...mas aí você terá um segundo problema: quando o user passar o mouse sobre o erro ele verá q aquilo é um erro só pelo fato de ser um bt e não porque ele realmente notou o erro.
Uma solução é criar uma malha de bts q cubra a img inteira. Assim o user poder achar qtos erros quiser, mas os verdadeiros serão testados quando ele for pedir a resposta.
...mas como saber qual o erro e se ele achertou ou não?
- bom, você pode criar uma var (array talvez) e cada bt q o user clicar será adicionado um valor correspondente ao bt nessa var. Depois quando você for ver o resultado basta comparar se os valores da var são semelhantes ao erros (já q você vai criar uma segunda var com o valor dos erros)
Isso tudo você pode fazer se você for querer contar qtos acertos o user fez e por aí vai. Se você quiser simplesmente mostrar o resultado é só faer com q o flash mostre os erros quando o user clicar em algum bt "mostrar resultado" ou algo do tipo
Minha benção seu padre...
Brincadeiras a parte... Fiquei curioso com a proposta e resolvi estudar o assunto.
Resolvi da seguinte forma meu Reverendo:
coloque um objeto no palco que sirva de marcação para os erros (bola, seta, alvo...) e converta-o (Desculpe pelo trocadilho) para um MC (MovieClip), abra-o dando dois cliques sobre ele, crie mais um frame apertando F6, no 1º frame coloque AS 'stop()', selecione o objeto no 1º frame e converta-o para um botão e coloque-que a seguinte AS nele:
e no item cor (em Propriedade) coloque como alpha, e reduza o valor dele para 0.
Melzinho na chupeta seu padre! É so dar Ctrl+Enter e caçar o local do erro onde o sr. acabou de fazer o botão.
Como eu tenho mania de explicar tudo com detalhe... aqui vai a explicação do que acabamos de fazer para o sr entender melhor...
1 º Ao criar o botão dentro do MC o senhor evita que o efeito desejado seja acionado ao se clicar em qualquer area do palco, ele delimita a area clicavel.
2º Ao colocar o AS stop () ,o sr. faz com que o movie não fique dando loop alternados com o botão e o objeto no segundo frame.
3º Ao colocar a AS gotoAndStop, o sr. esta dizendo que ao ser clicado o botão deve exibir o frame 2 onde contem o alvo visivel e permanecer ali, pois se colocase gotoAndPlay ele exibiria o frame dois e voltaria para o primeiro, o que não queremos que aconteça, pois queremos que depois que o user encontrar o erro ele permaneça visivel ate o final do jogo.
4º Ao selecionar o alpha (0), o sr. fará com que o primeiro estado de visualização dele seja tranparente e o user encherga apenas as imagens.
É isso ai seU padre...
ATENÇÃO: COMO O THURAN JÁ DISSE A CONVERÇÃO DA SETA DO MOUSE PARA UMA MÃO COM DEDO INDICADOR VAI DENUNCIAR O PONTO DO ERRO, PARA ISSO NÃO TEM OUTRO JEITO, SÓ FAZENDO O QUE ELE DISSE: MAS AO INVÉS DA MALHA DE BOTÃO, CREI UMA CAMADA ENTRE A DA IMAGEM E A DOS BOTÕES DE ERRO, NESSA CAMADA DO 'RECHEIO DO SANDUICHE' COLOQUE UM RETANGULO QUE CUBRA TODA AREA DA IMAGEM E COVERTA-O PARA BOTÃO E NO ITEN COR COLOQUE COMO ALPHA E REDUZA SEU VALOR A 0
A questão da pontuação fica ao seu criterio, se não souber como se faz, da uma fuçada no forum que tem muito material.
Qualquer coisa Post aeeeeeeeee!
Só um outro toque sr Padre
Sugiro o sr. limitar a quantidade de clique que o jogador possa dar sobre a imagem, isso evitará que o espertinho fiue clicando seguidamente sobre a imagem a procura do erro. rsrsrsrsrsrsr
Muito obrigado meu filho, isso já resolvel uns 80% dos meus problemas, agora vou correr atras dos codgos para pontuação e limitar a quantidade de cliques