Posted 04 September 2011 - 09:00 PM
Boa Noite,
Estou a utilizar o vosso jogo mas já alterei as imagens, perguntas substitui as outras categorias para as categorias flash mas já acabei as perguntas, eu queria apenas fazer uma pequena alteração em relação ao vosso jogo e não consigo e não sei onde devo fazer, ainda sou novato nestas andanças, queria saber como faço para as perguntas nunca repetirem e quando chegarem ao fim as perguntas aparecia uma janela ou uma mensagem a dizer Parabéns!Chegou ao fim do jogo.
Se alguém me souber responder a estas perguntas gostava muito. Utilizo o vosso código fonte onde tenho que fazer as alterações no vosso código?
Obrigado.
/*********************************************
* Jogo da Forca MX Studio - Janeiro 2006
*
* Equipe MX GAMES
* @author Danilo Pedronio de Santana
* @author Hugo Ferreira da Silva
* @author Leandro Nunes
********************************************/
// [ categoria, pergunta, resposta ]
var $palavras:Array = new Array(
["flash", "Qual o nome da linguagem de programação utilizada no Flash?", "Action Script"],
["flash", "Qual o tipo de símbolo mais utilizado no desenvolvimento em Flash?", "Movie Clip"],
["flash", "Qual o nome da ferramenta responsável por manipular gradientes?", "Fill Transform Tool"],
["dreamweaver", "Qual painel pode ser usado para organizar imagens, itens da biblioteca, e modelos?", "Assets Panel"],
["dreamweaver", "Qual atributo alvo forçará um link a abrir uma nova janela do navegador?", "blank"],
["fireworks", "No fatiamento de layouts utilizamos uma ferramenta essencial para exportarmos, qual o nome desta ferramenta?", "Slice Tool"],
["fireworks", "Qual a ferramenta mais utilizada em vetorização de objetos?", "Pen Tool"],
["coldfusion", "Qual o codinome recebeu o ColdFusion MX 6.1?", "Red Sky"],
["coldfusion", "Qual tag nos permite construir tabelas dinâmicas com base em um query?", "cftable"]
);
//Variável para depth (level)
var $depth:Number = 1;
function montaPalavra( $categoria:String ) {
limpaMC();
/***************************************************
Sorteia uma das perguntas/palavras cadastradas
***************************************************/
if( $categoria != undefined ) {
// Sorteia a palavra atual com categoria específica
do{
var $reg:Number = random( $palavras.length );
} while( $palavras[$reg][0].toLowerCase() ne $categoria.toLowerCase() );
} else var $reg:Number = random( $palavras.length );
//Exibe a pergunta
with( pergunta ) {
html = true;
multiline = true;
wordWrap = true;
}
var $css:TextFormat = new TextFormat();
$css.align = "center";
pergunta.htmlText = "<b>" + $palavras[$reg][1] + "</b>";
pergunta.setTextFormat( $css );
// Número máximo de marcações (letras)
var $max:Number = 56;
// Número de colunas
//Obs: (56/14 = 4 linhas)
var $col:Number = 14;
var $texto:String = new String( $palavras[$reg][2] );
// Evita que se coloque uma resposta maior doq o número de espaços permitidos
// ou evita que sorteie a mesma palavra duas vezes na mesma partida
if( $texto.length > $max ) {
trace( "palavra muito grande! Sorteando outra..." );
montaPalavra($categoria, $continua);
return;
}
/***************************************************
Insere o alfabeto (letras) pro cara clickar
***************************************************/
createEmptyMovieClip( "letras", $depth++ );
letras._x = 45;
letras._y = 280;
var $pX:Number = 0;
var $pY:Number = 0;
for( var $i:Number=65; $i<=90; $i++ ) {
letras.attachMovie( "letra", String.fromCharCode($i), $depth++, {_x:$pX, _y:$pY} );
var $item:Object = letras[ String.fromCharCode($i) ];
$item.$value = String.fromCharCode($i);
$item.label.text = $item.$value;
$item.onRelease = function() {
addThis( this.$value );
this.gotoAndStop("click");
this.enabled = false;
}
$item.onRollOver = function() { this.gotoAndStop("over"); }
$item.onRollOut = $item.onDragOut = function() { this.gotoAndStop("up"); }
$item.onPress = $item.onDragOver = function() { this.gotoAndStop("down"); }
$pX += $item._width + 5;
if( ($i-65)%22 == 12 ) {
$pX = 0;
$pY += $item._height + 3;
}
}
/***************************************************
insere os espaços reservados para as letras da resposta
***************************************************/
createEmptyMovieClip( "resposta", $depth++ );
resposta._x = 200;
resposta._y = 150;
$pX = 0;
$pY = 0;
// Apenas a marcação (espaços vazios de onde vai as letras)
for( var $i:Number=0; $i<$max; $i++ ) {
//Insere o underline
resposta.attachMovie( "letra_underline", "letra"+$i, $depth++, {_x:$pX, _y:$pY} );
var $item:Object = resposta[ "letra"+$i ];
$item.$value = undefined;
$item._alpha = 10;
$pX += $item._width + 2;
if( $i%$col == ($col-1) ) {
$pX = 0;
$pY += $item._height + 2;
}
}
/***************************************************
//Separa as palavras em linhas
//Isso é só pra centralizar as palavras e deixar
//melhor para visualizar
***************************************************/
var $linhas:Array = new Array();
var $words:Array = $texto.split(" ");
var $j:Number = 0;
for( var $i:Number=0; $i<$words.length; $i++ ) {
$linhas[$j].length? $linhas[$j] += " " : $linhas[$j] = "";
if( ($linhas[$j].length+$words[$i].length) <= $col || !$linhas[$j].length ) {
$linhas[$j] += $words[$i];
} else {
$j++;
$i--;
}
}
/***************************************************
//Ativa os espaços vazios válidos para a resposta
***************************************************/
for( $i=0; $i<$linhas.length; $i++) {
var $linha:String = new String( $linhas[$i] );
//Achar o ponto central para começar cada linha
var $init:Number = Math.round(($max-$linha.length)/2)%($col/2);
//Deixar melhor centralizado caso seja ímpar
if( $linha.length%2 == 1 && $linha.substr($linha.length-1, 1) ne " " ) $init -= 1;
//acerta em qual linha colocar
$init += ($linhas.length < 2)? $col : (($max/$col-1)-($linhas.length-$i))*$col;
//Evita se em algum momento acontecer da coluna inicial dar negativ0
if( $init<0 ) $init = 0;
//Ativa letra por letra
for( $j=0; $j<$linha.length; $j++) {
if( $linha.substr($j, 1) eq " " ) continue;
var $item:Object = resposta[ "letra" + Number($init+$j) ];
$item.$value = $linha.substr($j, 1);
$item._alpha = 100;
//Variável para saber qdo ganhar
$total++;
}
}
}
/***************************************************
verifica se a letra clickada existe ou não
***************************************************/
function addThis( $letra:String ) {
var $ok:Boolean = false;
for( var $i in resposta ) {
// "Acende" a letra correta
if( resposta[$i].$value.toLowerCase() eq $letra.toLowerCase() ) {
resposta[$i].label.text = $letra;
$ok = true;
$certo++;
}
}
// Errou a letra
if( !$ok ) {
// Perdeu !!
if( cadeira.personagem._currentframe == cadeira.personagem._totalframes ) {
// Desabilita os ítens do alfabeto
for( var $i in letras ) letras[$i].enabled = false;
cadeira.gotoAndStop( "morreu" );
} else {
// Dá o choque!!
cadeira.personagem.nextFrame();
}
}
// Ganhou (acertou tudo)
if( $certo == $total ) {
// Desabilita os ítens do alfabeto
for( var $i in letras ) letras[$i].enabled = false;
// Botão de próxima
proxima._visible = true;
}
}
/***************************************************
Retira todos restos de mc, limpa variáveis, etc...
***************************************************/
function limpaMC() {
if( resposta ) removeMovieClip( "resposta" );
if( letras ) removeMovieClip( "letras" );
//Número de letras certas
$certo = 0;
//Número de total de letras que o cara tem q acertar
$total = 0;
// Botão de próxima
proxima._visible = false;
cadeira.personagem.gotoAndStop(1);
}