Unblock — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Файл уровней)
(Пример)
Строка 99: Строка 99:
  
 
[[Category:Game mechanic]]
 
[[Category:Game mechanic]]
 +
 +
 +
Для примера возьмем готовый проект и разберем его по блокам.
 +
 +
Проект состоит из одного экрана '''level_9''' и одной сцены '''Unblock''' — сцена, на которой находятся объекты игры, имеет размеры экрана.
 +
[[Файл:Project.PNG]]
 +
 +
 +
'''1. m_end''' — машина, которая при окончании игры делает видимой рамку '''mask''' и присваивает текстовому объекту '''text_end''' соответствующий текст (находится в базе текстовых ресурсов) на regtangle '''reg_end''':
 +
 +
'''You win!''' — в случае победы;
 +
 +
'''You lose!''' — в случае поражения.
 +
[[Файл:Mask.PNG]]
 +
 +
 +
'''2. Timer'''
 +
[[Файл:Timer.PNG]]
 +
 +
'''2.1.''' Таймер '''time''' — отчитывает время игры, с соответствующей графикой и текстом '''time'''
 +
[[Файл:Time.PNG]]        [[Файл:Timetext.PNG]]
 +
 +
'''2.2.''' '''moves_m'''
 +
 +
* машина '''start_moves''' задает операцию считывания ходов со счетчика '''moves''', и при достижении значения moves=max_moves прерывает данную операцию;
 +
[[Файл:Start moves.PNG]]
 +
 +
* счетчик '''moves_max''' задает максимально возможное число ходов;
 +
[[Файл:Moves max.PNG]]
 +
 +
* счетчик '''moves''' считывает ходы с соответствующим текстовым объектом '''moves''', сделанные в игре, дополнительное свойство '''dec: изменить объект''' делает активной кнопку '''undo''' при уменьшение значения счетчика, то есть дает возможность отменить последний сделанный ход;
 +
[[Файл:Moves.PNG]]      [[Файл:Moves text.PNG]]
 +
 +
 +
'''3. Buttons''' — объект с кнопками, которые служат дополнением к игре. На забудьте, что каждой кнопки необходимо задать размер и положение (на ваше усмотрение).
 +
[[Файл:Buttons.PNG]]
 +
 +
'''3.1.''' '''+10sec''' — при нажатии этой кнопки прибавляется 10 секунд к общему времени игры, соответственно '''-10sec''' — при нажатии этой кнопки отнимается 10 секунд от общего времени игры (логика аналогична кнопки +10sec).
 +
[[Файл:+10 1.PNG]]      [[Файл:+10 2.PNG]]
 +
 +
'''3.2. +5m''' — добавляет 5 ходов к общего количеству ходов игры, соответственно '''-5m''' — отнимает 5 ходов.
 +
[[Файл:+5 1.PNG]]        [[Файл:+5 2.PNG]]
 +
 +
'''3.3.''' Кнопки
 +
 +
* '''hint''' — показывает решение схемы из начального положения;
 +
* '''reset''' — сбрасывает схему в начальное положение;
 +
* '''undo''' — отменяет последний сделанный ход.
 +
[[Файл:Hint.PNG]]  [[Файл:Reset.PNG]]
 +
 +
 +
[[Файл:Undo 1.PNG]] [[Файл:Undo 2.PNG]]
 +
 +
 +
'''4. ub''' — состоит из подложки (поля) и самого игрового объекта.
 +
[[Файл:Ub 1.PNG]]
 +
 +
'''4.1. unblock''' – готовый игровой объект, созданный для данной игры, детально описан выше.
 +
[[Файл:Unblock1.PNG]]
 +
 +
 +
'''5. mask''' — фоновая рамка, без текстуры и заливки, которая накладывается сверху на поле игры и стает непрозрачной при окончании игры, то есть блокирует действия на игровом поле.
 +
[[Файл:Mask1.PNG]]
 +
 +
'''6. Файл уровней''' для данной программы:
 +
[[Файл:Level 1.PNG]]
 +
 +
Готовый проект во вьювере
 +
[[Файл:Viewer.PNG]]
 +
 +
Не забывайте задавать размеры и расположения объектам: кнопкам, рамкам, текстовым документам, так что бы после запуска они не перекрывали друг друга и картинка игры выглядела понятно и логично. Все графические ресурсы и базу текстовых ресурсов можно импортировать с тестового примера ''S:\!MOBILE\!!!EditorGames\Wiki_sample''

Версия 13:18, 23 февраля 2016

Unblock - объект редактора, который реализует игровую механику "unblock" - передвигая игровые блоки, нужно вывести главный блок к выходу.


Основные свойства

Unb1.png
  • файл уровня - файл с описанием уровней.
  • номер уровня - номер текущего уровня.
  • скорость доводки - скорость доводки блоков пикс/сек.
  • счетчики
    • ходы - счетчик оставшихся ходов.
    • время - счетчик оставшегося времени.
  • звуки
    • начало движения - звук, который воспроизводится в начале движения блока.
    • конец движения - звук, который воспроизводится в конце движения блока.

Дополнительные параметры

Unb2.jpg
  • графика блока - ресурс, используемый для отрисовки игрового блока. Номер в списке соответствует номеру блока в файле уровней(в 1 свойстве указывается главный блок который нужно довести к выходу, 2 свойство - 2 блок и т.д.)
    • клип - клип блока, пивот должен быть в центре левой/верхней клетки, перетаскивается из редактора ресурсов.
    • размер - размер блока в игровых клетках.
  • изменить состояние объекта - победа - обработчик победы
    • объект - объект, состояние которого меняем.
    • состояние - новое состояние для объекта из предыдущего поля.
  • изменить состояние объекта - поражение - обработчик поражения
    • объект - объект, состояние которого меняем.
    • состояние - новое состояние для объекта из предыдущего поля.
  • изменить состояние объекта - ход - обработчик нужен для активации кнопки "откатить"
    • объект - объект, состояние которого меняем.
    • состояние - новое состояние для объекта из предыдущего поля.

Состояния

  • add_time - добавить время, перед передачей состояния, установить объекту в param значение, сколько времени добавляем; можно указывать отрицательное значение - уменьшим оставшееся время.
  • add_turns - добавить ходов, перед передачей состояния, установить объекту в param значение, сколько ходов добавляем; можно указывать отрицательное значение - уменьшим оставшееся количество ходов.
  • hint - показать следующий шаг из решения; в файле уровней должно быть указано решение.
  • reset - сбросить уровень - начать игру заново.
  • undo - отменить последний ход; возможность сделать откат должна появляться после сделанного хода (см. изменить состояние объекта - ход)

Файл уровней

 <?xml version="1.0" encoding="UTF-8"?>
 <levels>
 <level id="0" w="6" h="6" exit_x="5" exit_y="2" turns="20" time="120" final_shift="40" final_vx="5">
 <field val="0,0,3,0,0,-3,
 0,0,-2,0,0,0,
 1,0,0,-2,-2,0,
 2,0,0,0,0,0,
 -2,0,0,0,0,0,
 0,2,0,3,0,0"/>
 <wall x1="0" y1="0" x2="1" y2="0" />
 <answer val="0,3,1,3,0,4,0,3,1,5,0,5,3,5,2,5,5,0,5,3,2,0,3,0,2,1,2,0,3,2,3,3,4,2,4,3,0,2,4,2"/>  
 </level>
 </levels>
Unb3.png
  • id - номер уровня.
  • w - количество столбцов поля.
  • h - количество строк поля.
  • exit_x - координата x (отсчет от правого верхнего угла) ячейки-выхода.
  • exit_y - координата y (отсчет от правого верхнего угла) ячейки-выхода.
  • turns - количество ходов на прохождение уровня; если указано "0" - ходы не считаются.
  • time - время на прохождение уровня; если указано "0" - игра без учета времени.
  • final_shift - расстояние, которое нужно проехать при анимировании победы.
  • final_vx - скорость по x.
  • final_vy - скорость по y.
  • field val - описание начальной конфигурации поля.
  • wall x1, y1, x2, y2 - описание положения преград (стен) внутри игрового поля
  • answer val - решение уровня.
 <field> - описание начального состояния поля, где:
       0 - пустая ячейка
       1- главный блок, который нужно поместить на ячейку-выход
       2 - блок, занимающий 2 ячейки
       3 - блок, занимающий 3 ячейки.
 Номера блоков соответствуют порядку указания дополнительных свойств "графика блока"
 В точке, в которой указано число, находится крайняя левая/верхняя ячейка блока.
 Если число указано с знаком “-”, то блок на поле размещается вертикально. 
 <wall/> - используется для создания преград, стен, пустых областей по которым таскание блоков внутри поля не возможно.
 Графика таких стен рисуется на фоном рисунке. Координаты стены указываются, как x1, y1 - координаты начала стены,
 x2, y2 - координаты окончания стены.
 Тэг <wall/> задается на одном уровне с <field/>, доступно указание нескольких стен в одном игровом поле.
 <answer> - решение от первого до последнего хода в виде набора чисел через запятую. Числа сгруппированы по 4: x1, y1, x2, y2.
 Где x1,y1 - координаты левой/верхней клетки блока который нужно подвинуть на текущем ходу решения,
 x2, y2 - координаты где эта клетка должна оказаться после хода.
 Если указано непустое, но невалидное решение, вьювер при попытке сыграть уровень покажет сообщение об ошибке.

Пример

S:\!MOBILE\!!!EditorGames\Wiki_sample

test_unblockme.zip


Для примера возьмем готовый проект и разберем его по блокам.

Проект состоит из одного экрана level_9 и одной сцены Unblock — сцена, на которой находятся объекты игры, имеет размеры экрана.

Project.PNG


1. m_end — машина, которая при окончании игры делает видимой рамку mask и присваивает текстовому объекту text_end соответствующий текст (находится в базе текстовых ресурсов) на regtangle reg_end:

You win! — в случае победы;

You lose! — в случае поражения.

Mask.PNG


2. Timer

Timer.PNG

2.1. Таймер time — отчитывает время игры, с соответствующей графикой и текстом time

Time.PNG         Timetext.PNG

2.2. moves_m

  • машина start_moves задает операцию считывания ходов со счетчика moves, и при достижении значения moves=max_moves прерывает данную операцию;
Start moves.PNG
  • счетчик moves_max задает максимально возможное число ходов;
Moves max.PNG
  • счетчик moves считывает ходы с соответствующим текстовым объектом moves, сделанные в игре, дополнительное свойство dec: изменить объект делает активной кнопку undo при уменьшение значения счетчика, то есть дает возможность отменить последний сделанный ход;
Moves.PNG       Moves text.PNG


3. Buttons — объект с кнопками, которые служат дополнением к игре. На забудьте, что каждой кнопки необходимо задать размер и положение (на ваше усмотрение).

Buttons.PNG

3.1. +10sec — при нажатии этой кнопки прибавляется 10 секунд к общему времени игры, соответственно -10sec — при нажатии этой кнопки отнимается 10 секунд от общего времени игры (логика аналогична кнопки +10sec).

+10 1.PNG       +10 2.PNG

3.2. +5m — добавляет 5 ходов к общего количеству ходов игры, соответственно -5m — отнимает 5 ходов.

+5 1.PNG        +5 2.PNG

3.3. Кнопки

  • hint — показывает решение схемы из начального положения;
  • reset — сбрасывает схему в начальное положение;
  • undo — отменяет последний сделанный ход.
Hint.PNG  Reset.PNG 

Undo 1.PNG Undo 2.PNG


4. ub — состоит из подложки (поля) и самого игрового объекта.

Ub 1.PNG

4.1. unblock – готовый игровой объект, созданный для данной игры, детально описан выше.

Unblock1.PNG


5. mask — фоновая рамка, без текстуры и заливки, которая накладывается сверху на поле игры и стает непрозрачной при окончании игры, то есть блокирует действия на игровом поле.

Mask1.PNG

6. Файл уровней для данной программы:

Level 1.PNG

Готовый проект во вьювере

Viewer.PNG

Не забывайте задавать размеры и расположения объектам: кнопкам, рамкам, текстовым документам, так что бы после запуска они не перекрывали друг друга и картинка игры выглядела понятно и логично. Все графические ресурсы и базу текстовых ресурсов можно импортировать с тестового примера S:\!MOBILE\!!!EditorGames\Wiki_sample