Ну, собсно сабж: статья про то, с чего следует начинать новичкам ([u]Подчеркиваю: новичкам[/u]) Ссылка на Game Maker: http://www.yoyogames.com/gamemaker/try_download Кряк, кейген или сериал не даю - не имею права, а если имел бы, то у меня нет никакой гарантии, что в кряке нет вирусов. Для начала хочу сказать, что без какого-либо опыта в GM "самую крутую игру на свете" [b]вам не сделать[/b]. Перед тем, как углублятся в особенности Game Maker начнем с обьяснения что в Game Maker ([i]далее - GM[/i]) и к чему. При первом запуске Game Maker он вас любезно спросит: "Activate advanced mode?" - "включить "сложный" режим?" - нажимайте "No" ("Нет"). Потом можно будет переключится в этот режим, а пока он нам не нужен. Все игры, созданные на GM, так скажем, распологаются в комнатах (Rooms). В GM Комнаты плоские, то есть в них только 2 измерения (2D). В этих комнатах размещаются обьекты. Примеры обьектов: стены, главный герой, мячик. Эти обьекты могут выполнять действия, реагировать на нажатия клавиш или кнопок мыши и т.п. (Хотя и некоторые обьекты, например стены, в основном ни на что не реагируют и не перемещаются) Обьект может выполнять действие если произошло какое-либо событие. Именно поэтому GML (Язык программирования Game Maker, Game Maker Language) является [b]обьектно-базированным языком[/b]. Например, если мячик коснулся пола, он должен отскочить, если нажата клавиша "влево" - герой должен пойти влево и так далее. Так как обьекты - наиболее важные составляющие игры, поговорим именно о них для начала. Во-первых, большинству обьектам нужны изображения для того, чтобы их было видно на экране. Эти изображения называются спрайтами (англ. Sprite, как напиток). Спрайт часто употребляется в виде не одного изображения, а набора картинок, которые показываются одна за другой для создания анимации. Таким образом, шар вращается, а корабль взрывается, и т.д. Во время игры, спрайт для конкретного объекта может измениться. (Таким образом, главный герой может выглядеть несколько иначе, когда он ходит с левой или с правой стороны.) Вы можете создавать свои собственные спрайты в GM или загружать их из файлов. Как я уже сказал, объекты могут выполнять действия, когда событие произошло. Есть большое разнообразие событий и огромный ассортимент различных действий. Например, есть событие создания, действия в нем исполняются, когда объект становится создан. (Если быть более точным, когда один экземпляр объекта создается; Об этом далее) Например, когда мяч создан, вы можете придать ему некоторые направление и скорость движения. Когда два объекта сталкиваются, вы получите событие столкновения. В таком случае вы можете заставить мяч остановиться или двигаться в обратном направлении. Вы также можете воспроизвести звуковой эффект. Для этого Game Maker позволяет проигрывать звуки. Для нажатия клавиши на клавиатуре тоже есть определенное событие, и объект может принять соответствующие меры, например, начать двигаться в указанном направлении. Я надеюсь, что вы пока все поняли. Вам придется поработать с объектами, чтобы они работали как следует и как требуется. Теперь, после того, как мы разобрались с объектами, пора уже разобраться с комнатами (Англ. Room). Во-первых, их может быть несколько, поэтому комнаты могут быть использованы, например, для создания уровней. GM позволяет размещать в каждой комнате объекты по-разному, а также переключаться между комнатами. Комнаты могут иметь определенный фон. Фон может быть простым изображением, которое, как и спрайт, может быть отредактировано в GM, или загружено из файла, [b]но не может иметь анимации[/b]. Далее, вы можете разместить в комнате несколько экземпляров обьектов. Чтобы понять это, приведу аналогию с собаками. Собака - объект, она реагирует на ваши действия (Смерть и ампутации не рассматриваем ;)). О ней мы ничего определенного сказать не можем - она одинаково для всех собак злится при избиении, радуется при ласкании, но мы не можем сказать ничего о цвете ее шерсти или характере, собака - это обобщенное понятие. А вот определенная собака, Шарик или Бобик - экземпляр собаки, он имеет собственный характер, цвет шерсти и т.п. ТО есть вы можете создать обьект "dog" ("Собака") и создать их несколько штук в разных местах в комнате. Теперь, когда у Вас есть все ресурсы - спрайты (Sprites), обьекты (Objects), комнаты (Rooms), звуки (Sounds), и фоны (Backgrgounds) - все готово для запуска игры. (Ээ, это только если!) Если обьекты реагируют на действия и в игре не обнаружено накаких ошибок, то игру можно переводить в формат .exe - стандарт для всех игр и приложений для Windows. Ну, подведем пока итоги, в чем мы более или менее разобрались: [list] [*]Обьекты (Objects) - реальные обьекты в GM, исполняющие различные действия и реагирующие на события. [*]Комнаты (Rooms) - Места (Уровни), где распологаются обьекты. [*]Спрайты (Sprites) - картинки для отображения обьектов. Могут быть анимированными. [*]Звуки (Sounds) - Собственно звуки в Game Maker, которые могут быть, например, музыкой или озвучкой столкновений и т.п. [*]Фоны (Backgrounds) - Фоны для комнат. Анимированными они быть [b]не могут[/b]. [/list] Конечно, есть и другие ресурсы, например шрифты, но, так как они не из основных, [b]пока они нам не пригодятся[/b]. Пока все. [u][b]потом допишу[/b][/u]. Использовано: справка Game Maker, hands.exe, brain.exe (шутка такая, кто не знает, никакие dll не использованы. Значит так, дописываю статью. [u][b][size=16]Часть вторая. Делаем свою первую игру.[/size][/b][/u] Конечно, с первого раза, как я уже сказал, вам даже Quake не написать, но реально при старании сделать неплохую (для новичка) игру. Работаем в простом, не Advanced режиме. Честно говоря, многие рекомендуют для начала делать Арканоид (Его мы будем делать вторым), но я, последовав совету Марка Овермарса, начну с простейшего "Кэтч зе балл" (Catch the ball, поймай мяч). Для начала опишем смысл игры, которую мы собираемся сделать (если это сделать перед тем, как делать игру, можно сэкономить много времени). Игра будет простой: Существует какой-то шар, прыгающий вокруг стен. Задача игрока - попробовать успеть нажать на мяч при помощи мыши. КАждый раз, когда игрок нажимает на мяч, он (игрок) получает очки, и мяч перемещается в другое место. Насколько видно, нам пригодится два обьекта: мяч и стена. Но начнем мы со спрайтов (Если вы забыли, что это - см. первый пост). Вы можете использовать стандартные спрайты (Их можно найти в папке "Sprites" в папке, куда установлен Game Maker), можете нарисовать свой собственный, а можете использовать те, которые я выложил ниже: [hide]$IMAGE1$ - [b]стена[/b] $IMAGE2$ - [b]мячик[/b][/hide] Создадим спрайт стены. Для этого нажмите Resources ->Create Sprite (Товарищи коллеги, я просто не хочу пугать и путать горячими клавишами). Откроется окно настроек спрайта. В поле "Имя спрайта" введите "sprite_wall" ("Спрайт_Стена"). [b]Никогда не давайте ресурсам русские имена.[/b] Не делайте грубой ошибки. Пора загрузить спрайт. Нажмите кнопку "Load Sprite" ("Загрузить спрайт"), и откройте спрайт, который Вы будите использовать. Теперь снимите галочку "Transparent" ("Прозрачный"). Так как стена у нас занимает весь квадрат, то прозрачных участков нам не нужно. В результате (Если вы используйте мой спрайт) Должно получится примерно следующее: $IMAGE3$ Теперь смело нажмите кнопку "OK". Создадим спрайт мячика. Опять нажмите Resources ->Create Sprite, и откроется уже знакомое нам окно. Назовите его "Sprite_Ball" ("Спрайт_Мяч") Загрузите спрайт, который хотите использовать (Рекомендую для тренировки загрузить мой спрайт). Мяч слишком большой, его надо чуточку уменьшить, примерно на 1/3. Для этого нажмите "Edit Sprite" ("Редактировать Спрайт"), выберите Transform -> Stretch (Трансформировать -> Растянуть). Введите width и Height (Ширина, Высота) поменьше, например, 24x24 будет неплохим размером. Нажмите OK после ввода ширины и высоты. Мяч уменьшится, нажмите зеленую галочку слева сверху. Галочку "Transparent" не снимайте, мяч не квадратный. "Прозрачным" цветом является цвет спрайта в самом низу справа. Этот цвет не рисуется, он "Прозрачный" и сквозь него все видно. Потом нажимаем OK. Пора сохранить игру. Нажмите File -> Save и назовите свою игру, например, "catchtheball.gmk". *.gmk - стандартный для GM7 формат проектов. Теперь создадим обьекты. Ну, нажимаем Resources -> Create Object. Откроется окно настроек обьекта. Назоваите наш обьект (Впишите в поле "Name") - "Wall", "Стена" Выбираем Sprite -> И наш спрайт стены, Sprite_Wall. Отмечаем галочку "Solid" ("Твердый"), стены твердые. Эта галочка отвечает за то, является ли наш обьект "Твердым". Нажимаем OK, стена неподвижна и ни на что реагировать не должна. Теперь пора создать и мяч. Создайте еще один объект, назовите его "Ball" ("Мяч"). Назначте ему наш спрайт мяча, Sprite_Ball. Галочку solid ставить не надо, сквозь мяч проходить никто и не собирается. Создайте свое первое событие, на которое мяч должен отреагировать - создание мяча. Для этого нажмите кнопку "Add Event", и выберите "Create" (Лампочка еще рядом). Теперь у нас есть событие, и мяч обязан на него среагировать - собственно говоря, начать двигаться. Выберите раздел действий "Move" ("Движение") справа. Перетащите справа картинку с восемью стрелками в поле чуток левее. Откроется окно настроек действия, в даном случае - начала движения. красные стрелки - возможные пути направления (Мяч выберет одно из них случайно). Отметьте все восемь стрелок, а в поле "Speed" ("Скорость") - напишите 8. можно и побольше, но играть тогда будет труднее, и за пределы 15 лучше не заходить. Нажмите OK, сохраните игру. Теперь заставим мяч отскакивать от стен. Создайте действие, выберите "Collision" ("Столкновение") и как объект выберите Wall. Это событие, действия при котором выполняются при столкновении мяча с - догадайтесь,чем? Да, экземпляром объекта Wall. Перетащите действие "Bounce" ("Отпрыгнуть") в поле, уже нам знакомое. Посмотреть название действия можно, подержав над иконкой действия мышку. В настройках действия: precise: precisely, against: solid objects. Сохраните игру. Нам пора создать еще одно действие - нажатие на мяч мышкой. Нажмите "Add Event". Выберите Mouse -> Left Pressed (Не left button и не left released!). Перетащите действие "Jump to Random", в настройках действия в полях "snap hor" и "snap ver" поставьте 32. Перетащите после действия "Jump to random" действие "Move Fixed" (Оно уже нам знакомо) - и поставьте те же настройки, как и в событии "Create" ("Создание"). И последнее действие - прибавить очков, оно будет последним в этом событии. Выберите категорию "Score", там - "Set score" и перетащите. Настройки - new score - 1, Поставьте галочку "Reliative" ("Относительно") Эта галочка означает, что наши очки надо относительно увеличить на +1. Если ее не поставить, то очки просто будут ставиться на 1 каждое нажатие. Готово. Теперь сохраните игру и нажмите кнопку в настройках обьекта "Show Information". Если все сделано правильно, то высветится следующее: [code] Information about object: Ball Sprite: spr_ball Solid: false Visible: true Depth: 0 Persistent: false Parent: Mask: Create Event: start moving in directions 111101111 with speed set to 8 Collision Event with object Wall: bounce precisely against solid objects Mouse Event for Left Pressed: move to a random position with hor snap 32 and vert snap 32 start moving in directions 111101111 with speed set to 8 set the score relative to 1 [/code] Если все верно, то можно приступить теперь к созданию комнат. Нажмите Resources -> Create Room. Вы увидите пустую комнату (вернее, пока пустую). Есть несколько вкладок в настройках комнаты, для настроек, для фонов, видов (пока забудьте), и, конечно, вкладка "Objects" для создания в комнате объектов (Выбрана по умолчанию). Выберите сначала стену и создайте их по краям. Для удобства можно сначала ввести в поля "Snap X" и "Snap Y" 32. Это сетка. Выберите объект "Ball" и создайте его один экземпляр в комнате. Сохраните игру. Комната должна получится примерно следующей: $IMAGE4$ Поле под "Object to add with left mouse:" - выбор объекта для создания. Если что-то не устраивает - правой кнопкой мыши всегда можно удалить объект. Теперь можно запустить игру в первый раз! Нажмите зеленый треугольничек сверху окна GM. Сначала появится великий Loading, потом игра запустится. Поздравляю, Вы создали на GM свою первую игру! Вот .gmk файл ее: [url=http://stream.ifolder.ru/13171012]Скачатьс Ifolder (где-то 30 кб)[/url] Потом допишу 3-ю часть, а пока Домашнее задание, так скажем: сделайте так, чтобы мяч двигался только по диагоналям. [i]Подсказка: покопайтесь в настройках действия "Move Fixed".[/i] [size=25][b][u]Часть 3. Углубляемся дальше - бэкграунды.[/u][/b][/size] [r][i] Лучше поздно, чем никогда. [/i][/r] Дорогие читатели моей "статейки", предлагаю Вам дальше углубится в изучение назначений и родов ресурсов в GM. Потом мы их же добавим в нашу первую игру. Собственно говоря, нам остались лишь фоны и звуки из основных ресурсов; потом мы перейдем уже к еще более углубленному изучению. [b]Фоны.[/b] [i](англ. background)[/i] По названию уже становится очевидно назначение этого типа ресурса. Они являются фонами для комнат; давайте же заменим скучный серый фон, скажем, на фон с травой! Вы можете использовать свой фон, а можете, при желании, скачать тот, что представлен ниже. $IMAGE1$ Создадим бэкграунд - Нажмите в меню сверху Resources -> Create background.Теперь рассмотрим появившееся окно. $IMAGE2$ В основном нам все знакомо уже из окна со спрайтами, но появился новый флажок - [b]use as a tile set[/b]. Его мы рассмотрим позже, а пока отмечать его нам не надо. Отлично, теперь у нас есть бэкграунд. Переименуйте его в back_grass. Теперь назначим его комнате! Открываем нашу единственную комнату, выбмраем вкладку backgrounds... и... ого! что-то новенькое! $IMAGE3$ Рассмотрим все эти настройки. Начнем со списка с бэкграундами (не раскрывающегося). Там есть элементы background 0-7. Но где же наша back_grass? Дело в том, что у этого списка другое назначение. через него не выбираются ресурсы бэкграунды. Все дело в том, что комнате можно применить максимум 8 бэкграудов. И все они могут быть разными. При этом они рапределены в порядке их перекрытия - то есть, бэкграунд 0 перерывают все остальные бэкграунды, бэкграунд 1 перекрывают все, кроме background0 и так далее. Чтобы было понятнее, приведу аналогию с калькой. У нас есть 3 слоя кальки. На первом нарисован просто синий фон. На втором - Солнце. на третьем - облака. теперь сначала полоэим слой 1, с фоном, на него слой 2, с солнцем, и третий, с облаками. получается картинка, но на этом чудеса не прекращаются! Начинаем передвиать верхний слой. получается анимация - облака плывут! (на самом деле, на практике применяют 2-3 слоя с облаками и всех их двигают с разной скоростью). А теперь поменяем местами второй и третий слой. Получается бред - солнце перекрывает облака! Нет, раньше было лучше. Таким образом, я надеюсь, вам стало примерно понятно, как перекрывают друг друга бэкграунды. Так и в Game Maker - 8 слоев, 8 бэкграундов. Теперь, наконец, разберемся с остальными элементами. Выбираем в этом списке background0 - теперь мы работам именно с этим слоем, самым нижним, так скажем. теперь в другом списке, где пока красуется надпись "", выбираем back_grass. Поздравляю, теперь у нашей (Вашей?) комнаты есть фон. Сохраните игру. Чуть ниже есть флажки - Tile hor. , Tile ver. , Stretch. Они отвечают за то, как бэкграунд будет "натягиватся на комнату". [b]Tile hor.[/b] Если выбран, то бэкграунд повторяется по горизонтали; в ином случае лишь один экзепляр будет на горизонтальной оси. [b]Tile ver.[/b] Если выбран, то бэкграунд повторяется по вертикали; в ином случае лишь один экзепляр будет на вертикальной оси. [b]Stretch.[/b] Если выбран, то бэкграунд растягиваются на всю комнату; кстати, тогда флажки Tile hor. и Tile ver. игнорируются. Если же флажок не будет выбран, то бэкграунда будет повторятся. Поэксперементируйте с этими флажками, чтобы примерно понять, как это работает. Очень интересен случай, когда все три флажка [b]не отмечены[/b]. Тогда в комнате есть только один экземпляр бэкграунда. Теперь о различных полях снизу. hspeed, vspeed - скорость передвижения бэкграунда; hspeed - скорость передвижения по горизонтали, а vspeed - по вертикали. оставим их по нулю, трава у нас не едет никуда вроде бы. Хотя, при желании, можете и с ними поэксперементировать. Мало-помалу наши шаловливые руки дошли до полей x и y. попробуйте набрать в них 100, 100. Бэкграунда сместится; так знайте, она сместилась на 100 пикселов влево и 100 пикселов вниз. А теперь наберите -100, 200. Теперь бэкграунда сместилась на -100 пикселов влево, то есть, на 100 пикселов вправо, и на 200 пикселов вниз. Таким образом, эти поля указывают начальное (!) смещение бэкграунды. Ну вот и славно. С очередным типом ресурса мы опять разобрались. Ждите следующей главы; в ней поговорим о звуках. А пока все. Прощайте! [size=25][b][u]Часть 3 (продолжение). Звуки.[/u][/b][/size] Сегодня мы перейдем к озвучиванию игры. Первое, что хочется сказать - звуки играют довольно важную роль в игре. Звуки выстрелов, общение врагов по рации, вскрики полупьяных зомби - все это добавляет игре атмосферности (не путайте понятия "атмосферность" и "реалистичность") и помогает игроку погрузиться в нее еще сильнее. Конечно, игроку будет трудно погрузится в наш вымышленный мир из травы, шарика и стен, но все-таки звуки придадут игре красочности. Добавим звук отскакивания от стен для начала. Нажмите Resouces -> Create sound... появляется новое окно. Теперь рассмотрим, как всегда, появившееся окно. Назначение поля "Name" уже, я надеюсь, стало для вас очевидно из предыдущих глав. Все остальное пока ново. $IMAGE1$ Кнопка "load sound" загружает звук, кнопка "Save sound" его сохраняет (в отдельный файл, конечно). Флажки в табе "Effects" отвечают за разные эффекты - если флажок отмечен, эффект применяется, иначе же эффект не применяется. Поэксперементируйте с ними - загрузите какой-нибудь звук, нажмите рядом с кнопкой "load sound" зеленый треугольничек. Теперь попробуйте понажимать эти флажки. Теперь о переключателях в этом окне. На самом деле, для нас (пока что) не имеет значения, каким является звук - Normal sound, background music, 3d sound или же будет использоватся мультимедийный плеер. В любом случае, выбирайте пока что "normal sound" для звуков и "background music" для музыки; об их различиях нам пока рано знать. То же самое можно сказать и о флажке "Preload" - чтобы понять его действие,надо знать ядро GM, которое мы рассмотрим позже, а пока не трогайте его и так и оставляйте отмеченным. Ползунки "volume" и "pan" регулируют громкость и балланс соответственно. Балланс - относительное расположение звука, грубо говоря; двигаем ползунок влево - и он будет "ближе" к левой колонке, двигаем его вправо - он будет "ближке" к правой колонке. Очевидно, чтобы заметить это, пригодятся стереоколонки. Кнопка "edit sound" открывает ваш стандартный редактор звуков (скорее всего, это будет майкрософтовская "звукозапись") и редактирует загруженный звук. Потом просто его сохраняем. Теперь, вроде бы, со всем мы разобрались. Загружаем из стандартных GM звуков понравившийся звук для отскока от стены. Называем звук [b]"snd_bounce"[/b], при желании можете назначить ему эффекты. Проверьте, чтобы он был "normal sound" и нажмите великую кнопку "OK". Сохраните игру - теперь в ней появился первый звук. Теперь сделаем так, чтобы он воспроизводился при отскоке от стены. Откройте настройки объекта "Ball", который мы создали во 2 части (главе?) этой статейки. Нажмите на событие "Collision with object Wall", чтобы добавить в него новое действие. Потом из вкладки "main1" (справа) перетащите в действия (где еще находится наше действие отскока от стены) "Play sound". Откроется новое окно; в нем всего поля - sound и loop. В поле sound выбирается звук, флажок "loop" отвечает за повторение звука - если упомянутый флажок отмечен, то звук будет повторятся, иначе же он проиграется один раз. Выберите наш звук [b]snd_bounce[/b], НЕ отмечайте флажок "loop" и нажмите кнопку "OK". Сохраните игру. Теперь посмотрите в действия объекта на событии "Collision with object wall" - добавилось новое действие "Play sound". Напоминаю, что действия выполяняются по порядку, сверху вниз (не путайте события и действия!). Запустите игру. Хех, теперь при отскоке воспроизводится наш звук. Ура, звук работает! Теперь добавим музычки. Создайте новый звук "mus_back1", загрузите в него любую понравившеюся музыку. Нажмите ok. Теперь создайте новый объект obj_musiccontroll, который будет отвечать за музыку. Добавим ему одно событие - Create (если вы забыли, что это такое, перечитайте главу 2) и добавьте в него (я имею в виду событие) действие Play sound. В окне выбирает mus_back1, повторять звук [b]надо[/b], значит, отмечаем флажок "loop". Сохраняем игру, запускаем. Но что это - музыки нет! Ага, мы забыли добавить объект в комнату, точняк. Открываем нашу комнату, добавляем в любое место наш obj_musiccontroll (он все равно невидимый), только смотрите нечайно никакой другой объект не удалите. Запускаем. Работает? Ура, сработало! На этом великом слове завершаю часть третью. [b]Добавлено[/b] (04.04.2010, 09:45) --------------------------------------------- Пожалуйста, оцените статью и тыкните мне пальцем на мои ошибки. Постараюсь исправиться. [size=20][b][u]Глава вторая. Углубление познаний.[/u][/b][/size] [r][i] То была глава первая, "Наша первая игра" Кстати, почему бы не переименовать темку? [/i][/r] [size=18][b][u]Часть 0. Предисловие.[/u][/b][/size] Забавно - как же так получается? Хотел написать маленькую статейку, а она в разультате что-то больно растянулась. (Ну это так, лирическое отступление...) В первой главе я объяснил "на пальцах" [s]принцип работы мясорубки[/s] назначение основных ресурсов и как с ними работать. В этой главе я предлагаю углубить ваши знания и мало-помалу поднятся с уровня ниже плинтуса. Конечно, изучать ядро GM нам еще рано... или нет? Плевать, что говорится, разберемся по пути, а пока поговорим о... [size=18][b][u]Часть 1. Тайлы.[/u][/b][/size] Недавно мы с вами смотрели окно настроек бэкграунда; там мы встретились с непонятным (пока) нам флажком "use as a tile set". Каково же его значение, и что такое tiles и tile set? [b]Tiles[/b] (тайлы) - грубо говоря, объекты (не-не-не! [b]тайлы - это никак не объекты[/b], просто я в очередной раз объясняю методом лопаты), у которых нет ни событий, ни действий. Они просто стоят на месте, с ними ничего не сталкивается, и страдают фигней, а именно - отрисовывают изображение. Так зачем же это нам нужно? Как это работает? Дабы ответить на все вопросы сразу, приведу пример. Создайте новую игру и загрузите в нее данный ниже бэкграунд размера 16x16. $IMAGE1$ [b]Внимание![/b] Может, флажок "use as a tile set" и связан с тайлами, его пока не отмечайте. Настройки не меняйте - нас и так все устраивает. Нажмите OK. Теперь создайте новую комнату и сразу перейдите во вкладу "tiles". В раскрывающемся списке (в верхнем) выберите наш бэкграунд. Теперь нажмите куда-нибудь в комнате - там появится тот самый бэкграунд. Нажмите где-нибудь еще разок. А теперь пройдитесь по тем объектам правой кнопкой мыши. Похоже на расстановку объектов, не так ли? Опять расставьте тайлы и сохраните игру; Запустите ее. Ничего не двигается - да, действительно тайлы бездейственны. Итак, с тайлами мы кое-как, да разобрались; теперь о тайлсетах. Слово "тайлсет" просиходит от сокращенного "tile set" - сет тайлов, или по-другому "набор тайлов". Так и есть на самом деле; но как мы можем использовать бэкграунд в качестве набора тайлов? Дело в том, что иногда (и довольно часто) пихают не один, а сразу несколько тайлов в одно изображение. Приведенная ниже "схемка" покажет, как это возможно: $IMAGE2$ Вот таким макаром получается изображение, именуемое тайлсетом. Давайте же, скачайте тайлсет и загрузите его в уже созданную нами "игру" в этой главе. [b]Тайлсет:[/b] $IMAGE3$ Создаем новый бэкграунд, загружаем это изображение и отмечаем [s]великий и всемогущий[/s] флажок "use as a tile set", и... окно расширится, опять появляются новые поля, да и весь бэкграунд изрешечен! Так, не паникуем; опять медлеено и спокойно, периодически эксперементируя, ковыряем это окно. Та сетка, что появилась на бэкграунде - границы изображений. Чтобы понять это, откройте нашу единственную комнату, опять откройте вкладку "tiles", там выберите наш новенький тайлсет. теперь понажимайте по его изображению наверху - [b]выбирается часть изображения, а именно - тайл.[/b] Нажмите на нем где-нибудь посередине сначала, поставьте тайл в комнату, потом в другом месте и опять поставьте в комнату... Но с тайлами что-то не так, они "съехали". Ага, хочу вам сразу сказать - оплошность наша в настройках тайлсета заключается. Опять откройте настройки бэкграунда. Разберемся с новыми появившимися полями. Во-первых, поля tile width и tile height, очевидно, отвечают за ширину и высоту (соответственно) каждого тайла. Попробуйте поменять их, но после этого обязательно поставьте их обратно на 16. Во-вторых, поля horizontal offset и vertical offset. попробуйте их поменять - сетка двигается. А теперь вспомните про параметры (x) и (y) у бэкграунда в комнате и поймите их назначение. Да, да - они двигают сетку вдоль бэкграунда. Теперь два самых интересных поля - [b]horizontal sep.[/b] и [b]vertical sep.[/b] все дело в том, что нередко для удобства между тайлами на тайлсете оставляют пустое пространство. Так вот, horizontal sep. - расстояние между тайлами по горизонтали, а vertical sep. - расстояние между тайлами по вертикали. Интересно, не так ли? Теперь впишите в эти поля 2, 2. Ура, теперь сетка на месте! Попробуйте порисовать тайлами в комнате. Теперь о том, зачем это надо. Представим такую ситуацию - у нас есть 100 типов стен, которые между собой ничем не различаются, разве что тем, как они выглядят. Вроде бы можно создать 100 спрайтов и 100 почти одинаковых объектов; нее, поверьте, это далеко не вариант. А как тогда быть? Все очень просто - создать один невидимый объект, который выполняет функцию стены и заставляем им комнату в тех местах, где должна быть стена. Потом создаем тайлсет и замощаем комнату тайлами с изображениями нужных стен. Это намного быстрее и удобнее. Вроде бы рассказал все, о чем хотел; ан-не, о кое-чем таки забыли. Откройте комнату, откройте опять вкладку tiles и посмотрите в низ это окна. Там есть список и три кнопки. Втф? Помните, мы с вами говорили о слоях кальки? Здесь можно привести аналогию - то, что вы видите, и есть слои, и на кажом из них могут находится разные тайлы. У каждого слоя есть своя глубина (напомню: глубина - это, так скажем, расположение объекта относительно третьей оси, то есть, depth (глубина) отвечает за то, как объекты друг друга перекрывают), и чем глубина больше, тем слой от нас дальше (или ниже?). Стоит отметить, что глубина может быть и отрицательной и что стандартная глубина всех объектов - 0. Стандартный слой тайлов перекрывается объектами с глубиной 0; Нас это не устраивает. Что же, нажав кнопку Add, создадим новый слой тайлов, который объекты перекрывать не будут! как только вы нажали кнопку [s]ад[/s] Add, высветится окно с одним полем: depth. Здесь напишите глубину слоя, которая будет меньше нуля, скажем, -100. Теперь выбираем новый Layer -100 из списка и рисуем на нем тайлами. А что теперь делать со стандартным Layer 1000000, если он нам больше не нужен? конечно, удалить! Выберите из списка этот слой и нажмите кнопку [b]Delete[/b]. Да, теперь слой 1000000 и все тайлы на нем вместе с ним улетели в [s]неизведанное пространство[/s] помойку, тобиш, удалились [b]безвозвратно[/b]. А если мы теперь хотим переместить слой -100 повыше? Нет ничего проще! Выбираем его из списка и нажимаем кнопку [b]Change.[/b] Высветится новое окно, в нем вводим новую глубину слоя (скажем, -200) и нажимаем окей. Кстати, сохраните игру. Теперь слой перемещен. Ну что ж, с еще одним ресурсом (хе-хе, не флажком, а ресурсом ;) ) мы разобрались. В следующей части мы поговорим о... честно говоря, даже не знаю о чем, в общем, ждите следующей части. А пока все! До свидания! [b]Добавлено[/b] (05.04.2010, 17:02) --------------------------------------------- Кстати, уважаемые, модераторы и админы, пожалуйста, переименуйте тему по-нормальному, а то у меня мозги откосячило по-видимому, когда тему называл