За последние 24 часа нас посетили 22580 программистов и 1277 роботов. Сейчас ищут 752 программиста ...

Игрушки

Тема в разделе "Прочее", создана пользователем sobachnik, 6 мар 2012.

  1. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Некоторое время назад я выкладывал тут свой вариант морского боя. Стало интересно попробовать сделать что-нибудь более подвижное и, недолго думая, решил сделать "Тетрис" на JS. Старался сделать, чтобы более-менее выглядело, хотя я и не дизайнер, конечно.

    Играться лучше всего в Опере или Google Chrome - у них пошустрей работает JS. Ну, это если комп так себе. На совсем старых компах (типа Pentium 3) - лучше хром подойдёт. Или (как ни странно) MSIE 6 - по скорости фунциклирования JavaScript - IE 6 и гуглохром делят первое место. В Firefox сравнительно медленнее всё происходит (зато выиграть легче на уровнях, где фигуры начинают падать быстрее :D ). Ну а MSIE 8 - ваапще тормоззз. На счёт девятого - не знаю, нету на чём проверить. Safari тоже не тестил.

    Там есть несколько "необычных" фигур - огонь (сжигает вокруг себя одну клетку), бомба (взрывает вокруг себя 2 клетки) и... вообще-то планировал нарисовать воду, но больше на снежок похоже получилось :) В общем это нечто светлое - заполняет вокруг себя все пустые клетки в радиусе 2. Ну это я так, типа предупредил, чтобы не удивлялись, с чего вдруг это пропало, а это расфуфырилось - так и задумано :) Это фича, а не баг )))

    Кто дойдёт до 10 уровня - встретит ещё один "сюрприз" :)
    Ну, а кто пройдёт все 10 - получит заслуженный подарок :)))

    Управляется только клавиатурой. Стрелки курсорные, пробел, кнопка паузы и Enter. Ну, там слева от "стакана" будет написано, какая для чего.

    В общем, опять я приглашаю всех в гости, отдохнуть и сыграть партейку - на этот раз, в мой JavaScript Tetris:

    http://forum.smoothcollie.ru/tetris/index.php5
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    красава)))) только стакан дофига глубокий и неинформативно куда собирается падать фигура - промахнулся два раза и сделал ^W на ваш тетрис
     
  3. KMB

    KMB Активный пользователь

    С нами с:
    9 сен 2011
    Сообщения:
    63
    Симпатии:
    0
    Прикольно, но я думаю в виде флешки это получилось-бы гораздо лучше.
     
  4. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    что-то играю-играю, и все выше 6-7уровня не поднимается.
    в тетрисе принято увеличивать постепенно скорость падения. иначе можно до бесконечности играть.
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Уровень возрастает от кол-ва сокращённых линий. Видимо, не сократил ещё нужного количества.
    Скорость там возрастает с каждым уровнем. Возможно, изменения в скорости слишком маленькие и ты не замечаешь? А на каком браузере играешь? В ИЕ, например, у меня не получилось сделать, чтобы скорость действительно стала быстрой. Там хоть setInterval(functionName, 1) поставь - он всё равно не будет функцию запускать с интервалом в 1 мс. Просто не успевает, видимо, просчитать. Файрфокс - тоже медленно думает в этом плане. Это, конечно, зависит также от скорости процессора, помимо браузера.
     
  6. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
  7. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    В опере. Мне кажется, лучше сделать шаг дискретизации больше. В классическом тетрисе фигура за один такт перемещается на одно знакоместо (один квадратик). У тебя по-моему шаг равен 1/4 квадрата - из каких-то специальных соображений?
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    В детстве я частенько в тетрис играл - на очки с братом :) У нас был такой, с шагом не в клетку, а так типо "плавно" фигуры падали. Ну и я решил усложнить себе задачу и добиться такого же :) Просто так, без особых соображений, мне показалось, что так лучше.
    Странно, что в опере у тебя скорость не увеличивается. У меня в опере совершенно явно увеличивается и всё корректно работает. Хотя вроде комп не блещет современностью - Pentium IV 2.4GHz, 512 Mb...

    Изменить шаг не сложно - можно просто перед запуском игры (когда надпись press any key...) в консоли JavaScript написать
    pxPerStep = 15;
    steps = 1;
    и будет размер шага совпадать с размером клетки. Скорости регулировать можно так:
    speed[1] = 1000;
    speed[2] = 800;
    ...
    здесь 1, 2, ... - номер уровня, а 1000, 800, ... - кол-во миллисекунд, за которые фигура должна пройти клетку (для данного уровня).

    Будет время - сделаю настройки :)))
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Самая квайная штучка - это что можно сдвинуть фигуру на клетку в тот момент, когда она только опустилась на дно.
     
  10. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Когда только приступал думал, что добиться этого будет не просто. А потом, когда уже начал писать - понял, что оно само так получится :)
    А это как? Это плохо или хорошо? :)
     
  11. Makaroff

    Makaroff Активный пользователь

    С нами с:
    8 мар 2012
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Одесса
    Молодец, неплохо все реализовал, понравилось то что моргающие фигуры уничтожают то место куда стают
     
  12. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    sobachnik

    Шикарно!