Words

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск

Words — встроенный объект редактора, имеющий определенную игровую механику, которая заключается в том, чтобы собрать из букв слова за минимальное кол-во ходов, путем перестановки букв местами. При этом используются несколько словарей.

Правила

Поуровневая игра в слова. Необходимо собрать все слова с перепутанными буквами. Для обмена букв используется tap&tap или drag&drop. После того как все слова собраны, переходим на следующий уровень с повышенной сложностью.

Настройки игры


W-settings.jpg

файл уровней ( levels_file ) - путь к файлу содержащему уровни;
файл настройки очков ( scores_file ) - путь к файлу содержащему настройки очков (См. пункт "Очки и звезды");
номер уровня ( level_id ) - номер уровня из файла с уровнями ( min = 1);
тэг словаря ( lib_tag ) - уникальный номер словаря, словарь и его тэг указываются ниже в соотв поле.


Пример файла с описанием уровней:

<?xml version="1.0000" encoding="UTF-8"?>
<levels>
	<level id="1" w="5" h="5" moves="12">
		<field>
		  2, 2, 2, 2, 2,
		  0, 0, 0, 0, 0,
		  0, 5, 5, 5, 0,
		  0, 0, 0, 0, 0,
		  3, 3, 3, 3, 3,
		</field> 
	</level>

	<level id="2" w="5" h="5" moves="16">
		<field>
		  3, 3, 3, 3, 3,
		  0, 6, 0, 7, 0,
		  0, 6, 0, 7, 0,
		  0, 6, 0, 7, 0,
		  1, 1, 1, 1, 1
		</field> 
	</level>
	
	<level id="3" w="5" h="5" moves="20">
		<field>
		  1, 0, 3, 0, 7,
		  1, 2, 3, 4, 7,
		  1, 2, 3, 4, 7,
		  1, 2, 3, 4, 7,
		  1, 0, 3, 0, 7
		</field> 
	</level>
</levels>

Настройки шрифта


W-font.jpg

номер шрифта ( font_id ) - номер шрифта из app.icf;
размер шрифта ( font_size ) - размер шрифта, которым будут рисоваться буквы;
размер обводки ( border_size ) - размер обводки для буквы;
цвет шрифта ( font_color ) - базовый цвет шрифта, которым будут рисоваться буквы.
ячейка 1 ( cell1_color ) - цвет шрифта в ячейке 1, после правильно собранного слова;
ячейка 2 ( cell2_color ) - цвет шрифта в ячейке 2, после правильно собранного слова;
ячейка 3 ( cell3_color ) - цвет шрифта в ячейке 3, после правильно собранного слова;
ячейка 4 ( cell4_color ) - цвет шрифта в ячейке 4, после правильно собранного слова;
ячейка 5 ( cell5_color ) - цвет шрифта в ячейке 5, после правильно собранного слова;
ячейка 6 ( cell6_color ) - цвет шрифта в ячейке 6, после правильно собранного слова;
ячейка 7 ( cell7_color ) - цвет шрифта в ячейке 7, после правильно собранного слова;
ячейка 8 ( cell8_color ) - цвет шрифта в ячейке 8, после правильно собранного слова.


После того как слово собрано, все его буквы могут быть окрашены в уникальный цвет, в зависимости от типа ячейки.


Настройка анимации

машина букв ( mletter ) - Машина, которая анимирует буквы.

Машина должна обладать следующими состояниями обязательно!!!:

select - выделена буква(по завершению действий необходимо перейти в состояние "end";)
unselect - снято выделение с буквы(по завершению действий необходимо перейти в состояние "end");
drag - тянем букву;
swap - перемещается в другую ячейку буква(по завершению действий необходимо перейти в состояние "end");
end - конечное состояние

Примеры реализации состояний машины: Words anim mach par1.png Words anim mach par2.png

Настройки графики

W-graph.jpg
Для этой группы параметров мы указываем графический ресурс для отображения фоновой картинки каждой буквы:

ячейка 1 ( cell1 ) - графический ресурс для букв слова 1;
ячейка 2 ( cell2 ) - графический ресурс для букв слова 2;
ячейка 3 ( cell3 ) - графический ресурс для букв слова 3;
ячейка 4 ( cell4 ) - графический ресурс для букв слова 4;
ячейка 5 ( cell5 ) - графический ресурс для букв слова 5;
ячейка 6 ( cell6 ) - графический ресурс для букв слова 6;
ячейка 7 ( cell7 ) - графический ресурс для букв слова 7;
ячейка 8 ( cell8 ) - графический ресурс для букв слова 8.

Счетчики

ходы ( counter_moves ) - счетчик, выводящий оставшееся количество ходов;
очки ( counter_score ) - счетчик, выводящий текущие очки на уровне.


Настройки словарей


W-add-lib.jpg
W-lib.jpg

tag ( tag ) - уникальный номер словаря;
файл словаря ( path ) - путь к файлу словаря из которого будут браться слова.


Пример словарного файла:

<?xml version="1.0000" encoding="UTF-8"?>
<root>
	ADD
	ANT
	ARMY
	STEM
	ABOVE
	ACTOR
</root>


Добавляемые параметры

+.png Добавить словарь ( lib ), пример словарного файла:

tag ( tag ) - уникальный номер словаря;
файл словаря ( path ) - путь к файлу словаря из которого будут браться слова.


+.png машина полученных очков ( machine_add_score ) - добавить машинку для полученных очков (Должен содержать в себе каунтер):

машина ( mobj ) - машина, которая анимирует каунтер (Не должна содержать детей).;
каунтер ( cobj ) - каунтер, который анимируется машиной (Не может находится внутри машины);
время жизни ( time ) - максимальное время жизни для машинки.


+.png изменить состояние объекта при выигрыше ( wst ) - после разбора перевести объект в новое состояние:

объект ( obj ) - после разбора перевести объект в состояние из следующего поля;
состояние ( st ) - новое состояние для объекта из предыдущего поля.


+.png изменить состояние объекта при проигрыше ( lst ) - после разбора перевести объект в новое состояние:

объект ( obj ) - после разбора перевести объект в состояние из следующего поля;
состояние ( st ) - новое состояние для объекта из предыдущего поля.

Конец игры

При помощи добавляемых параметров мы можем перевести в другое состояние машину по окончанию уровня.


W-add-end.jpg


Очки и звезды

За каждое собранное слово даются очки в зависимости от длины слова. Если за 2(3,4,5...) хода собираются 2(3,4,5...) слова, то это считается серией. За серию дается больше очков (умножаются на коэффициент). Если за 1 ход собирается сразу два слова, то это считается комбо. За комбо дается xxx очков. Что бы настроить систему очков, можно указать объекту words xml файл. (См. Параметры игры)


Пример файла настроек очков:

<?xml version="1.0000" encoding="UTF-8"?>
<scores comboScore="2000" chainMultiple="1.5">
	<word id="3" score="200"/>
	<word id="4" score="300"/>
	<word id="5" score="500"/>
	<word id="6" score="600"/>
	<word id="7" score="700"/>
	<word id="8" score="800"/>
	<word id="9" score="900"/>
	<word id="10" score="1000"/>
</scores>


Звезды зависят от набранных очков. Настраивается значение для каждой звезды на уровне автоматом:

1 звезда = сумма стоимости каждого слова при не Perfect Solution;
2 звезды = стоимость 1 звезды * 2;
3 звезды = стоимость 2 звезды * 2.5.


Возможные ошибки

Приложение не запускается и всплывает окно error:

Words Error.png

Причины:

1) Скорее всего в состояниях машины анимации, вы не перешли в состояние end.
2) Некорректно назвали состояния в машине обработки анимации.
3) Не указана машина анимации.

Решение: правильно настроить машину обрабатывающую анимацию.

Некорректное отображение букв и фоновой графики букв:

Words No squere size.png

Причина:

Размеры объекта words не квадратные ( w!=h ).

Решение: ширина и высота объекта words должны быть равны.


Не прокликиваются кнопки которые ниже объекта words

Если в дереве проекта разместить кнопки выше объекта вордс, то их нажать мы не сможем так как создаётся маска подобная таблице, только размеры её больше и она во все стороны.

Решение: либо объекту вордс поставить прокликиваемость=2 или опустить ниже всех объектов которые мы можем тапнуть.

Состояния

Возможные состояния объекта:

clear - очистить поле;
restart - перезапустить игру;
hint_letter - поставить букву на место;
hint_word - поставить слово на место;
hint_correct - подсвечивает букву, если она поставлена в правильное место;



Для анимации букв используется выбранная машина состояний, которая должна иметь следующие состояния:

Состояния машины, которая отвечает за анимацию букв:

select - выделена буква(по завершению действий необходимо перейти в состояние "end";)
unselect - снято выделение с буквы(по завершению действий необходимо перейти в состояние "end");
drag - тянем букву;
swap - перемещается в другую ячейку буква(по завершению действий необходимо перейти в состояние "end");
end - конечное состояние

Все настройки прописанные в соответствующих состояниях применяются к выбранной букве. После действий указанных в состояниях select, unselect, swap необходимо переходить в состояние end.

Параметры которые хранит объект вордс

Считываем из объекта вордс:

result.score - набранные очки за последнюю игру;
result.stars - набранное количество звёзд за последнюю игру;
result.moves - оставшиеся ходы;
result.result - (0 - уровень ещё не закончен, 1 - победа, -1 - поражение);
result.level_id - номер уровня, значение равно значению level_id (1-n);


Настройка игрового объекта

Рассмотрим готовый проект, который состоит из четырех экранов и XML-файлов: levels — файл уровней; lg-ru, lg-en — словари игры; scores — описывает правила настройки очков.

File.png  Screen 1.png

1. Первый экран start состоит из фоновой картинки и кнопки (Button), которая по клику переходит на экран language.

Start.PNG   Click play.PNG


2. Второй экран language, являет собой страничку выбора языка игры и перехода на игровое поле.Экран состоит из двух сцен:

background:

  • w_bg (1) — фоновая картинка;
  • select (2) — рамка фона для выбора языка.

lang:

  • table (3) — таблица (Table), состоящая из двух колонок (видимая — одна); в таблице размещены два изображения: ru и en, соответственно русский и английский;
  • left, right (4) – кнопки, по клику меняют язык (изображение в table: ru или en) , соответственно с русского на английский, и наоборот;
  • abutton_cancel (5) — кнопка-отмена, переход на экран start;
  • play (6) — машина состояний (Machine), задает игре уровень, и по клику переходит на экран game.
Level lang.PNG  Lang.PNG
               Play.PNG


3. В экране game лежит вся механика игры. Рассмотрим его по сценам.

3.1. На сцене counter расположена фоновая картинка и счетчики (Counter): level (уровней), moves (ходов), score (очков) с соответствующими графическими ресурсами.

Game.PNG   Counter.PNG

3.2. В сцене game расположен сам игровой объект и три машины:

Game 1.PNG
  • first — присваивать игре язык, вытаскивает его из опций, присваивать первому уровню значение 1;
  • words_compleate — открывает сцену с результатами при успешном прохождении уровня;
  • mach_animation — машина анимации букв (рассмотрена выше);
  • объект words — задается графика, словарь, анимация перехода.
First.PNG
Win.PNG
Words 1.PNG   Words 2.PNG

3.3. На сцене buttons расположены вспомогательные кнопки и и машины перехода для считывания результатов и смены языка для текущего уровня:

Buttons1.PNG

Кнопки, каждой кнопки соответствует текст (Text):

  • clear — очищает игровое поле;
  • position — меняет расположение игрового объекта, после прохождения уровня;
  • hint_correct — подсвечивает букву, если она поставлена в правильное место;
  • hint_letter — ставит букву на правильное место;
  • restart — перезапуск игры;
  • hint_word — ставит слово на свое место.

Машины:

  • go_change_lang — про клику переводит на экран language, реализовывает смену языка для текущего уровня;
  • reload — по клику переводить на экран с результатом, и переходом на последующий уровень.
Lang 1.PNG   Reload.PNG

3.4. Сцена result отвечает за вывод результатов и прогресса

Машина WLC меняет прозрачность сцены

WLC.PNG
  • save_results — связывает результаты уровней и игры с счетчиками, и присваивает им значение;
  • next_level — по клику реализовывает переход на следующий уровень;
  • view_stars — по прохождению уровня, в зависимости от результата, меняет прогресс, то есть цвет звезд (от трех серых до трех золотых) объектам star1, star2, star3 (обязательно задаем размер).
Снимок.PNG
Save result.PNG
Next.PNG
Star1.PNG

Star2.PNG

Счетчики:

  • lavel_score — считает очки уровня;
  • total_score — считает очки игры.

4 Глобальный экран opt, содержит обьект option (Options), используется для хранения и управления глобальными параметрами приложения

Opt.PNG