Страницы: 1
RSS
Движение объекта стрелками с учетом препятствий, Перемищение объекта по ячейкам с учетом препядствий установленных цифрами
 
Добрый день
Нужно сделать чтобы главный объект передвигался по клеточкам Excel с помощью стрелок, с учетом препятствий и объектов взаимодейтвия
Суть проекта сделать 2Д рпг в excel, на одном листе рисуется графическая карта (цифры), где например 1 - это стена, 2 - дерево, 3 - камни (на эти цифры натягиваются картинки) и на них наш персанаж не может перемещаться.
Суть такова - при нажатии стрелки сначало проверяется соседняя ячейка относительно нашего главного объекта, потом если это не 1 или 2 или 3, то перемещает главный объект в эту ячейку. А если к примеру цифра пять в ячейке (сердечко, добавляет жизнь) куда перемещается главый объект, то в ячейку добавляется например +2 в определенную ячейку.
Изменено: Castle - 17.09.2015 16:52:32
 
Если не заморачиваться с отловом нажатий клавиш, то можно написать простую проверку ячейки по событию выделения: если 1,2,3 - возврат на предыдущую (ссылка хранится в глобальной переменной), иначе - выделение разрешить.
 
Влад,Помогите написать код, пример
 
Castle, файл-пример. За Вас рисовать карту - лень.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,Прикрепил
 
Пример
 
Влад, спасибо за интересный пример.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Влад, Спасибо, супер!
Единственное что, сделать бы так что-бы мышкой нельзя было переключить на другую ячейку (а то телепорт получается)
И если может знаете как сделать чтобы вместо курсора ходил герой (картинка)
 
Цитата
Castle написал: сделать бы так что-бы мышкой нельзя было переключить на другую ячейку
Создайте новую тему.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=69701&TITLE_SEO=69701-zapret-...
Создал тему
 
Вот здесь есть реализация "игры Лабиринт", код закрыт, но думаю что автор поделится информацией, как он реализовал управление стрелками.
 
MCH, Да, спасибо, это то что нужно, главное что бы теперь автор открыл код
Изменено: Castle - 18.09.2015 10:51:10
 
Castle, здравствуйте.

"Лабиринт 1" и "Лабиринт 2" я делал для своих знакомых, поэтому закрыл проект от просмотра во избежание жульничества. Я поищу на днях исходники без пароля, вроде где-то должны были остаться. Если не найду - могу воспроизвести отдельно. Сейчас могу описать логику в целом, как я её помню.

На скрытом листе у меня отрисована карта. Цифрами помечены разные объекты: например, 0 - поле, по которому можно свободно передвигаться; 1 - непроходимая стена, 2 - объект, запускающий то или иное событие. Координаты персонажа X и Y хранятся в отдельных двух ячейках.

При активации книги срабатывает "Application.OnKey", который даёт управление WASD клавишам. Когда книга перестаёт быть активна - управление сбрасывается. При нажатии любой из WASD клавиш к координатам положения героя добавляется соответствующая цифра. Т.е. при нажатии W (вверх во многих играх) от координаты Y (оно же номер строки) отнимаем единицу. Проверяется, какой маркер объекта находится в ячейке предполагаемого хода. Если 0 - то изменяем координаты персонажа. Если 1 - то прерываем процедуру хода. Если 2 - то выбираем нужное событие из списка.

На листе, доступном игроку, формулами подтягиваются цифры объектов вокруг центральной точки персонажа. Н/Д от края карты через ЕСЛИОШИБКА заменяется на, например, 1. Для ячеек устанавливается числовой формат-невидимка ";;", чтобы ничего лишнее не отвлекало игрока. Условным форматированием ячейки, в зависимости от цифры объекта, окрашиваются в соответствующий цвет. Доступные для хода ячейки - в белый, событийные ячейки - в фиолетовый, стены и "Туман Войны" в чёрный. Кстати, "Туман Войны" реализован через изменение значений ходовых ячеек с 0 на 8.

Надеюсь, этого пока будет достаточно. Как человек, неравнодушный к игровым проектам, желаю успехов и, если Ваша идея хороша собой, готов поучаствовать =)
Изменено: Rioran - 18.09.2015 14:44:34 (Добавление ссылок.)
 
Rioran, Вот это именно то что нужно, если есть возможность то дайте код, я сам не напишу скорее всего, хотя попробую, не получится буду обращаться в платный раздел
Я только начал проект, если получится, и будет сделанно хотябы основа, я с удовольствием с вами посотрудничаю. Так как тут есть перспективы, о которых позже и расскажу)
 
Файл великоват. Архивом передать не получается.
 
Роман Воронов,На файлообменник не получается залить? На яндекс диск или еще какой-нибудь
Страницы: 1
Наверх