Добрый день Нужно сделать чтобы главный объект передвигался по клеточкам Excel с помощью стрелок, с учетом препятствий и объектов взаимодейтвия Суть проекта сделать 2Д рпг в excel, на одном листе рисуется графическая карта (цифры), где например 1 - это стена, 2 - дерево, 3 - камни (на эти цифры натягиваются картинки) и на них наш персанаж не может перемещаться. Суть такова - при нажатии стрелки сначало проверяется соседняя ячейка относительно нашего главного объекта, потом если это не 1 или 2 или 3, то перемещает главный объект в эту ячейку. А если к примеру цифра пять в ячейке (сердечко, добавляет жизнь) куда перемещается главый объект, то в ячейку добавляется например +2 в определенную ячейку.
Если не заморачиваться с отловом нажатий клавиш, то можно написать простую проверку ячейки по событию выделения: если 1,2,3 - возврат на предыдущую (ссылка хранится в глобальной переменной), иначе - выделение разрешить.
Влад, Спасибо, супер! Единственное что, сделать бы так что-бы мышкой нельзя было переключить на другую ячейку (а то телепорт получается) И если может знаете как сделать чтобы вместо курсора ходил герой (картинка)
"Лабиринт 1" и "Лабиринт 2" я делал для своих знакомых, поэтому закрыл проект от просмотра во избежание жульничества. Я поищу на днях исходники без пароля, вроде где-то должны были остаться. Если не найду - могу воспроизвести отдельно. Сейчас могу описать логику в целом, как я её помню.
На скрытом листе у меня отрисована карта. Цифрами помечены разные объекты: например, 0 - поле, по которому можно свободно передвигаться; 1 - непроходимая стена, 2 - объект, запускающий то или иное событие. Координаты персонажа X и Y хранятся в отдельных двух ячейках.
При активации книги срабатывает "Application.OnKey", который даёт управление WASD клавишам. Когда книга перестаёт быть активна - управление сбрасывается. При нажатии любой из WASD клавиш к координатам положения героя добавляется соответствующая цифра. Т.е. при нажатии W (вверх во многих играх) от координаты Y (оно же номер строки) отнимаем единицу. Проверяется, какой маркер объекта находится в ячейке предполагаемого хода. Если 0 - то изменяем координаты персонажа. Если 1 - то прерываем процедуру хода. Если 2 - то выбираем нужное событие из списка.
На листе, доступном игроку, формулами подтягиваются цифры объектов вокруг центральной точки персонажа. Н/Д от края карты через ЕСЛИОШИБКА заменяется на, например, 1. Для ячеек устанавливается числовой формат-невидимка ";;", чтобы ничего лишнее не отвлекало игрока. Условным форматированием ячейки, в зависимости от цифры объекта, окрашиваются в соответствующий цвет. Доступные для хода ячейки - в белый, событийные ячейки - в фиолетовый, стены и "Туман Войны" в чёрный. Кстати, "Туман Войны" реализован через изменение значений ходовых ячеек с 0 на 8.
Надеюсь, этого пока будет достаточно. Как человек, неравнодушный к игровым проектам, желаю успехов и, если Ваша идея хороша собой, готов поучаствовать =)
Rioran, Вот это именно то что нужно, если есть возможность то дайте код, я сам не напишу скорее всего, хотя попробую, не получится буду обращаться в платный раздел Я только начал проект, если получится, и будет сделанно хотябы основа, я с удовольствием с вами посотрудничаю. Так как тут есть перспективы, о которых позже и расскажу)