Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Секреты разработки игр в Macromedia Flash MX - Макар Дж.

Макар Дж. Секреты разработки игр в Macromedia Flash MX — М.: КУДИЦ-ОБРАЗ , 2004. — 608 c.
ISBN 0-201-77021-0
Скачать (прямая ссылка): sekretirazrabotkiigr2004.djvu
Предыдущая << 1 .. 144 145 146 147 148 149 < 150 > 151 152 153 154 155 156 .. 210 >> Следующая

После в этого данный раздел должен быть для вас легкой задачей! Мы будем
paccwai вать код, необходимый для начала игры в крестики-нолики,
перезапуска ш и определения, закончилась ли игра и кто (если кто-то есть)
выиграл, - все осп ные моменты.
Глава 17- Крестики-нолики ваша первая многопользовательская игра
445
Как упоминалось в прошлом разделе, в крестиках-ноликах есть 9 клеток,
одна для каждого возможного хода, или область игры. Также в игре есть
клип с именем экземпляра popup. Этот клип содержит 4 ключевых кадра.
Первый пуст. Следующий, имеющий метку Game Started, отображается, когда
игра начинается; он информирует игрока, куда движется игра и чей ход
Следующий ключевой кадр имеет метку Game Over. Когда игра закончена,
отображается этот кадр. Он может отображать любое из трех сообщений: "You
won!" ("Вы победили!"), "You lost!" ("Вы проиграли!") или "Game over.
There is no winner" ("Игра окончена. Победителя нет"). Последний ключевой
кадр имеет метку Player Left. Этот кадр появляется, когда ваш соперник
покидает игру (покидает комнату или чат).
Выберите кадр Game в слое Game Actions и откройте панель Actions. Первая
строка выглядит так:
gamelnPlay -false;
Э го означает, что игра еще не началась. Когда игра начата, значение этой
переменной устанавливается в true. Когда оно равна false, пользователь не
может получить отклика на нажатие клетки.
Далее в кадре находится следующий условный оператор:
1 if (ES .player == 1)
2 myLetter = "x";
3 hisLetter = "o";
4 myTurn - true;
5 1 else i
6 znyTurn - false;
7 myLetter = "o";
8 hisLetter = "x";
9 }
Этот условный оператор прост, но важен. Если вы Игрок 1 (это означает,
что переменная player равна 1), то myLetter имеет значение "х", a
hisLetter имеет значение "о". Кроме того, значение myTurn установлено в
true. Это означает, что ссли вы Игрок 1, то вы ходите первым и ваш символ
X. Если вы не являетесь Игроком 1, то мы предполагаем (поскольку это игра
для двух игроков), что вы являетесь Игроком 2. В этом случае, значение
myTurn равно false, myLetter равно "о", a hisLetter равно "х".
Ниже представлена функция startGame().
146
Часть 2 Исследование основ
1 function startGamef) (
2 moves = 0;
3 gameInPlay = true;
4 popup.gotoAndStop( " Game Started"] 1 ;
5 if (myTurn) (
6 popup.msg.text = turn . "; "The game has begun . It is
your
7 } else (
8 popup.msg.text = opponent1s turn. "The ¦ 1 . r game has
begun. It is your
9 )
10 }
Эта функция вызывается, когда определено, что в наличии оба игрока^ 'Она
также вызывается из функции restart().) Она устанавливает значение
переменной moves (ходы) в 0. Значение этой переменной увеличивается на 1
кажды!У раз, когда выполняется ход. Когда ее значение достигает 9, ходы
более не могу выполняться. Это значение используется для функции
checkForWin(). Далее зп. чение переменной gamelnPlay устанавливается в
true. Когда оно равна true, иг" року требуется выполнение одного из
нескольких условий, чтобы сделать хо| (другие, чьи locked не равны true,
и myTurn равно true). Всплывающее окно уем навливается на кадр Game
Started. В строках 5-9 мы определяем, какой текс( отображать для
информирования пользователя, что очередь ходить за ни" или за его
соперником. Мы используем переменную myTurn для определент этого. Как
только эта функция вызвана, игра начинается и Игроку 1 дается ра решение
на первый ход.
Когда нажата кнопка перезапуска Restart, вызывается функция restart | на
компьютерах обоих пользователей.
1 function restart!) {
2 for (var i = 1; i<=3; ++i) (
for (var j = 1; j<=3; ++j) (
var name = "piece"+i+"_"+j; this[name] .gotoAndStop(l);
9
10 11 12 13 1 4
if (ES.player == 1) myTurn = true;
} else {
myTurn = false;
}
startGame();
}
Глава 17 Крестики-нолики: ваша первая многопользовательская игра
447
Г---------------------------------------------------------------------
С троки 2-7 просто приказывают каждому из девяти клипов вернуться назад
на кадр 1. В строках 8-12 мы повторно инициализируем переменную myTurn.
Нели вы Игрок 1, то это ваш ход, т. е. значение myTurn установлено в
true. В строке 13 выполняегся функция startGame(). Как только это
сделано, игра успешно перезапущена: доска очищена, а новая игра начата.
Ниже представлена функция checkForWin()
1 function checkForWin() {
2 var win = false;
3 var letter = null;
4 if (piecel_l.letter == piece2_l.letter &&
piece2_l.letter == piece3_1.1etter) (
5 var letter = piecel_l.letter;
6 1
7 if (piecel_2.letter == piece2_2.letter &&
piece2_2.letter == piece3_2. letter) (
8 var letter = piece1_2.letter;
9 }
10 if (piecel_3.letter == piece2_3.letter & & piece2_3.letter ==1
piece3_3.letter) (
11 var letter = piece1_3.letter;
12 }
13 if (piecel_l.letter == piecel_2.letter &&
piecel_2.letter == piece1_3.1etter) (
14 var letter = piece1_1.letter;
15 }
16 if (piece2_l.letter == piece2_2.letter &&
piece2_2.letter = = piece2_3.letter) {
Предыдущая << 1 .. 144 145 146 147 148 149 < 150 > 151 152 153 154 155 156 .. 210 >> Следующая