Форум » Общие вопросы по WME » Мини-игры » Ответить

Мини-игры

Dionysius: Вопрос: Нужно сделать мини-игру в стиле пятнашек или мозайки, вопрос только каким образом это можно реализовать на WME. Ответ: Надо игрового персонажа не загружать. А для перетаскиваемых элементов задать интерактивность и обрабатывать нажатия кнопок мыши. На этом форуме есть тема "квест от первого лица" - http://wme.forum24.ru/?1-2-0-00000002-000-0-0-1183798905 Там описано, как отключить персонажа.

Ответов - 9

GodFather: Понимаешь я это сделал, мне просто нужен алгоритм создания игры в стиле пятнашек, и как его реализовать на движке. Я примерно знаю, что нужно создать массив и проверять условие, но как это сделать в WME?

Dionysius: Мои мысли по этому поводу: Создать поле, разбитое на 16 квадратных фрагментов. Каждый фрагмент является интерактивным объектом. Этому объекту назначим переменную, отвечающую за его состояние, к примеру, так: State = 0 - в ячейке нет фишки State = <число от 1 до 15> - в ячейке находится фишка с указанным номером. Далее, обрабатываем события мыши. Если объект-ячейка содержит фишку (State>0), тогда смотрим, есть ли рядом свободная ячейка (State=0). Как узнать, какие ячейки находятся "рядом"? Ну, к примеру, задать массив соответствий, т.е. для ячейки с номером 6 соседями будут 2-я, 5-я, 7-я и 10-я ячейки, если пронумеровать ячейки следующим образом: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ну и далее, если есть свободная ячейка, то ей задаём State=<номер фишки>, а исходной ячейке State=0. А затем отрисовываем фишки на поле соответствующим образом. Это моё решение задачи. Надеюсь, оно поможет тебе оттолкнуться в твоём творческом полёте ;)

Dionysius: P.S. Ну и, конечно, после каждого хода делать проверку того, как расставлены фишки. Если номера всех ячеек соответствуют номерам фишек, значит, пользователь выиграл :)


GodFather: Можешь немного поподробнее объяснить, желательно с примером кода.

Dionysius: Спрашивай, какой момент тебе не понятен?

GodFather: Вообщем я так понял нужно создать 16 "region new entity", потом 16 мини-картинок и проверять условия. Это понятно. Но я не могу понять как сделать проверку и передвижение на WME. Как передвигать эти объекты в зависимости свободна ячейка или нет. Если тебе не трудно и ты знаешь как это сделать, то напиши по действиям как это делается на движке, а то че-то до меня не доходит

Dionysius: Region entity, если не ошибаюсь, тут не годится. Нужен Free entity, которому можно программно менять картинку (спрайт). Проименуй все 16 объектов как-нибудь так: fifteen1, fifteen2, ... fifteen16. И создай массив: fifteen[1] = <число> ... fifteen[15] = <число>. Числа расставляются случайным образом. Соотвественным образом и картинки расставь (они должны соответствовать числам в массиве). Посмотри в доках, там должна быть функция, которая меняет спрайт у объекта (entity). Потом задай двумерный массив соответсвий, например, compare[1][] = 2; compare[1][] = 5; Это значит, что у первой ячейки два соседа - 2-я и 5-я. При клике на entity с названием fifteen1 смотрим, чему равны fifteen[2] и fifteen[5]. К примеру, fifteen[5] = 0, а fifteen[1] = 3. Значит, надо фишку с номером 3 передвинуть из 1-ой ячейки в 5-ю. Присваиваем fifteen[5] = 3, а fifteen[1] = 0. А объекту fifteen5 меняем спрайт на картинку фишки с тройкой, объекту fifteen1 на картинку "пустое место". Кстати, можно, пожалуй, свойство какое-нибудь ввести у каждого из объектов entity и не задуряться с массивом. Я это всё на ходу придумываю, тут просто нужно обладать хоть какими-нибудь программерскими навыками. Почитай в конце концов какую-нибудь книженцию по программированию, погугли что-то вроде "программный алгоритм игры пятнашки", "программирование паззлов".

Maxim: А муне вопрос про чемодан с кодовым замком или про отмычки чтобы открыть замок как реализовать такие пазлы

Maxim: 11



полная версия страницы