Змейка в Qt
В этом ролике мы напишем змейку в Qt без использования встроенного дизайнера. При этом мы затронем материал из прошлых роликов (рисование, нажатие клавиш и таймеры) и рассмотрим новые приемы. Здесь понадобятся базовые знания принципов ООП.
Эпизоды:
00:00 - введение
00:52 - игровое поле
04:36 - элементы змейки
05:22 - собираем змейку
06:17 - отрисовка змейки
07:51 - движение змейки
09:39 - ограничение игрового поля
11:11 - управление клавишами
15:00 - исправляем баг
16:40 - проигрыш
19:40 - еда для змейки
22:19 - добавляем цвет
Qt #программирование #змейка
Пікірлер: 32
ДА Я НЕ ВЕРЮ ЧТО ТЫ ВЕРНУЛСЯ, БРАТАН ПРОДОЛЖАЙ КЬЮТИ УРОКИ, ОЧЕНЬ ГОДНЫЕ, СПАСИБО
Я нашел тебя в период твоего отсутствия, возвращение казалось невозможным, спасибо за твои уроки и то, что ты делаешь, по qt реально мало русскоязычного материала, а курсов вообще нету, с возвращением!!!
Очень ждал возвращения!
думал что уже не увижу эти крутые ролики)
Спасибо за урок, только начал учить qt и не хватало таких видео! Отдельное спасибо что вся работа в коде содержится на видео и идет последовательно. А то насмотрелся видео, где автор на видео не показывает большую часть написанного кода, из за чего новичкам повторить проект невозможно.
Спасибо тебе добрый человек!
спасибо, хорошее и подробное видео !
Спасибо. Познавательно.
О, с возвращением!!!
Ураа наконец-то
Круть)) еще бы тетрис поглядеть🙃
Крутой проект. Я ещё не познал дзен в написании программ, интерфейс которых строится через код, а не графические средства.
@programmcat
Жыл бұрын
Тут в принципе база для этого показана
Только начал qt осваивать, надеюсь, твои уроки помогут в этом)
@programmcat
Жыл бұрын
Этот ролик довольно сложный для начала
Годно!
Кот Вернулся!😼
Котэ Змейка получилась, теперь ждем выпуск "КотэПёс"
He's alive!
Картинка_Спанч_Боб_с_радугой_над_головой_и_надписью_Magic_numbers.jpg
Бро, скажи есть ли курс по Qt от тебя. На твоем канале нашел только C++ очень бы хотелось увидеть аналогичный по Qt, а то так информация как то разбросана получается. Спасибо за то что ты делаешь. Всех благ и больше обучающих уроков по Qt.
@programmcat
11 ай бұрын
Курса нет
крутое видео! Хотелось бы узнать есть ли к этому коду репозиторий на github с кодом, застрял на моменте с проигрышем, не могу найти ошибку из-за чего происходит краш программы понимаю в каком месте:m_moveSnakeTimer->stop(); delete m_snake; delete m_moveSnakeTimer; а из-за чего не могу понять, пересмотрел отрезок видео несколько раз, ничего не нашёл. Есть вариант просто убрать delete m_snake; но тогда будет утечка памяти, но при этом всё работает. Ответьте пожалуйста, очень надо
Супер, всё очень интересно и понятно. Может кто знает как установить qt и креейтор в 2023 в России(((( можно в Линукс.
@programmcat
Жыл бұрын
попробуй загуглить, там вариантов масса
@user-db2mk5dq3k
Жыл бұрын
Во время установки надо впн 2 раза переподключать. Или если есть у знакомого установленый, попроси скинуть архивом
@programmcat
Жыл бұрын
Итак, попробовал два рабочих варианта. Первый: скачать оффлайн установщик версии 5.12(помоему, может там другая) и установить без интернета. Второй - переносим всю папку qt из диска С с компьютера, где он уже установлен, так можно установить любую версию. Объем правда великоват, около 40гб, я использовал лановский кабель для этого. Так что в принципе, можно разместить архив где-то в интернете и скачивать всю папку целиком, никаких проблем со сборкой проектов не было
Сразу оговорюсь, что программирование, как и искусство, не подразумевает "правильных" решений. Вопросы чисто с познавательной точки зрения. Не кажется ли вам, что лучше создавать не несколько раз по одному объекту при помощи new, а сразу массив объектов? Я так понимаю, "m_" это просто часть названия для удобства чтения кода, не больше? Не стоило ли унаследовать классы от общего класса "Game", например, заместо того чтобы делать их дружественными (общие функции бы можно было вносить в базовый класс)? Была ли какая-то идея или Вы просто выбирали из двух равнозначных вариантов?
@sayxzero
Жыл бұрын
Проект, кстати, классный, спасибо, залип от начала до конца видоса)
Как изменить оформление ползунка? Мне нужно, чтобы над ним была линия спектра цветов(ползунок меняет цвет, т.е длину волны света)
Спасибо, смотрю с удовольствием. Ещё бы ссылку на исходники, а то всё делаю как в видео, но: 1) на 18.36 ловлю ошибку: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc и программа вылетает 2) В видео 24.29 варнинг : Use of memory after it is freed [clang-analyzer-cplusplus..... //---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// Проблему победил, рецепт: 1) Файл game.cpp, описание функции void GameField::MoveSnakeSlot(), блок "Проигрыш". После вызова функции GameOver(); добавил return; чтобы не вызвался последующий repaint(); Как я понял, этот repaint() у меня вызывал terminate called after throwing an instance of 'std::bad_alloc' //---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// 2) Файл game.cpp, описание функции void GameField::MoveSnakeSlot(). Строчку: m_snake->m_snakeBody.insert(0, newSnakeItem); переместил выше, в блок "Ограничение игрового поля", сразу после строчки: else if (newSnakeItem->m_y >= m_fieldSize) newSnakeItem->m_y = 0; //---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------// 3) Файл game.cpp, описание функции void GameField::GameOver(). После строчек: QString text = "Начать заново - Пробел"; emit ChangeTextSignal(text); Добавил repaint(), чтобы в игровом поле появлялась надпись: painter.drawText(QRect(0, 0, width(), height()), Qt::AlignCenter, "Игра проиграна Счёт: " + QString::number(m_score)); По поводу вопроса на 3.35: www.cyberforum.ru/qt/thread2267992.html#post16670457