Гэри Розенцвейг - Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Примечание
Все коды в функциях getVersionNumber и requiredVersion будут работать и с Flash MX и с Flash 8. Весь код ничего не будет стоить, если будет работать только с Flash 8. Идея состоит в том, чтобы предупредить пользователя Flash MX-плеера о возможных проблемах.
Обычное данную функцию предполагается использовать для того, чтобы обнаруживать небольшие обновления Flash-плеера. Предположим, например, что Macromedia выпускает Flash версии 6.0.42.0. Эта версия содержит исправление, которое необходимо для корректной работы вашей игры. Вы должны проверить, есть ли у пользователя данная версия, и предупредить его, если ее нет.
Важно, чтобы эта проверка возвращала true только в том случае, если у пользователя установлена требуемая версия или более новая. Обычная ошибка, которую делает программист, это поиск точного номера версии, например, 6. Тогда, если у пользователя установлена 5-я или любая другая версия, он получает предупреждение о необходимости обновления. Спустя год выходит версия 7, а поскольку версия 7 также не является версией 6, пользователь получает точно такое же предупреждение! Я постоянно сталкиваюсь с этим в программировании во Flash, Stockwave и JavaScript. Функция requiredVersion всегда возвращает true если версия пользователя более новая, чем требуемая.
Возможности Flash 8-плеера
Кроме выяснения номера версии Flash-плеера, вам также может понадобиться узнать другие возможности пользовательского варианта плеера. Флэш может работать на разных платформах, например, на карманных компьютерах. Некоторые из этих устройств неспособны поддерживать весь набор свойств, которыми оперирует Flash 8 на MAC и Windows.
Вы можете проверить некоторые характеристики системы с помощью объекта System.capabilities. Свойства этого объекта содержат требуемые параметры. Вот пример кода, который совершает цикл по всем свойствам и возвращает каждое значение.
// Список всех свойств.
capabilitiesDisplay = "";
for(i in System.capabilities) {
capabilitiesDisplay += i+": "+System.capabilities[i] + newline;
}Возвращаемый список выглядит примерно так на моем Macintosh Powerbook:
language: en-US
input: point
manufacturer: Macromedia Macintosh
os: Mac OS 10.1.3
serverString:
A=t&MP3=t&AE=t&VE=t&ACC=f&DEB=t&V=MAC%206%2C0%2C21%2C0&M=Macromedia
Macintosh&R=1152x768&DP=72&COL=color&AR=1&I=point&OS=Mac OS
10.1.3&L=en
isDebugger: true
version: MAC 6,0,21,0
hasAudio: true
hasMP3: true
hasAudioEncoder: true
hasVideoEncoder: true
screenResolutionX: 1152
screenResolutionY: 768
screenDPI: 72
screenColor: colorОдна из проблем, связанных с использованием System.capabilities, состоит в том, что нет никакой гарантии, что названия свойств и типы значений остаются постоянными от плеера к плееру. Вам придется проверить System.capabilities на любой системе, на которой хотите проигрывать ваш клип. Потом вам нужно составить лист возможных свойств и значений, которые хотите проверить. Например, вы можете заметить, что на некоторых плеерах hasMP3 не работает, а некоторые плееры даже не показывают свойство hasMP3. Поскольку Flash 6-плеер может быть подсоединен к разным машинам, только время покажет, насколько различным может быть список System.capabilities работает. Одно из полезных применений System.capabilities состоит в том, что можно взять значения свойств screenResolutionX и screenResolutionY, чтобы, например, сообщить пользователю, что установки его монитора соответсвуют размеру экрана, который слишком мал для удобного просмотра вашего ролика. Вы также можете разбить на части свойство System.capabilities.os, так же, как мы уже разбирали get.Version(), чтобы можно было проверить, обладает ли пользователь достаточно новой версией операционной системы.
Приложение A Ресурсы сети Internet для Flash-разработчика
Итак, вы уже прочли всю книгу, изучили каждый пример и на его основе создали собственную игру и все еще хотите получить дополнительную информацию о Flash? Что ж, вы без особого труда сможете удовлетворить свою любознательность. Существует огромное количество сайтов, созданных специально для Flash-разработчиков самими Flash-разработчиками [22] .
Все указанные ниже сайты существуют независимо от Macromedia, и с их помощью можно найти практически любую требуемую информацию. Содержание этих сайтов приблизительно одинаково: статьи, учебные пособия, открытые программные файлы (лицензионные программы с текстами, которые можно модифицировать и распространять без ограничений), а также форумы или доски объявлений. Качество таких сайтов во многом зависит от посещающих их пользователей, особенно когда речь заходит о досках объявлений. Но любой Flash-разработчик сможет найти один или несколько сайтов по своему вкусу и вступить, таким образом, в новое для него сообщество.
Автором книги поддереживается сайт http://developerdispatch.com/, который содержит массу ссылок на различные сайты. Вы всегда можете посетить этот сайт, чтобы ознакомиться с новыми и обновленными ссылками.
Actionscript.com – http://www.actionscript.com/
Actionscripts.org – http://www.actionscripts.org/
Art's Flash Files – http://www.artswebsite.com/coolstuff/flash.htm
Developer Dispatch – http://www.developerdispatch.com
Flash 4 All – http://www.flash4all.de/ (на немецком и английском языках)
Flash Academy – http://www.enetserve.com/tutorials/
Flash Geek – http://www.flashgeek.com/
Flash Heaven – http://www.flashheaven.de/ (на немецком и английском языках)
Flash Kit – http://www.flashkit.com/ (рекомендуем)
FlashMaestro – http://www.flashmaestro.fm/ (на испанском языке)
Flash Magazine – http://www.flashmagazine.com/
Flash Pro – http://www.flashpro.nl/
Flazoom – http://www.flazoom.com/
Kirupa – http://www.kirupa.com/developer/
Colin Moock – http://www.moock.org/webdesign/flash/
Pro Flasher – http://www.proflasher.com/
Warp 9 – http://www.warp9.it/ (на итальянском языке)
We're Here Forums – http://www.were-here.com/
Приложение B Краткий экскурс в историю игр
• От игры «Senet» до «Space War»
• От "Space War" к "Pong"
• От "Pong" к "Pac-Man"
• Появление домашних игровых видеоприставок
• Игры покоряют компьютеры
• Сетевые компьютерные игры
• Дополнительная литература
Вообразите себе мир, в котором нет компьютерных игр. Впрочем, это не так трудно сделать, ведь первая компьютерная игра, «Space War» (Звездные войны), была создана в 1962 г. И только с 1970 г. общественность получила возможность играть в первые видеоигры.
Представьте себя на месте человека, который создал первую компьютерную игру. Тогда мало от чего можно было отталкиваться в своих разработках. Сейчас же, оглядываясь в прошлое, мы сможем вспомнить бесчисленное множество видео– и компьютерных игр. И практически все, что мы придумываем в настоящее время, – это повторение, новое изложение или переложение старых игр.
Первая компьютерная игра не имела предшественников и была полностью оригинальной. С тех пор компьютеры произвели коренные изменения в мире игр, а мы, в свою очередь, обладаем боЛ льшим вдохновением.От игры «Senet» до "Space War
Игры существовали еще раньше того времени, которым датируется первое упоминание о них. Кажется, людям всегда было свойственно создавать виртуальные, выдуманные ситуации, которые позволяли бы им соревноваться друг с другом.
Эволюция настольных игр
Первыми настольными играми были игры на скорость, очень схожие с современной игрой в нарды. Одна из древнейших настольных игр – «Senet» – была популярна в Египте более чем 2000 лет назад.
В игре участвовали два человека, у каждого из которых было несколько фишек. Игроки бросали палочки, так как кости еще не были изобретены, и перемещали фишки вдоль игральной доски. Целью игры было передвинуть все свои фишки на противоположный конец доски, который символизировал собой небо.
Рисунок B.1. Древние египтяне увлекались игрой «Senet»
На протяжении тысячелетия эта игра приживалась в других культурах. Каждый народ использовал свои фишки, заветный край доски олицетворял собой что-то другое, чем в других странах, но в целом правила игры сохранялись.
...Примечание
Цель игры "Senet" заключалась в том, чтобы передвинуть свои фишки на конец доски, олицетворяющий небо. Многие игры, появившиеся впоследствии, подчинялись тому же принципу. И современная детская игра в классы (или классики), в сущности, относится к таким играм, хотя большинство девочек, играющих в нее, даже не подозревают о том, что ее последний квадратик символизирует не что иное, как небеса.
Кроме игр на скорость, издавна известны игры, разновидностью которых является «Nine Men's Morris». Для этих игр использовалась доска с соединенными между собой точками. У каждого игрока было по девять фишек, за свой ход только одну из них он мог передвинуть на следующую точку. Если игрок выстраивал три фишки в ряд, ему позволялось убрать с игрового поля одну из фишек соперника.
На основе таких игр впоследствии появились шашки и шахматы. Опять же цель игры заключалась в том, чтобы "съесть" все фишки противника, одновременно защищая свои.