Javascript.RU

Тетрис

Захотелось написать тетрис, ради практики, и не мог я от этой мысли избавиться, пока не воплотил. В общем-то дурость, но упражнение было хорошее. Кода много, выкладывать не буду, вот ссылки

Tetris.js

Немножко ужасного оформления и вот что получилось: TETRIS

+4

Автор: poorking, дата: 8 апреля, 2011 - 17:26
#permalink

не актуально


Автор: y3x (не зарегистрирован), дата: 5 марта, 2011 - 12:31
#permalink

А ExCanvas не пробовали?
Как научить IE делать Canvas


Автор: Spx (не зарегистрирован), дата: 8 марта, 2011 - 21:03
#permalink

"Тормозит" немного. Бывает фигуры подвисают на пару секунд. Хотя я не могу похвастаться конфигурацией компьютера, но все же тормозящий тетрис это весьма уныло)


Автор: poorking, дата: 8 марта, 2011 - 22:03
#permalink

Спасибо за замечание!
Фигуры подвисают на миг когда отправляется запрос за обновлением листа лидеров (раз в 30 секунд), тоже заметил, не приятно, в прочем можно не обновлять список постоянно, а лишь во время записи; в лево-вправо фигурки двигаются рывками, потому что так задумано, рывков будет не заметно если увеличить скорость их движения влево-вправо, но тогда целиться будет очень трудно. А в целом, да, тормозит, потому как таблица вся перерисовывается при каждом кадре анимации, не знаю как сделать иначе, изначально игра выводилась на canvas, было здорово, и разукрасить можно было как угодно, и стилей никаких не надо, но захотелось чтобы игра работала в "любимом" IE, пришлось жертвовать, если есть предложения как "ускорить" игру, буду рад выслушать, по сути мне надо будет только функцию вывода игры изменить.


Автор: LeoLeo (не зарегистрирован), дата: 9 марта, 2011 - 09:13
#permalink

не надо жертв для ИЕ


Автор: hogart, дата: 18 марта, 2011 - 11:42
#permalink

По поводу медленной перерисовки поля: у вас каждая перерисовка — это полное пересоздание DOM-дерева таблицы. Конечно, это медленно.
Можно сделать через CSS-классы — т.е. сделайте 6 классов для цветов фигурок и еще один для пустых квадратиков. Должно работать заметно быстрее.


Автор: poorking, дата: 18 марта, 2011 - 21:34
#permalink

У меня была такая идея, но я от нее почему-то быстро отказался, хотелось чтобы игра была более мобильной, то есть не зависела от css, но параметры стилей менять в коде, конечно, ресурсозатратно, и часть я разу сменил на CSS, а раз уж все равно этого избежать не удалось, то переделал так, как вы посоветовали.
На моей машине не ощущается ускорения работы, в FF и Chrome, но в диспетчере задач загрузка ЦП не превышает 5%, раньше до 20 прыгало, но в IE 8 будто бы даже откровенно тормозить начало, загрузка 20-30%. У меня на ноуте i5 430UM


Автор: hogart, дата: 21 марта, 2011 - 09:20
#permalink

Сейчас у вас узкое место в отрисовке поля — это перебор всего DOM-дерева поля. У вас каждый раз ищется 200 элементов (на одного игрока), это много.

Для каждого игрового поля создайте массив 10x20, в котором будут лежать ячейки тблицы. Этот массив должен быть глобальным по отношению к функции draw, и она должна использовать его, а не находить каждый раз все элементы.

И да, переведите код в кодировку UTF-8:)


Автор: hogart, дата: 21 марта, 2011 - 11:07
#permalink

Кстати, у таблицы есть поле rows, которое является массивом, элементы которого являются нодами TR. У каждого rows[i] есть поле cells, которое тоже является массивом, элементы которого являются собственно ячейками таблицы. То есть 5-ая ячейка в 3-ем ряду -- это tbl.rows[2].cells[4]. Можно попробовать работать через них, это тоже должно быть достаточно быстро.


Автор: Researcher, дата: 24 марта, 2011 - 00:51
#permalink

вот тут ещё вариант тетриса на js есть, только графика поугрюмей, фигуры позаковырестей и, плюс ко всему, они ещё "пробиваются" =)
http://researcher.su/

ваш покрасочней выглядит ))


Автор: poorking, дата: 8 апреля, 2011 - 16:57
#permalink

В мой тетрис очень легко добавить другие фигуры, но там.. ого, сложно с такими играть, я не смог собрать линию (


Автор: Grawl, дата: 8 апреля, 2011 - 11:07
#permalink

Я убил на этот тетрис около часа. Я бы убил больше времени, если бы не понял, что в нём не хватает ускорения.


Автор: poorking, дата: 8 апреля, 2011 - 16:56
#permalink

Ну значит, спасибо, вы баг нашли, вообще ускорение есть, раз в 30 секунд шаг множится на 0.9, надо посмотреть


Автор: Гость (не зарегистрирован), дата: 20 апреля, 2011 - 22:24
#permalink

Все пофиг, я аж мин на 20 завис


Автор: Ayk (не зарегистрирован), дата: 3 мая, 2011 - 18:12
#permalink

Отличный тетрис у меня все нормально тормозов нет opera 11.10 - 2092


Автор: Гость (не зарегистрирован), дата: 4 мая, 2012 - 21:37
#permalink

Отличный тетрис!


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
4 + 7 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Другие записи этого автора
poorking
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Популярные таги
Последние комментарии
Последние темы на форуме
Forum