Игра tetris сделанная в делфи 7
Делаем Тетрис на Arduino
Добавим еще несколько библиотек и начнем писать код, память и во все закончится. Автор принципиально не использует, например, arduino mega, где памяти больше. Цель сделать игру именно на arduino nano, используя простые, стандартные и всем известные инструменты, но в то же время нестандартные подходы и «костыли» и с их помощью добиться максимально оптимального кода.
Первым «костылем» будет отказ от отдельного хранение в памяти позиций фигур и вообще всего, что творится на экране. Нам нужно хранить координаты точек подающей фигуры и координаты точек уже упавших фигур, то есть как максимум нам нужен еще 1 массив, двумерный 16 на 16, а это еще целых 256 байт.
У нас с вами уже есть массив цветов всех пикселей, давайте использовать его. Ведь помимо того, что мы можем поставить на матрицу цветную точку, мы можем измерить свет уже имеющейся точки так, что работать будем именно с цветами.
Тетрис начинается с падающего блока, который управляется кнопками и имеет 2 координаты в системе координат матрицы. Это очень просто, возводим таймер, по которому будет падать блок. Это библиотека автора, можете почитать на сайте.
Для обработки кнопок, автор также использует свою библиотеку. Схема подключения кнопок до смешного проста: 4 кнопки, 8 проводов.
Каждый шаг таймера мы рисуем точку на пиксель ниже старой, а старую точку рисуем черным цветом, то есть выключаем светодиод. По нажатию на кнопку делаем то же самое, но с горизонтальной координатой. Ну и для приличия, ограничим по размерам матрицы, чтобы точка не вышла за пределы поля.
Видите, ничего сложного. Но это ненадолго потому, что настало время рисовать фигуры. Работать будем следующим образом: сохраним привязку к подающей точке, которая у нас уже написана, назовем ее главная точка или главный блок. Главный блок двигается в системе координат матрицы, это мы уже сделали. Все фигуры тетриса состоят из 4-ех блоков, именно поэтому, кстати, он и называется Тетрис.
Собственно, теперь осталось случайно выбирать номер фигуры и отрисовывать ее вокруг падающего блока. Здесь мы для всех 3-ех оставшихся блоков берем из флеш-памяти координаты, переводим их в глобальные координаты матрицы и включаем светодиоды. Кстати, цвет тоже выбирается случайно из 6-ти самых простых и ярких цветов пространства rgb. Угол поворота фигуры при начале раунда тоже задается случайно, а при нажатии кнопки вверх, просто берем для отрисовки следующий набор координат и вращаем по часовой стрелке. Перемещение фигуры работает все также. Сначала стираем фигуру на предыдущем положении, то есть рисуем ее черным цветом, затем в новом положении рисуем уже текущим цветом фигуры. При повороте, опять же, стираем старое положение и просто рисуем новое.
Прошивку можно скачать на странице проекта . Разберем только самую суть. Начнем с проверки левой и правой стенки и днища. С днищем все очень просто, каждый шаг падения смотрим, не достиг ли базовый блок отметки 0 по высоте, это несложно, а вот каждое нажатие на кнопку управления нам нужно смотреть не коснулась ли крайняя точка фигуры боковых стенок матрицы.
Фигура упала на днище или другую фигуру, ее яркость не заметно увеличилась и в новом раунде падающие фигуры уже не перепутают ее цвет со своим, будут падать на нее и точно также фиксироваться, слегка прибавляя яркость.
Кстати, при нажатии кнопки вниз, фигура с большой скоростью устремляется вниз и занимает свое место.
Счет выводится цифрами, которые хранятся в памяти как набор единиц и нулей, по которым далее включаются или не включаются светодиоды. Собственного так выглядит тетрис, написанный под адресную матрицу. Благодарю за внимание. До новых встреч!
Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!
*Заполняя форму вы соглашаетесь на обработку персональных данных
Делаем Тетрис на Arduino
Добавим еще несколько библиотек и начнем писать код, память и во все закончится. Автор принципиально не использует, например, arduino mega, где памяти больше. Цель сделать игру именно на arduino nano, используя простые, стандартные и всем известные инструменты, но в то же время нестандартные подходы и «костыли» и с их помощью добиться максимально оптимального кода.
Первым «костылем» будет отказ от отдельного хранение в памяти позиций фигур и вообще всего, что творится на экране. Нам нужно хранить координаты точек подающей фигуры и координаты точек уже упавших фигур, то есть как максимум нам нужен еще 1 массив, двумерный 16 на 16, а это еще целых 256 байт.
У нас с вами уже есть массив цветов всех пикселей, давайте использовать его. Ведь помимо того, что мы можем поставить на матрицу цветную точку, мы можем измерить свет уже имеющейся точки так, что работать будем именно с цветами.
Тетрис начинается с падающего блока, который управляется кнопками и имеет 2 координаты в системе координат матрицы. Это очень просто, возводим таймер, по которому будет падать блок. Это библиотека автора, можете почитать на сайте.
Для обработки кнопок, автор также использует свою библиотеку. Схема подключения кнопок до смешного проста: 4 кнопки, 8 проводов.
Каждый шаг таймера мы рисуем точку на пиксель ниже старой, а старую точку рисуем черным цветом, то есть выключаем светодиод. По нажатию на кнопку делаем то же самое, но с горизонтальной координатой. Ну и для приличия, ограничим по размерам матрицы, чтобы точка не вышла за пределы поля.
Видите, ничего сложного. Но это ненадолго потому, что настало время рисовать фигуры. Работать будем следующим образом: сохраним привязку к подающей точке, которая у нас уже написана, назовем ее главная точка или главный блок. Главный блок двигается в системе координат матрицы, это мы уже сделали. Все фигуры тетриса состоят из 4-ех блоков, именно поэтому, кстати, он и называется Тетрис.
Собственно, теперь осталось случайно выбирать номер фигуры и отрисовывать ее вокруг падающего блока. Здесь мы для всех 3-ех оставшихся блоков берем из флеш-памяти координаты, переводим их в глобальные координаты матрицы и включаем светодиоды. Кстати, цвет тоже выбирается случайно из 6-ти самых простых и ярких цветов пространства rgb. Угол поворота фигуры при начале раунда тоже задается случайно, а при нажатии кнопки вверх, просто берем для отрисовки следующий набор координат и вращаем по часовой стрелке. Перемещение фигуры работает все также. Сначала стираем фигуру на предыдущем положении, то есть рисуем ее черным цветом, затем в новом положении рисуем уже текущим цветом фигуры. При повороте, опять же, стираем старое положение и просто рисуем новое.
Прошивку можно скачать на странице проекта . Разберем только самую суть. Начнем с проверки левой и правой стенки и днища. С днищем все очень просто, каждый шаг падения смотрим, не достиг ли базовый блок отметки 0 по высоте, это несложно, а вот каждое нажатие на кнопку управления нам нужно смотреть не коснулась ли крайняя точка фигуры боковых стенок матрицы.
Фигура упала на днище или другую фигуру, ее яркость не заметно увеличилась и в новом раунде падающие фигуры уже не перепутают ее цвет со своим, будут падать на нее и точно также фиксироваться, слегка прибавляя яркость.
Кстати, при нажатии кнопки вниз, фигура с большой скоростью устремляется вниз и занимает свое место.
Счет выводится цифрами, которые хранятся в памяти как набор единиц и нулей, по которым далее включаются или не включаются светодиоды. Собственного так выглядит тетрис, написанный под адресную матрицу. Благодарю за внимание. До новых встреч!
Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!
*Заполняя форму вы соглашаетесь на обработку персональных данных
Сегодня:
— — —
Последние:
— 27.12, 20:12 / #6692
— 29.03, 23:32 / #6682
— 30 апреля 2012
Сейчас онлайн:
На сайте — 6
На IRC-канале — 2
Игры
Heroes Imitation
Версия: 1.0
Автор: invizor
Файл добавлен: 24 декабря 2010, 22:31 (добавил invizor)
Ссылки для загрузки:
heroes_imitation.rar: 1.52 Мб — Загрузить »
MD5: 8f8fe2661b255d365893d037f2a6c9be | SHA1: b9a7f00c200efc2733255d3738735088d704dc0c
Электронный вариант настольной игры “Сражение”
Компьютерная игра “Сражение” с возможностью игры по сети.
Играют вдвоем. Каждый выбирает себе армию одного цвета. Цель игрока – захватить знамя противника.
В игре принимают участи по 40 фишек с каждой стороны. Цифры на фишках соответствуют воинским званиям.
Более подробные правила приведены в текстовом файле.
Версия: 1.0
Автор: Drinkenz
Файл добавлен: 5 марта 2010, 10:58 (добавил Drinkenz)
Ссылки для загрузки:
MD5: 844a2d51d4b6fb4459578bc7d5f1ca62 | SHA1: c7b8ac488b2aa9c467031274852a14ad179ebebf
Симулятор самолета Л39
Автор: Peter
Файл добавлен: 30 декабря 2009, 12:05 (добавил Peter)
Ссылки для загрузки:
MD5: 641479827b9aee0b449ac346c993ccf8 | SHA1: 20ccf41dfbbcbe54e9690c669fb3e158796848e0
Карточная игра “50”
Файл добавлен: 20 августа 2009, 20:15
Ссылки для загрузки:
MD5: d66e83d1155ae730dffc6b4d8a9df5cf | SHA1: ef0837bb91323146ab84e8096840ce4307d3f144
Пятнашки
Версия: 2.0
Файл добавлен: 24 ноября 2007, 11:25 (добавил Kasim_RI)
Ссылки для загрузки:
MD5: 4b26b095abf4295f8b432aef4a82178c | SHA1: 8285f1cdd3003d2f4dd074d36a53da36f1baf6d2
Квадрикс
Версия: 1.0
Файл добавлен: 24 ноября 2007, 11:06 (добавил Лед и Пламень)
Ссылки для загрузки:
MD5: 2873e632eb2887c376e4bc4f422c7bce | SHA1: 54f8d9a1b25dc669d55c98812a93e19a42f0c07a
Звёздный час
Версия: 1.0
Файл добавлен: 22 сентября 2007, 10:17 (добавил Ерёмин А.А.)
Ссылки для загрузки:
MD5: b3f7fb58a31ea108bc021224e4736570 | SHA1: b7875ca98e70a33fafaca638c5c87f947462d92c
Lines
Версия: 1.0
Файл добавлен: 14 апреля 2007, 10:43 (добавил Ерёмин А.А.)
Ссылки для загрузки:
MD5: 3e1a6be4955a7345b72afc3c823d089b | SHA1: 0f4641dd25fa672854201cb18eae55a89b8f1093
Pente
Версия: 1.0
Файл добавлен: 14 апреля 2007, 10:22 (добавил Ерёмин А.А.)
Ссылки для загрузки:
MD5: e706f8a9d8dc3feae9707140f53063de | SHA1: b5792c246614961fc54507edda3f9af892c4ac77
Камень-Ножницы-Бумага
Версия: 0.2
Файл добавлен: 10 июня 2005, 17:23 (добавил gensun)
Ссылки для загрузки:
stone-scissors-paper.zip: 260 Кб — Загрузить »
MD5: f0f6712c9d4e3977318c00f8e1d37b09 | SHA1: 79a61ab51f48ac5e53f66a8d3b73feb9a4533ba7
Показаны файлы: 1 — 10 (всего файлов: 13)
Для добавления файлов на сайт воспользуйтесь этой формой.
Источники:
http://usamodelkina.ru/12323-delaem-tetris-na-arduino.html
http://usamodelkina.ru/12323-delaem-tetris-na-arduino.html
http://www.delphi.int.ru/games/