Помню когда решал задачки на кодворс бесили задачи на разворот матриц и другие операции с ними, думал где это пригодится, а тут вот практический пример. За счёт этой практики решения задач понятно и доступно всё было в ролике. Круто, что можно подчерпнуть для себя логику создания игр.
Автор, большая к тебе просьба: Задумайся над тем, чтобы сделать полное текстовое описание созданных тобою (имею ввиду подкапотное функционирование всех функций, обрращений и модулей) игр и в целом перевести все твои ролики в текстовые курсы. Размести их на Stepik, назначь любую цену (я готов и за 5k купить и за 10k, причём каждый по отдельности)
Вроде бы не нашёл какого-то иного решения с setInterval, по этому предложу описание своего: Создаём интервал, который будет работать до нажатия клавиши игроком, в ином случае перезапускаем интервал, получится что-то вроде: function initGame(){ let intervalID = setInterval(moveDown, tetris.speed); } function moveDown(isAutoMove){ tetris.moveDown(); if(!isAutoMove){ clearInterval(ID); setTimeout(() => { intervalID = setInterval(moveDown, tetris.speed), tetris.speed}; } } Немного грубовато написано, но суть должны уловить
@@yurakoch У вас каждое движение в низ перезапускало анимацию, путём stopLoop(); startLoop(); для того что бы при нажатии кнопки игроком, фигурка не падала по истечению времени. Я предложил свой вариант, где анимация проигрывается в интервале, и перезапускается только когда игрок нажимает на кнопку
@@yurakoch чтоб добиться адаптивности нужно на ивент resize вешать колбек и перерисовывать канвас каждый раз? или можно как-то попроще сделать, вы не в курсе?
requestAnimationFrame(moveDown), 700) вот тут вам надо 700 поменять на более маленькое число чем меньше число, тем меньше задержка между перемещениями фигурки вниз
Я через пару дней буду у компьютера, посмотрю код. Попробую подсказать. Сейчас можете поставить дебаггер там, где высчитывается логика удаления строки. Может быть сможете найти ошибку…
Тетрис - довольно сложная игра, поэтому точно будет тяжело. Попробуйте останавливаться на непонятных моментах и искать ответы в гугл или на сайте лерн js. Не факт, что с первого раза во всем получится разобраться, но прогресс будет. А дальше пробуйте делать другие приложения на js. Спустя несколько проектов во всем разберетесь и тетрис покажется очень простым.
С первого раза точно будет непонятно Придется останавливать ролик Иногда придется читать описание стандартных методов Например момент с поворотом матрицы на 90 градусов совсем не очевидный Я в ролике постарался объяснить основную идею создания игры без сильных подробностей Так что советую повторить за мной Постараться самостоятельно разобраться в непонятных моментах А если что-то будет совсем непонятно, то напишите вопрос в комментариях Я подскажу
Я так понимаю все просто посмотрели видео не вникая что говорит сам автор. Допуская ошибки. 😖16:00 Для посмотреть видео ок. Для того что бы повторить приходится перематывать, жать на паузу, уменьшать скорость. Хз, и дизлайк не хочется ставить и писать код трудно. Ну и обьяснений хотелось бы побольше, если честно. А то код написали а зачем его написали, что он делает хз.
@@yurakoch я понимаю. Но я лучше послушаю поток твоих мыслей, как ты думаешь. Чем буду просто повторять. Я смотрю видео по 11 часов и мне намного лучше чем смотреть такое на 40 минут но в итоге я буду нервничать. Посмотри как видео по 10 часов набирают по 300К просмотров. Толку мне перематывать если и так ничего не понятно сразу и прихолится на листочке сейчас сидеть в выписывать эту матрицу и понимать что там происходит.
@@v.demchenko как раз мне нравится, что самой приходится догадываться, ставить на паузу, а не всё на блюдечке. Мозг учится думать. А когда 11 часов всё разжёвывают тебе, сам думать не научишься. Учишься сам находить инфу, если какой-то кусок кода не понятен, узнаёшь много нового попутно, причём вещи, про которые почему-то редко пишут и используют Спасибо автору огромное! Разобрав пару уроков, потратив на них несколько дней, мир просто перевернулся
Помню когда решал задачки на кодворс бесили задачи на разворот матриц и другие операции с ними, думал где это пригодится, а тут вот практический пример. За счёт этой практики решения задач понятно и доступно всё было в ролике. Круто, что можно подчерпнуть для себя логику создания игр.
У меня это тоже первый случай после универа, когда понадобилось поворачивать матрицы)
Все четко и по делу, спасибо!
Из пожеланий:
- добавить счет очков
- добавить предпросмотр фигуры, которая следующей появится на поле
Спасибо)
Я хотел это сделать
Но подумал, что ролик совсем длинный будет
Так что можно самостоятельно доделать игру)
пишу JS уже много лет, но это очень хороший контент! спасибо за старания и время )
Спасибо)
Рад, что ролик понравился
Балдёж, огромнейшее спасибо за твой труд
Спасибо)
Рад, что ролик понравился
как всегда шикарно, спасибо за контент!
Спасибо)
Oh man, I have been waiting for this video! Sorry my russian is not that good but I understand it. Thanks a lot for the video!
Thanks)
Maybe later i will make english audio track for some videos
Дождались! :)
весь апрель я ленился, но в мае взял себя в руки 😅
Поставил лайк, ибо круто, брат.
Спасибо)
Автор, большая к тебе просьба:
Задумайся над тем, чтобы сделать полное текстовое описание созданных тобою (имею ввиду подкапотное функционирование всех функций, обрращений и модулей) игр и в целом перевести все твои ролики в текстовые курсы. Размести их на Stepik, назначь любую цену (я готов и за 5k купить и за 10k, причём каждый по отдельности)
Не знал про это ничего.
Можете, пожалуйста, подробнее рассказать про это?
Мой телеграм yurakoch
сделай update с ресайзом на canvas
на дивах как-то дико смотрится)
Добавь ооп, локальные сохранения и пару уровней - будет топ контент
Предложение интересное, но кажется, что такой ролик будет слишком долгим. Я стараюсь уложиться в час, чтобы люди готовы были попробовать повторить)
@@404Negative уже сделал давно)
Вроде бы не нашёл какого-то иного решения с setInterval, по этому предложу описание своего:
Создаём интервал, который будет работать до нажатия клавиши игроком, в ином случае перезапускаем интервал, получится что-то вроде:
function initGame(){
let intervalID = setInterval(moveDown, tetris.speed);
}
function moveDown(isAutoMove){
tetris.moveDown();
if(!isAutoMove){
clearInterval(ID);
setTimeout(() => { intervalID = setInterval(moveDown, tetris.speed), tetris.speed};
}
}
Немного грубовато написано, но суть должны уловить
А для чего это? Я уже подзабыл свой код…
@@yurakoch У вас каждое движение в низ перезапускало анимацию, путём stopLoop(); startLoop(); для того что бы при нажатии кнопки игроком, фигурка не падала по истечению времени. Я предложил свой вариант, где анимация проигрывается в интервале, и перезапускается только когда игрок нажимает на кнопку
Cool good job
Привет! Спасибо , Огонь! И вопрос : как и что мне сделать, чтобы вылечить?
Вылечить что?
Пишу этот урок, все круто! Я так понял, если ты с нуля можешь написать такой код...то ты как минимум уверенный джун 😀
Если все в уроке понятно, то это почти мидл)
@@yurakoch понял)) мне мало чего понятно, недавно начал изучение js, но очень интересно))
Пробуйте, практикуйтесь и все получится)
Сразу лайк! Но где же ГТА? :))
ГТА 6 еще в разработке)))
@@yurakoch :'(
@@yurakoch Нафиг гта, ждем ХФ3!
Что это?
Можем ли мы сделать такую же адаптивную игру только на канвасе?
Можете сделать на канвасе
@@yurakoch чтоб добиться адаптивности нужно на ивент resize вешать колбек и перерисовывать канвас каждый раз? или можно как-то попроще сделать, вы не в курсе?
@nikita_suiazov я бы сделал так. Resize происходит очень редко, поэтому это решение хорошее.
@@yurakoch спасибо!
Извините, а могли бы вы подсказать как можно увеличить скорость игры
requestAnimationFrame(moveDown), 700)
вот тут вам надо 700 поменять на более маленькое число
чем меньше число, тем меньше задержка между перемещениями фигурки вниз
Вводи донэйшен) Кто захочет, тот отблагодарит монетой, сколько пожелает
Я добавил ссылку на киви кошелек в описании ко всем видео)
Пока только жена 10 руб закинула)))
Через какое-то количество убранных линий (12-16), они просто перестают убираться, чё делать?
Попробуйте посмотреть ошибки в консоли, может там что-то будет
@@yurakoch Ошибок нет в консоли
Я через пару дней буду у компьютера, посмотрю код. Попробую подсказать.
Сейчас можете поставить дебаггер там, где высчитывается логика удаления строки. Может быть сможете найти ошибку…
@@yurakoch Ок, япасибо
А можете мне в телеграмм скинуть архив с кодом или ссылку на гитхаб с кодом? Я посмотрю и скажу, где у вас ошибка
Я только изучил две чати лерн js и мне сказали сделать игру тетрис и мне сейчас очень сложно(чувствую себя отсалым) , это нормально?
Тетрис - довольно сложная игра, поэтому точно будет тяжело. Попробуйте останавливаться на непонятных моментах и искать ответы в гугл или на сайте лерн js. Не факт, что с первого раза во всем получится разобраться, но прогресс будет. А дальше пробуйте делать другие приложения на js. Спустя несколько проектов во всем разберетесь и тетрис покажется очень простым.
блин а сложно понимать логику такую, это ноормально? я не тупой? я только js выучил вроде но заметно как я плаваю..
С первого раза точно будет непонятно
Придется останавливать ролик
Иногда придется читать описание стандартных методов
Например момент с поворотом матрицы на 90 градусов совсем не очевидный
Я в ролике постарался объяснить основную идею создания игры без сильных подробностей
Так что советую повторить за мной
Постараться самостоятельно разобраться в непонятных моментах
А если что-то будет совсем непонятно, то напишите вопрос в комментариях
Я подскажу
Пытаюсь смотреть, но монотонный голос не позволяет.
Я пытался оживить голос, но всегда получается так
@@yurakoch
Я не сдаюсь)
Я смотрю уроки по голосу, может смогу сделать его лучше)
@@yurakoch по моему мнению слишком быстро и не заостряется внимание на определенных моментах, обучающимся это бы помогло.
А можете написать на примере тетриса, на чем было бы хорошо заострить внимание?
Я так понимаю все просто посмотрели видео не вникая что говорит сам автор. Допуская ошибки. 😖16:00
Для посмотреть видео ок. Для того что бы повторить приходится перематывать, жать на паузу, уменьшать скорость.
Хз, и дизлайк не хочется ставить и писать код трудно.
Ну и обьяснений хотелось бы побольше, если честно. А то код написали а зачем его написали, что он делает хз.
Идея и была в том, чтобы ставить на паузу, иначе ролик растянулся бы на несколько часов.
@@yurakoch я понимаю. Но я лучше послушаю поток твоих мыслей, как ты думаешь. Чем буду просто повторять.
Я смотрю видео по 11 часов и мне намного лучше чем смотреть такое на 40 минут но в итоге я буду нервничать.
Посмотри как видео по 10 часов набирают по 300К просмотров.
Толку мне перематывать если и так ничего не понятно сразу и прихолится на листочке сейчас сидеть в выписывать эту матрицу и понимать что там происходит.
Подумаю над этим, чтобы следующие ролики были более понятными. Спасибо
@@yurakoch и тебе спасибо за адекватную реакцию и видео. Много интересного.
@@v.demchenko как раз мне нравится, что самой приходится догадываться, ставить на паузу, а не всё на блюдечке. Мозг учится думать. А когда 11 часов всё разжёвывают тебе, сам думать не научишься.
Учишься сам находить инфу, если какой-то кусок кода не понятен, узнаёшь много нового попутно, причём вещи, про которые почему-то редко пишут и используют
Спасибо автору огромное! Разобрав пару уроков, потратив на них несколько дней, мир просто перевернулся
file:///C:/Users/turbo/Desktop/tetris/index.html
Я не могу открыть ваш файл с компьютера