Как стать автором
Обновить

Комментарии 53

по клавише М не открывается карта
по клавише Р появляется черный кружок (видимо рука?), но при шаге вперед — пропадает. Рука остается на тех точках, где вызывалась.

IceWeasel 3.5.5

помню был такой лабиринт, только анимированный еще, эмулировали настоящее 3D на javascript. Вот к примеру Wolf:
www.nihilogic.dk/labs/wolf/
надо сказать довольно шустренько бегает, если с разрешением не загибать.
вы смотрите старую версию. я переписываю её с нуля в силу того, что набрал намного больше опыта.
карта открывается если активировать «Читер-мод»
Р ­— это метка. вы ставите метку, если хотите отметить, что вы тут были

молодец! понравилось!

а вот этот участок кода надо побольше «обфусцировать»:

    if (!confirm('Вы уверены, что хотите активировать "Читер мод"?')) return false;
    if(window.prompt('Нужен пароль') != 1) return false; // <<<<<<

А то легко подсмотреть пароль к четер-моду ;)
у меня не было цели скрыть возможность читерства. я, как минимум, мог бы поставить md5 от пароля =)
омг, когда у меня спросило пароль, я автоматически поставил 1 и подумал что он принимает любой пароль =))
однако в старой версии плавные повороты есть, а тут не понятно, куда идешь
> www.nihilogic.dk/labs/wolf/
это канвас. как минимум не так кроссбраузерно. и вообще — другие цели=)
Вы уж простите за замечание, но перед тем, как комментировать — желательно знать про что идется в топике. Хотя бы один раз прочитать. Благо, он не такой большой.
Я тоже вначале так подумал, но не все так просто:)
this.map = function(d) {
var map = document.getElementById('all');
if(cheater){
if (d && map.style.display != 'block') map.style.display = 'block';
else map.style.display = 'none';
}
}


И, собственно, сам код:
if (!confirm('Вы уверены, что хотите активировать «Читер мод»?')) return false;
if(window.prompt('Нужен пароль') != 1) return false;


Вот так.
Супер, жалко только, что нет плавного перехода между кадрами!
Поддерживаю, хотя бы пару промежуточных кадров вставить. Думаю их разновидностей не так много.
защита от читерства классная конечно :-D
(блин, вы же просили не смотреть сорцы:)
Читерство не понадобится если просто пользоваться правилом правой руки))
Выберем одно из направлений — либо правое либо левое. например выбрали правое. Начинаем идти держась правой стороны. как только справа появляется проход поворачиваем туда. как только упираемся в тупик просто разворачиваемся и опять идем по правой стороне.
так можно выйти из любого лабиринта даже закрытыми глазами. просто вытянув руку и держась одной из сторон
НЛО прилетело и опубликовало эту надпись здесь
>Не совсем так!
то что вы описали чем то отличается от того что описывал я?
НЛО прилетело и опубликовало эту надпись здесь
эх… пока рисовал Вы опередили =(
вперед



когда крутиться надоест — поймете что правило работает далеко не всегда. Столкнулся с этим, когда писал искусственный интеллект для бота прохождения лабиринта в маленькой 2D игрушке.
то что такие случаи есть я знаю. но в игрушках как правило ставят классические лабиринты. а во всяких аттракционах — где люди в реале пытаются найти выход — так всегда классические.
Еще в дествте узнал этот алгоритм — и сильно удивлялся когда смотрел экранизацию «Трое в лодке не считая собаки». Вроде бы куча народу — вроде бы неглупых — и никто не знал как выйти))
им по сценарию не положено было. А в классических лабиринтах такие колонны тоже встречаются не редко
к классическом лабиринте вы по определению не попадете на колонну. в классическом вы будете идти вдоль стен
НЛО прилетело и опубликовало эту надпись здесь
В правильной формулировке правило гарантирует не выход из лабиринта, а возврат в исходную точку. В таком виде оно работает всегда.
а если вы взялись за колонну посреди лабиринта и нарезаете круги вокруг нее?
У лабиринта есть вход. так что случаи когда марисне закинули вас в центр лабиринта — стерев память — я не рассматрию))
как правило, в роли марсиан выступают разработчики игры.
Ой. Пока я рисовал эту чудную картинку, нашлось рисовальщиков быстрых более.
Не всегда. Если всё время держатся правой стороны, то можно начать ходить по кругу. Например, если взялся за «колонну» и ходишь вокруг неё.
Таким способом можно выбраться далеко не из любого лабиринта =)
А только из того, в котором стены, грубо говоря, представляют из себя единый неразрывный контур. Если где-то есть участок, своими стенами не касающийся стен окружающего его лабиринта — то по правилу правой руки вы пройдете мимо него.
Для таких лабиринтов есть другое правило. Не вспомню на вскидку как оно называется, но его суть сводится к выставлению отметок (камешков) на развилках.
Красиво! Напоминает Eye of Beholder и подобные винтажные RPG :) Нет в планах создания чего-то подобного? Механика-то простая, а долгие часы получения удовольствия достигаются легко :)
Да, именно Eye of Beholder напоминает это перемещение по лабиринту, в котором ходьба идёт по клеткам и мгновенно (а не вкось и шагами, как в играх id Software).

Eye of Beholder был особенно ужасен дырками в полу, через которые персонажи игрока неожиданно проваливались в незнакомое место более нижнего этажа лабиринта, притом кишащего ядовитыми пауками или вообще птицеголовыми магами.

Помню, ещё там были надписи на стенах, нанесённые расовой письменностью карликов или орков, так что команду приходилося подбирать многорасовою.
Еще странно было наблюдать за играющими в него — эдакое слайд-шоу, т.е. непонятно куда человек вообще идет
клевая игрушка была.
не сомневайтесь, я знаю что такое канвас и даже писал на нём небольшие игрушки.
но это канвас, а не чистый ДОМ, что есть большая разница.
Вы не удосужились перейти по ссылке и вникнуть в мой комментарий.

во-первых, по ссылке Вы найдете решение БЕЗ канваса
во-вторых, я ни в коем случае не сомневался в Вашем знакомстве с канвасом, я более намекал на использование технологии «распространения лучей»
Правая рука конечно выручает во многих ситуациях, но дискуссия помоему не о том. Если занятся всерьез, довести до играбельного вида, добавить социалку, РПГ элементы и т.п. можно прилично на заработать.
НЛО прилетело и опубликовало эту надпись здесь
3D лабиринт жудко напомнил мне игру Legacy для Windows Moblie. На первый взгляд треть работы по портированию уже сделана. )
Писал как-то лабиринт от первого лица на WinAPI и чистом Си(по требованию препода). Рендерилось это не очень быстро. Также повороты только влево и вправо. Заместо пола и потолка было просто нечто серое(надо было, как у вас картинку зафигачить). Пришлось ограничить макс. скорость движения и поворота. Правда я не особо парился. Сомневаюсь, что у вас получится реализовать плавный поворот, а если и получится, то это будет нечто очень хитрое и черезчур сложное именно для данной задачи.
Посмотрел, выглядит неплохо http://devfiles.myopera.com/articles/580/3d_texture.htm. Но если вы сделаете размер картинки побольше и самое главное прикрутите освещение, то тормозить будет очень заметно. Даже в том варианте по ссылке оно тормозит. В моей курсовой лабиринт без освещения рендерился очень быстро.
Вы сравниваете javascript лабиринт на DOM и C реализации по скорости рендеринга? :)

для тех масштабов, которые нужны здесь и сейчас, примера выше достаточно
Я говорю, что реализовать плавный поворот и с тенями так просто не получится. Если у вас конечно не будет картинка ещё меньше, чем в приведенном примере или стены совсем маленькие(рендеринг в данном случае неслабо зависит от высоты стен). При повороте вы будете видеть, как поколоночно отрисовываются стенки и ускорить этот процесс будет сложно.
когда-то я делал вульф без canvas. работает достаточно шустро:
zame-dev.org/pub/wolf3d/
(и на хабре писал об этом :)
как вы сделали это без канвы?
реализация никуда не годится, нет плавности движения, поворотов — вместо этого какие-то рывки.

элементарный туториал от мозиллы выглядит куда изящнее
https://developer.mozilla.org/En/A_Basic_RayCaster

код не блещет глубиной познаний и заявленным «опытом»

чтобы не смешить собственные тапкм учитесь у nihilogic'а и, пожалуйста, используйте canvas.
webgl уже на подходе а тут каменный век

1 ур. — 1 мин. 40 сек.
2 ур. — 2 мин. 78 сек.
Проходил по правилу правой руки, особо не торопясь.
В принципе ничего сложного.

Сама реализация довольно удивила. Да и скрипт небольшой.
> 2 ур. — 2 мин. 78 сек.
ничего себе. если баг, то надо править

1-2 уровни — достаточно примитивны.
НЛО прилетело и опубликовало эту надпись здесь
гм… интересненько, надо как-то сесть написать свою игрушку написать :)
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории