2017-01-09 2 views
0

Я сделал игру для первых рыб. Я нашел такой код. У меня также есть неправильные кнопки. СписокКак я могу захватить, если пользователь нажал неправильную кнопку?

Неправильные кнопки:

pinkButton.addEventListener(MouseEvent.CLICK, pinkClick); 
whiteButton.addEventListener(MouseEvent.CLICK, whiteClick); 
greyButton.addEventListener(MouseEvent.CLICK, greyClick); 

И я использую этот код

import flash.events.MouseEvent; 
var checkString:String = ""; 
  
//Create event listeners and their functions. 
YellowButton.addEventListener(MouseEvent.CLICK, yellowClick); 
RedButton.addEventListener(MouseEvent.CLICK, redClick); 
BlueButton.addEventListener(MouseEvent.CLICK, blueClick); 



/*True choices*/ 
function yellowClick(evt:Event):void 
{ 
//In each event listener function, add a letter or 
//string to the checkString variable. 
checkString += "y"; 
//Then, see if the string matches or not. 
check(); 
} 
function redClick(evt:Event):void 
{ 
checkString += "r"; 
check(); 
} 
function blueClick(evt:Event):void 
{ 
checkString += "b"; 
check(); 
} 
/*True choices*/ 
  
//If the proper sequence is red, yellow, blue, the string would read "ryb". 
function check():void 
{ 
if(checkString == "ryb") 
{ 
//Clear the checkString for convenience before going on. 
    clearString(); 
    //CODE TO GO TO NEW FRAME 
    gotoAndStop(3); 
} 
else 
{ 
//Make sure the string is at least 3 characters long. 
if(checkString.length >= 3) 
{ 
clearString(); 
gotoAndStop(1); 
    } 
    } 
} 
function clearString():void 
{ 
//You will want to have a function for clearing the string. 
//This is especially useful if you have a button for "start over." 
checkString = ""; 
} 

, если я нажму желтый, красный, синий работает. Как я могу сделать неправильный выбор? Должен ли я писать код для всех возможностей? У игрока есть 1 шанс. Например, если игрок нажал 2 ложных и 1 настоящую кнопку, или 2 истины и 1 ложь, это приведет к проигрышу для игрока.

ответ

1

Используйте массив значений. Как

var correctSequence:Array = ["r", "y", "b"]; 

то есть увеличивающийся переменный, чтобы дать вам контроль над обходом массива

var arrayPosition:int = 0; 

и вам нужен переменный для хранения логического значения или нет наметилась какими-либо неправильных предположения:

var noneWrong:Boolean = true; 

Тогда вы могли бы сделать что-то вроде

private function playerNextGuess(e:MouseEvent):void{ 
    if (e.target._color == correctSequence[arrayPosition] && noneWrong == true){ 
     arrayPosition++; 
     if (arrayPosition == 3){ 
      playerWin(); 
      arrayPosition = 0; 
     } 
    } else { 
     // put whatever logic you want for when the guess is wrong 
     noneWrong = false; 
     arrayPosition++; 
     if (arrayPosition == 3){ 
      playerLose(); 
      arrayPosition = 0; 
     } 
    } 

Это сделает так, что 3 догадки будут сделаны до того, как результаты (правильные или неправильные) будут переданы игроку. Но он не скажет игроку, что был прав, а какие были неправы. Если никто не ошибается, вызывается функция win. Если кто-то ошибается, вызывается функция потери. Это то, что вы хотели?

Надеюсь, это поможет вам двигаться в правильном направлении. Дайте мне знать, если что-либо, что я написал, не совсем ясно.

+0

Спасибо doc.I забудьте этот код, потому что он не работает. Я использую новый код, но у меня есть проблема. Вот код fish1.addEventListener (MouseEvent.CLICK, click1); fish2.addEventListener (MouseEvent.CLICK, click2); fish3.addEventListener (MouseEvent.CLICK, click3); fish4.addEventListener (MouseEvent.CLICK, click4); var PC: Boolean = false; функция click1 (m: MouseEvent) { PC = true; } функция click2 (m: MouseEvent) { PC = true; } функция click3 (m: MouseEvent) { PC = true; } функция клик4 (m: MouseEvent) { if (PC) { PC = false; gotoAndPlay (1); } } – KucuKeko

+0

он должен идти после нажатия кнопки «Истина» на кнопку «2». Так что 2 кнопки true 2 кнопки false. – KucuKeko

+0

Новый вопрос? Создать новый пост. Я не хочу читать неформатированный код в комментарии –

Смежные вопросы