Comments 101
месье знает толк в извращениях.
+16
BFG 9000, предусмотрено?
Алсо, добавьте зеленых титизенов…
Алсо, добавьте зеленых титизенов…
+7
прикольно, значительно лучше, чем в прошлый раз. При ходьбе обнаружил, что можно защелкать анимацию, если быстро нажимать вперед. Ну и, конечно, хотелось бы видеть просто плавное движение.
0
При ходьбе обнаружил, что можно защелкать анимацию, если быстро нажимать вперед.Это специально предусмотренное действие. Причин несколько:
1. Позволяет преодолевать длинные коридоры, не надо ждать окончания анимации
2. Если анимация вдруг заглючит — её можно сбросить
Unit.prototype.rcFrameRender = function (fn) { if (this.rcInterval) { clearInterval(this.rcInterval); } if (fn) { this.rcInterval = setInterval(fn, 1000/this.maze.cfg.fps); } return this; }
0
Первая мысль — Wolfenstain 3D
ru.wikipedia.org/wiki/Wolfenstein_3D
ru.wikipedia.org/wiki/Wolfenstein_3D
0
первая мысль ScreenSaver Win 95
+21
ага. добавил в топик заметку про него. на самом деле большинство примеров Канвас — именно попытка повторить Wolf3d
0
Опера 10.5 в режиме канвы догоняет хрома, а в режиме HTML оставляет всех позади.
0
if (!confirm('Вы уверены, что хотите активировать «Читер мод»?')) return false;
if(window.prompt('Нужен пароль') != 1) return false;
:)
if(window.prompt('Нужен пароль') != 1) return false;
:)
0
Жаль, что мы в разных странах. Я бы предложил вам работу.
0
Засмотрелся на надписи, заблудился %)
+1
А где монстры?
+1
Я пятнадцать лет назад такую игру делал на паскале, прочитав книжку А. ЛаМота об играх. Подросло новое поколение и делает то же самое новыми средствами. Впрочем, это и есть технический прогресс — спиралевидное аккумулирование маразма )))
-5
Вы действительно не замечаете различие между тем, что вы делали на паскале, и тем, что сделал TheShock?
-5
А что? Есть какое-то офигенное различие? Может с годами математика поменялась, а мужики-то не знают?
+3
Раздница — ЛаМот хорошо описал оптимизацию, которую могли использовать создатели игр.
Можно ускорить этот лабиринт в 2 раза по производительности, если немного разобраться с технологиями, которые использует браузер для рендеринга. :)
Можно ускорить этот лабиринт в 2 раза по производительности, если немного разобраться с технологиями, которые использует браузер для рендеринга. :)
0
можно и раз в 10, наверное. Только лучше пусть такой оптимизацией браузеры занимаются — оптимизируешь полгода под Opera 10.50, а выходит 10.70, которая шлет твою оптимизацию куда подальше и работает еще медленнее :)
+1
Звучит как: я тут код написал, но он работает медленно на 4х ядерном Core i7, на AMD чуть быстрее, но… оптимизировать я не буду — пусть этим разработчики процессоров занимаются…
0
неа. Разработчики компиляторов (они этим и занимаются, кстати). Вы же не асме пишете, я надеюсь? :)
-2
Приведу пример:
for( i=0; i<func(n); i++)…
…
k = func(n);
for( i=0; i<k; i++)…
от компилятора скорость никак не зависит…
Оптимизация в первую очередь идёт ПОД компилятор/процессор/браузер… А разработчики браузеров вам всего-лишь предоставляют возможности по оптимизации, которыми вы можете пользоваться, если знаете, умеете и желаете.
for( i=0; i<func(n); i++)…
…
k = func(n);
for( i=0; i<k; i++)…
от компилятора скорость никак не зависит…
Оптимизация в первую очередь идёт ПОД компилятор/процессор/браузер… А разработчики браузеров вам всего-лишь предоставляют возможности по оптимизации, которыми вы можете пользоваться, если знаете, умеете и желаете.
0
Мы с Вами говорим о разных вещах. Но на уровне браузера, кстати, приведенный код тоже можно оптимизировать. И у меня подозрение, что Chrome/Opera уже это делают.
Одно дело, когда речь идет об оптимизации стандартных конструкций — тут больше зависит от самого разработчика. Другое дело — когда о оптимизации под платформу (IE, Firefox, Opera, Safari). Здесь же от разработчика ничего не должно зависеть — платформа должна максимально под него подстраиваться. Это не означает, что нужно писать как попало — это означает, что не нужно предпринимать дополнитеьных приседаний там, где они излишни.
Одно дело, когда речь идет об оптимизации стандартных конструкций — тут больше зависит от самого разработчика. Другое дело — когда о оптимизации под платформу (IE, Firefox, Opera, Safari). Здесь же от разработчика ничего не должно зависеть — платформа должна максимально под него подстраиваться. Это не означает, что нужно писать как попало — это означает, что не нужно предпринимать дополнитеьных приседаний там, где они излишни.
0
Если разработчик идиот — то и код будет тормозить, как-бы платформа (браузер) не подстраивалась…
Если вы говорите о гонках скорости интерпретатора JS, то я говорю о том, что вне зависимости от скорости выполнения — есть рекомендации, с помощью которых можно ускорить процесс выполнения программы.
Пример — в PHP ++$i работает быстрее, чем $i++ ;)
Если вы говорите о гонках скорости интерпретатора JS, то я говорю о том, что вне зависимости от скорости выполнения — есть рекомендации, с помощью которых можно ускорить процесс выполнения программы.
Пример — в PHP ++$i работает быстрее, чем $i++ ;)
0
p.s.s. писал на 3D движок асме лет 12 назад ;)
0
Автору респект!
+2
По возможности — добавьте стрейф. Для «лабиринтов» очень полезен.
+3
А что такое «Шпилить!»? :)
0
Ахтунг! Дас киндер дер шуле нихт шпаренгеен!
+3
про старенький проц улыбнуло
+1
UFO just landed and posted this here
From freecr.ru/maze/js.php:
))
if ($.browser.opera) {
// Opera sux?
$('table.map').appendTo('body');
}
))
+5
Странный момент. Интересно, что там не так?
0
впервые проявилось еще в Stage1. Опера не хочет динамически менять стиль границ у таблицы. Таким образом в редакторе карт хотя фактически границы рисуются, но опера их не отображает. Приходится забирать эту таблицу и ставить на ее место её же. Тогда она перерисует её всю. Закомментируйте эту строку и попробуйте поредактировать карту в опере)
+2
Добейтесь абсолютной плавности и производительности во всех современных стандартных браузерах. Если это невозможно, тогда бросайте заниматься идиотизмом. А если уж так хочется писать трехмерные игры, изучайте DirectX.
-12
Если человек сам написал рендерер, то понять D3D для него вряд ли составит какую-то сложность. Обратное верно далеко не всегда.
+2
Возможно и так. Но пока мне кажется, что автор просто ставит перед собой неправильные цели.
В мое время многие даже еще в школе баловались и писали на паскале трехмерные игры. Считаете ли вы рисование 3d родными средствами паскаля (через канву и тому подобное, без сторонних библиотек D3D и OpenGL) осмысленным действом? Нет, это просто детское стремление написать игру с помощью тех инструментов, которыми научились пользоваться. Конечно, это поднимает опыт начинающему программисту. Опытному программисту заниматься этим глупо.
В мое время многие даже еще в школе баловались и писали на паскале трехмерные игры. Считаете ли вы рисование 3d родными средствами паскаля (через канву и тому подобное, без сторонних библиотек D3D и OpenGL) осмысленным действом? Нет, это просто детское стремление написать игру с помощью тех инструментов, которыми научились пользоваться. Конечно, это поднимает опыт начинающему программисту. Опытному программисту заниматься этим глупо.
-1
Автору респект и уважуха
0
Используется трассировка или растеризация?
0
интересно, чем они отличаются в контексте Canvas?
0
Родных средств для построения 3D сцен в Canvas, насколько мне известно, нет, — только работа с обычными битмапами. Поэтому или использовать отдельные либы, или писать визуализацию руками. Тут и встаёт вопрос, какой метод использовать, первый или второй.
Судя по таким комментам в коде:
возможно, трассировка. Автор молчит по этому поводу…
Судя по таким комментам в коде:
// ./lib/rayCaster/unit.js
возможно, трассировка. Автор молчит по этому поводу…
0
Мда, просто супер. Сколько примерно дней потратили на написание этого чуда?
Бажки:
1. Нарисовал карту tr.im/PrG7 нажал на С пишет что выхода в ней нет, хотя он есть — ради интереса сам прошел.
2. После нажатия на С управление отключается и стрелочки не работают. Приходится обновлять страницу. Chrome.
Бажки:
1. Нарисовал карту tr.im/PrG7 нажал на С пишет что выхода в ней нет, хотя он есть — ради интереса сам прошел.
2. После нажатия на С управление отключается и стрелочки не работают. Приходится обновлять страницу. Chrome.
0
принято. разберусь)
0
1. пофиксено)
0
А на вопрос сколько времени заняло так и не ответили! :)
0
ой… прошу прощения)))
впринципе, можно посмотреть историю коммитов, согласно которой я приступил к написанию Stage 2 поверх Stage 1 8 февраля и с перерывами исал до сегодня. То есть где-то 10 дней)
Первый Stage я написал за 1-2 дня
впринципе, можно посмотреть историю коммитов, согласно которой я приступил к написанию Stage 2 поверх Stage 1 8 февраля и с перерывами исал до сегодня. То есть где-то 10 дней)
Первый Stage я написал за 1-2 дня
+1
у меня подтупливает, может надо еще точить или это мой браузер Фокс 3.018?
0
Open Source — это хорошо, конечно. Но OS без единого комментария — это как-то странно. Или Вы считаете, что названия переменных и производимые действия с «магическими константами» все очевидны? :)
0
+1
Да, как бы снова не началось :) Кстати вот тут можно посмотреть как люди настойчиво придумывали изващенные лабиринты которых почти и не встретишь…
Вот тут
Вот тут
0
Комментарий #comment_2354084 (Забыл в ссылке указать)
0
tr.im/Ptt6 но обычно правило руки — хорошо, да)
0
прошу прощения, tr.im/PtvB
пс. пофиксил алгоритм автопрохождения, теперь, вроде, правильно проверяет) жмите «с»
пс. пофиксил алгоритм автопрохождения, теперь, вроде, правильно проверяет) жмите «с»
0
Небольшое замечание. У вас проецирование делается «влоб», от этого выходит эффект «рыбий глаз» — горизонтальные линии по стенам выходят искривленными, натянутыми на сферу. Вам бы по тангенсу считать, тогда будет прямо. Это старый прикол, на которые все софт-рендерерописатели наталкиваются.
0
на самом деле это не совсем так. покажу на примере
первый уровень. идем до первого поворота направо, потом до тупика прямо, поворачиваем направо, делаем один шаг и разворачиваемся на 180 градусов.
Рыбий глаз не убран:
Рыбий глаз убран:
поиск в моём коде строки «removeFish: data.angle»
Проблема, видимо, в том, что я использую очень большой угол — 100 градусов, в то время, как та же игра от Оперы использует 60 градусов. Я осознано пошёл на лёгкую деформацию изображения, чтобы отчётливо было видно есть ли поворот справа и слева.
первый уровень. идем до первого поворота направо, потом до тупика прямо, поворачиваем направо, делаем один шаг и разворачиваемся на 180 градусов.
Рыбий глаз не убран:
Рыбий глаз убран:
поиск в моём коде строки «removeFish: data.angle»
Проблема, видимо, в том, что я использую очень большой угол — 100 градусов, в то время, как та же игра от Оперы использует 60 градусов. Я осознано пошёл на лёгкую деформацию изображения, чтобы отчётливо было видно есть ли поворот справа и слева.
Maze = function () {
[...]
this.cfg = {
angle : 100,
+1
кстати, этот эффект можно использовать в игре. взял какой-то итем — хопа и зрение как рыбий глаз))
0
Зато видишь на 200 градусов ;)
0
да, 200 градусов — тоже прикольный эффект, но рыбий глаз — он чуть из другой оперы (как на картинке выше). хотя интересно посмотреть будет на 360 градусов…
0
нет, автор реализовал угол обзора только до 180 градусов, но даже так выглядит ужасно))
кстати, тут можно увидеть и более грубый эффект размазывания краёв при большом углу)
кстати, тут можно увидеть и более грубый эффект размазывания краёв при большом углу)
0
Круто конечно но вот webgl и o3d для такого. Благо фокс и вебкит уже позволяют.
0
вот как надо работу искать =)
+3
Sign up to leave a comment.
Javascript Pseudo-3d Game. Stage 2