Вход/Регистрация
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
вернуться

Розенцвейг Гэри

Шрифт:

Подготовка ролика

В отличие от видеопокера на руках может быть от двух до 11 карт. Для каждого расклада создаются 11 экземпляров клипов, имена которых изменяются от «playerO» до «player10» и от «dealerO» до «dealer10». Кадры клипа «deck» – пусты. Следовательно, когда вы поместите клип на рабочее поле, вы не увидите ничего, кроме меток, которые устанавливаются программой Flash для клипов по умолчанию. На рис. 15.5 показаны все 22 метки.

Рисунок 15.5. Все карты представлены в виде маленьких кружочков, меток клипа, так как на данный момент карты не видны

В этом ролике сложная основная временная шкала. Каждая метка представляет собой различный этап игры. На рис. 15.6 показана шкала в момент, когда видна большая часть меток.

Рисунок 15.6. В сложной основной временной шкале игры в очко для каждого шага существует помеченный кадр

В процессе игры указатель текущего кадра передвигается вдоль основной временной шкалы. Каждый ключевой кадр содержит различные функции. Сам код расположен в первом ключевом кадре.

Обязательно просмотрите ролик Blackjack.fla, размещенный на Web-сайте, чтобы самому увидеть, где расположены ключевые кадры и какие функции они вызывают.

Создание кода

Первый кадр вызывает функцию initGame , но после нее не идет команда stop, так как указатель должен двигаться и перейти к кадру «shuffle».

initGame;

Функция initGame определяет исходную сумму наличных денег игрока.

function initGame {

cash = 100;

showCash;

}

Функция createDeck похожа на одноименную функцию, используемую в видеопокере, но здесь она шесть раз добавляет каждую карту, чтобы создать шесть колод карт. Один из недостатков использования шести колод состоит в том, что программе требуется время для их перетасовки. Следовательно, кадр "shuffle" появляется перед ключевым кадром, вызывающим функцию createDeck. Поэтому слово «shuffle» (Идет перетасовка колоды) появится на экране прежде, чем код начнет тасовать карты. Следовательно, игрок не должен удивляться, почему его компьютер вдруг «завис».

// Создаем перетасованную колоду карт.

function createDeck {

// Создаем упорядоченную колоду.

suits = ["c", "d", "s", "h"];

temp = new Array;

for (i=0; i<6; i++) {

for (suit=0; suit<4; suit++) {

for (num=1; num<4; num++) {

temp.push(suits[suit]+num);

}

}

}

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

// колода не будет перемешана.

deck = new Array;

while (temp.length>0) {

r = int(Math.random*temp.length);

deck.push(temp[r]);

temp.splice(r,1);

}

}

В функции initHand создаются массивы playerHand и dealerHand. Переменной showDealerFirstCard присваивается значение false, по умолчанию делается ставка в пять долларов.

// Инициализируем массивов расклада и определяем сумму ставки.

function initHand {

playerHand = new Array;

dealerHand = new Array;

showDealerFirstCard = false;

bet = 5;

showBet;

}

Когда игрок щелкает по кнопке Add to bet (Повысить ставку), вызывается функция addToBet, которая повышает ставку на пять долларов и не позволяет сделать ставку, превышающую 25 долларов.

// Функция увеличивает ставку игрока вплоть до 25 долларов.

function addToBet {

bet += 5;

if (bet > 25) bet = 25;

showBet;

}

Когда игрок щелкает по кнопке Deal (Раздать), вызывается функция makeBet, которая вычитает сумму ставки из суммы наличных игрока. Затем ролик проходит по четырем кадрам от «Deal1» до «Deal4».

// Вычитаем сумму ставки из суммы наличных денег игрока.

function makeBet {

cash -= bet;

showCash;

}

В каждом из четырех кадров вызывается функция dealCard, дважды с использованием массива playerHand и дважды – dealerHand. При выполнении этой функции по две карты раздаются игроку и раздающему. Также в каждом кадре вызывается функция showCards.

// Раздаем игроку одну карту из колоды.

function dealCard(hand) {

hand.push(deck.pop);

}

Функции showBet и showCash отображают текущую ставку и текущую сумму наличных с добавлением знака "$" впереди. Не забудьте создать соответствующие текстовые поля для каждой из этих сумм.

// Отображаем сумму наличности со знаком "$".

function showCash {

cashDisplay = "$" + cash;

}

// Отображаем сумму ставки со знаком "$".

function showBet {

betDisplay = "$" + bet;

}

  • Читать дальше
  • 1
  • ...
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: