// Выбираем произвольный символ в зависимости
// от вероятности его появления.
function randomSymbol {
// Задаем вероятность появления каждого символа.
chances = [29,21,16,12,9,7,6];
// Определяем сумму вероятностей.
totalChances = 0;
for (j=0; j totalChances += chances[j]; } // Выбираем случайное число. r = int(Math.random*totalChances); // Определяем, какой символ это число представляет. for (j=0; j< chances.length; j++) { if (r < chances[j]) { return(j+1); } else { r -= chances[j]; } }
Когда анимация клипа «spin» завершается, вызывается функция spinDone, которой передается имя экземпляра клипа. Клип «spin1» представляет собой последнюю анимацию в последовательности. Когда эта анимация закончена (то есть все три барабана прекратили вращаться), вызывается функция calcWin, чтобы определить сумму выигрыша.
// Вызываем функцию после каждой анимации вращения.
function spinDone(name) {
// Определяем, последний ли это символ,
// остановились ли барабаны.
if (name == "spin1") {
// Подсчитываем сумму выигрыша.
win = calcWin;
cash += win;
showCash;
}
}Функция calcWin определяет, совпадают ли три символа, а также подсчитывает число изображений с желудем в последовательности. Если все три символа совпадают, сумма выигрыша определяется тем, какой это символ. В противном случае игрок все равно может выиграть небольшую сумму денег, если в последовательности находятся одно или два изображения желудя.
// Определяем сумму выигрыша.
function calcWin {
// Выясняем, сколько выпало изображений с желудем.
numAcorns = 0;
for (i=1; i<4; i++) {
if (_root["symbol"+i]._currentFrame == 2) numAcorns++;
}
// Проверяем, совпадают ли три символа.
firstSymbol = _root["symbol1"]._currentFrame;
threeOfAkind = true;
for(i=2; i<4; i++) {
if (_root["symbol"+i]._currentFrame != firstSymbol) threeOfAKind = false;
}
// Определяем сумму выигрыша в соответствии с типом символа.
if (threeOfAKind) {
if (firstSymbol == 1) {
win = 20;
} else if (firstSymbol == 2) {
win = 10;
} else if (firstSymbol == 3) {
win = 30;
} else if (firstSymbol == 4) {
win = 50;
} else if (firstSymbol == 5) {
win = 80;
} else if (firstSymbol == 6) {
win = 100;
} else if (firstSymbol == 7) {
win = 1000;
}
// Два изображения желудя.
} else if (numAcorns == 2) {
win = 2;
// Один желудь.
} else if (numAcorns == 1) {
win = 1;
// Изображений желудя нет.
} else {
win = 0;
}
return(win);
}К сведению
Если вы посмотрите на ролик, который приводится в качестве примера, то увидите, что фон игрового автомата на самом деле располагается на переднем плане. Три окна – это дырки в изображении, сквозь них видно, как проигрывается анимация вращения, а также видны символы на барабанах.