Некоторое время назад я выкладывал тут свой вариант морского боя. Стало интересно попробовать сделать что-нибудь более подвижное и, недолго думая, решил сделать "Тетрис" на JS. Старался сделать, чтобы более-менее выглядело, хотя я и не дизайнер, конечно. Играться лучше всего в Опере или Google Chrome - у них пошустрей работает JS. Ну, это если комп так себе. На совсем старых компах (типа Pentium 3) - лучше хром подойдёт. Или (как ни странно) MSIE 6 - по скорости фунциклирования JavaScript - IE 6 и гуглохром делят первое место. В Firefox сравнительно медленнее всё происходит (зато выиграть легче на уровнях, где фигуры начинают падать быстрее ). Ну а MSIE 8 - ваапще тормоззз. На счёт девятого - не знаю, нету на чём проверить. Safari тоже не тестил. Там есть несколько "необычных" фигур - огонь (сжигает вокруг себя одну клетку), бомба (взрывает вокруг себя 2 клетки) и... вообще-то планировал нарисовать воду, но больше на снежок похоже получилось В общем это нечто светлое - заполняет вокруг себя все пустые клетки в радиусе 2. Ну это я так, типа предупредил, чтобы не удивлялись, с чего вдруг это пропало, а это расфуфырилось - так и задумано Это фича, а не баг ))) Кто дойдёт до 10 уровня - встретит ещё один "сюрприз" Ну, а кто пройдёт все 10 - получит заслуженный подарок )) Управляется только клавиатурой. Стрелки курсорные, пробел, кнопка паузы и Enter. Ну, там слева от "стакана" будет написано, какая для чего. В общем, опять я приглашаю всех в гости, отдохнуть и сыграть партейку - на этот раз, в мой JavaScript Tetris: http://forum.smoothcollie.ru/tetris/index.php5
красава)))) только стакан дофига глубокий и неинформативно куда собирается падать фигура - промахнулся два раза и сделал ^W на ваш тетрис
что-то играю-играю, и все выше 6-7уровня не поднимается. в тетрисе принято увеличивать постепенно скорость падения. иначе можно до бесконечности играть.
Уровень возрастает от кол-ва сокращённых линий. Видимо, не сократил ещё нужного количества. Скорость там возрастает с каждым уровнем. Возможно, изменения в скорости слишком маленькие и ты не замечаешь? А на каком браузере играешь? В ИЕ, например, у меня не получилось сделать, чтобы скорость действительно стала быстрой. Там хоть setInterval(functionName, 1) поставь - он всё равно не будет функцию запускать с интервалом в 1 мс. Просто не успевает, видимо, просчитать. Файрфокс - тоже медленно думает в этом плане. Это, конечно, зависит также от скорости процессора, помимо браузера.
В опере. Мне кажется, лучше сделать шаг дискретизации больше. В классическом тетрисе фигура за один такт перемещается на одно знакоместо (один квадратик). У тебя по-моему шаг равен 1/4 квадрата - из каких-то специальных соображений?
В детстве я частенько в тетрис играл - на очки с братом У нас был такой, с шагом не в клетку, а так типо "плавно" фигуры падали. Ну и я решил усложнить себе задачу и добиться такого же Просто так, без особых соображений, мне показалось, что так лучше. Странно, что в опере у тебя скорость не увеличивается. У меня в опере совершенно явно увеличивается и всё корректно работает. Хотя вроде комп не блещет современностью - Pentium IV 2.4GHz, 512 Mb... Изменить шаг не сложно - можно просто перед запуском игры (когда надпись press any key...) в консоли JavaScript написать pxPerStep = 15; steps = 1; и будет размер шага совпадать с размером клетки. Скорости регулировать можно так: speed[1] = 1000; speed[2] = 800; ... здесь 1, 2, ... - номер уровня, а 1000, 800, ... - кол-во миллисекунд, за которые фигура должна пройти клетку (для данного уровня). Будет время - сделаю настройки ))
Самая квайная штучка - это что можно сдвинуть фигуру на клетку в тот момент, когда она только опустилась на дно.
Когда только приступал думал, что добиться этого будет не просто. А потом, когда уже начал писать - понял, что оно само так получится А это как? Это плохо или хорошо?