Комментарии 53
по клавише М не открывается карта
по клавише Р появляется черный кружок (видимо рука?), но при шаге вперед — пропадает. Рука остается на тех точках, где вызывалась.
IceWeasel 3.5.5
помню был такой лабиринт, только анимированный еще, эмулировали настоящее 3D на javascript. Вот к примеру Wolf:
www.nihilogic.dk/labs/wolf/
надо сказать довольно шустренько бегает, если с разрешением не загибать.
по клавише Р появляется черный кружок (видимо рука?), но при шаге вперед — пропадает. Рука остается на тех точках, где вызывалась.
IceWeasel 3.5.5
помню был такой лабиринт, только анимированный еще, эмулировали настоящее 3D на javascript. Вот к примеру Wolf:
www.nihilogic.dk/labs/wolf/
надо сказать довольно шустренько бегает, если с разрешением не загибать.
вы смотрите старую версию. я переписываю её с нуля в силу того, что набрал намного больше опыта.
карта открывается если активировать «Читер-мод»
Р — это метка. вы ставите метку, если хотите отметить, что вы тут были
карта открывается если активировать «Читер-мод»
Р — это метка. вы ставите метку, если хотите отметить, что вы тут были
молодец! понравилось!
а вот этот участок кода надо побольше «обфусцировать»:
А то легко подсмотреть пароль к четер-моду ;)
а вот этот участок кода надо побольше «обфусцировать»:
if (!confirm('Вы уверены, что хотите активировать "Читер мод"?')) return false; if(window.prompt('Нужен пароль') != 1) return false; // <<<<<<
А то легко подсмотреть пароль к четер-моду ;)
однако в старой версии плавные повороты есть, а тут не понятно, куда идешь
> 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 игрушке.

когда крутиться надоест — поймете что правило работает далеко не всегда. Столкнулся с этим, когда писал искусственный интеллект для бота прохождения лабиринта в маленькой 2D игрушке.
то что такие случаи есть я знаю. но в игрушках как правило ставят классические лабиринты. а во всяких аттракционах — где люди в реале пытаются найти выход — так всегда классические.
Еще в дествте узнал этот алгоритм — и сильно удивлялся когда смотрел экранизацию «Трое в лодке не считая собаки». Вроде бы куча народу — вроде бы неглупых — и никто не знал как выйти))
Еще в дествте узнал этот алгоритм — и сильно удивлялся когда смотрел экранизацию «Трое в лодке не считая собаки». Вроде бы куча народу — вроде бы неглупых — и никто не знал как выйти))
В правильной формулировке правило гарантирует не выход из лабиринта, а возврат в исходную точку. В таком виде оно работает всегда.
а если вы взялись за колонну посреди лабиринта и нарезаете круги вокруг нее?
Попробуйте выбраться из такого лабиринта :)
Ой. Пока я рисовал эту чудную картинку, нашлось рисовальщиков быстрых более.
Не всегда. Если всё время держатся правой стороны, то можно начать ходить по кругу. Например, если взялся за «колонну» и ходишь вокруг неё.
Таким способом можно выбраться далеко не из любого лабиринта =)
А только из того, в котором стены, грубо говоря, представляют из себя единый неразрывный контур. Если где-то есть участок, своими стенами не касающийся стен окружающего его лабиринта — то по правилу правой руки вы пройдете мимо него.
Для таких лабиринтов есть другое правило. Не вспомню на вскидку как оно называется, но его суть сводится к выставлению отметок (камешков) на развилках.
А только из того, в котором стены, грубо говоря, представляют из себя единый неразрывный контур. Если где-то есть участок, своими стенами не касающийся стен окружающего его лабиринта — то по правилу правой руки вы пройдете мимо него.
Для таких лабиринтов есть другое правило. Не вспомню на вскидку как оно называется, но его суть сводится к выставлению отметок (камешков) на развилках.
Красиво! Напоминает Eye of Beholder и подобные винтажные RPG :) Нет в планах создания чего-то подобного? Механика-то простая, а долгие часы получения удовольствия достигаются легко :)
Да, именно Eye of Beholder напоминает это перемещение по лабиринту, в котором ходьба идёт по клеткам и мгновенно (а не вкось и шагами, как в играх id Software).
Eye of Beholder был особенно ужасен дырками в полу, через которые персонажи игрока неожиданно проваливались в незнакомое место более нижнего этажа лабиринта, притом кишащего ядовитыми пауками или вообще птицеголовыми магами.
Помню, ещё там были надписи на стенах, нанесённые расовой письменностью карликов или орков, так что команду приходилося подбирать многорасовою.
Eye of Beholder был особенно ужасен дырками в полу, через которые персонажи игрока неожиданно проваливались в незнакомое место более нижнего этажа лабиринта, притом кишащего ядовитыми пауками или вообще птицеголовыми магами.
Помню, ещё там были надписи на стенах, нанесённые расовой письменностью карликов или орков, так что команду приходилося подбирать многорасовою.
dev.opera.com/articles/view/creating-pseudo-3d-games-with-html-5-can-1/ и там же ссылка на вторую статью
реализация на канвасе и чистом DOM с применением raycasting технологии, которая так же описана там же с примерами и пр.
реализация на канвасе и чистом DOM с применением raycasting технологии, которая так же описана там же с примерами и пр.
не сомневайтесь, я знаю что такое канвас и даже писал на нём небольшие игрушки.
но это канвас, а не чистый ДОМ, что есть большая разница.
но это канвас, а не чистый ДОМ, что есть большая разница.
Правая рука конечно выручает во многих ситуациях, но дискуссия помоему не о том. Если занятся всерьез, довести до играбельного вида, добавить социалку, РПГ элементы и т.п. можно прилично на заработать.
3D лабиринт жудко напомнил мне игру Legacy для Windows Moblie. На первый взгляд треть работы по портированию уже сделана. )
Писал как-то лабиринт от первого лица на WinAPI и чистом Си(по требованию препода). Рендерилось это не очень быстро. Также повороты только влево и вправо. Заместо пола и потолка было просто нечто серое(надо было, как у вас картинку зафигачить). Пришлось ограничить макс. скорость движения и поворота. Правда я не особо парился. Сомневаюсь, что у вас получится реализовать плавный поворот, а если и получится, то это будет нечто очень хитрое и черезчур сложное именно для данной задачи.
плавный поворот реализуется очень даже просто. см в линке в каменте
Посмотрел, выглядит неплохо http://devfiles.myopera.com/articles/580/3d_texture.htm. Но если вы сделаете размер картинки побольше и самое главное прикрутите освещение, то тормозить будет очень заметно. Даже в том варианте по ссылке оно тормозит. В моей курсовой лабиринт без освещения рендерился очень быстро.
Вы сравниваете javascript лабиринт на DOM и C реализации по скорости рендеринга? :)
для тех масштабов, которые нужны здесь и сейчас, примера выше достаточно
для тех масштабов, которые нужны здесь и сейчас, примера выше достаточно
Я говорю, что реализовать плавный поворот и с тенями так просто не получится. Если у вас конечно не будет картинка ещё меньше, чем в приведенном примере или стены совсем маленькие(рендеринг в данном случае неслабо зависит от высоты стен). При повороте вы будете видеть, как поколоночно отрисовываются стенки и ускорить этот процесс будет сложно.
когда-то я делал вульф без canvas. работает достаточно шустро:
zame-dev.org/pub/wolf3d/
(и на хабре писал об этом :)
zame-dev.org/pub/wolf3d/
(и на хабре писал об этом :)
как вы сделали это без канвы?
посредством css-спрайтов (тут подробнее — habrahabr.ru/blogs/webdev/25025/)
реализация никуда не годится, нет плавности движения, поворотов — вместо этого какие-то рывки.
элементарный туториал от мозиллы выглядит куда изящнее
https://developer.mozilla.org/En/A_Basic_RayCaster
код не блещет глубиной познаний и заявленным «опытом»
чтобы не смешить собственные тапкм учитесь у nihilogic'а и, пожалуйста, используйте canvas.
webgl уже на подходе а тут каменный век
элементарный туториал от мозиллы выглядит куда изящнее
https://developer.mozilla.org/En/A_Basic_RayCaster
код не блещет глубиной познаний и заявленным «опытом»
чтобы не смешить собственные тапкм учитесь у nihilogic'а и, пожалуйста, используйте canvas.
webgl уже на подходе а тут каменный век
1 ур. — 1 мин. 40 сек.
2 ур. — 2 мин. 78 сек.
Проходил по правилу правой руки, особо не торопясь.
В принципе ничего сложного.
Сама реализация довольно удивила. Да и скрипт небольшой.
2 ур. — 2 мин. 78 сек.
Проходил по правилу правой руки, особо не торопясь.
В принципе ничего сложного.
Сама реализация довольно удивила. Да и скрипт небольшой.
гм… интересненько, надо как-то сесть написать свою игрушку написать :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Javascript Pseudo-3d Game