AS3 - ограничение количества щелчков мышью
Я новичок в программировании! Не берите в голову AS3 и испытывают проблемы при попытке установить определенное количество кликов в массив мувиклипов. Это может звучать неправильно, поэтому я дам вам точно знать, что я пытаюсь сделать.
В настоящее время я пытаюсь создать игру типа Battleships и установить плитки и Array of Grid как для сетки игроков, так и для сетки компьютера /AI. Когда я нажимаю на одну из плиток сетки в сетке игроков, я меняю рамку MovieClip для отображения другой графики (другой плитки, которая представляет корабль). Это все работает нормально, но я хочу ограничить возможность игрока кликать только 15 раз, но сейчас он может кликать столько раз, сколько он хочет.
Буду очень признателен за любую помощь, а также любые рекомендации (как я уже сказал, я действительно новичок во всем этом).
Вот что у меня так далеко:
var i:int = 0;
var playerTileArray:Array = new Array();
var compTileArray:Array = new Array();
for (var v:uint = 0; v < 20;v++){
for (var h:uint = 0; h < 20;h++){
playerTileArray[i] = new gridTile(); //gridTile is a MovieClip symbol in my Library.
playerTileArray[i].x = h*20;
playerTileArray[i].y = v*20 + 50;
playerTileArray[i].addEventListener(MouseEvent.CLICK, playerClick);
this.addChild(playerTileArray[i]);
trace ("creating player vertical tile " + v);
trace ("creating player horizontal tile " + h);
compTileArray[i] = new gridTile(); //gridTile is a MovieClip symbol in my Library.
compTileArray[i].x = playerTileArray[i].x + 600;
compTileArray[i].y = playerTileArray[i].y;
this.addChild(compTileArray[i]);
trace ("creating computer vertical tile " + v);
trace ("creating computer horizontal tile " + h);
i++;
}
}
function playerClick(e:MouseEvent):void{
e.currentTarget.gotoAndStop(2);
trace("placed ship on player grid at: " + playerTileArray.indexOf(e.currentTarget));
}
1 ответ
var clickCount:int = 0;
function playerClick(e:MouseEvent):void{
if( clickCount >= 15 ){
return;
}
++clickCount
e.currentTarget.gotoAndStop(2);
trace("placed ship on player grid at: " + playerTileArray.indexOf(e.currentTarget));
}