Все на этой планете уже написали змейку кроме меня
Это вообще моя первая игра и насколько она плохая получилась ? Ну на 3- я бы ее оценил )
Исходник лучьше не смотрите - находка для оптимизатора, торопился хотелось побыстрее закончить еще бы надо регулировку скорости добавить, но вот что-то уже сил нет.
Счастливые обладатели FPC могут это сделать, подправив dalay в процедуре Play
Так как это моя первая игра, строго не судить и сильно не глумиться )
Ну сам "движок" готов Можно приукрасить игру, сделав части змейки спрайтами (чтобы было видно что это змея), и нарисовать всяких там яблок-груш, и камней, об которые змея зубы ломает, и поле побольше!
бесит: 1) моргание 2) исчезание "яблок" перед самым носом 3) такое большое окно и такое маленькое игровое поле 4) high-score записывается по выходу из игры
--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
Учту, сделаю по интересне наверное дальше ... со спрайтими и яблоками, единственное - моргание, когда змейка уже "выросла" - очень заметно, я и так перерисовыаю только змейку, на стирая весь экран, setactivepage тут поможет ?
--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
Змейку тоже не нужно перерисовывать (имхо). Все, что нужно, это а) всегда рисовать голову и б) затирать хвост, если змейка не растет. При этом тело змейки организовываем, как стек - голова все время находится в конце массива, а хвост в начале. Если змейка растет, то просто добавляем в конец стека новые координаты головы. Если не растет - сдвигаем все элементы стека на 1 к началу, теряя текущий хвост, и добавляем в конец стека новые координаты головы. И чего так мрачно-то? Готика?
по-моему в том и фишка, что игрок так должен действовать точнее, чтобы успеть схватить яблоко! klem4, сделай еще так, что если игрок не успевает взять яблоко, то это запоминается и в конце игры помимо набранных очков в таблице будет фигурировать процент собранных яблок, от общего кол-ва появившихся (типа точность). А вот
Цитата
моргание
это да, бесит! Все таки 32-битный компилер! Сделай через видеостраницы. Не знаю как на FPC, а на ТурбоПаскале главный цикл через видеостраницы я организовываю так:
Var v: Byte;
...
v:=0; SetVisualPage(0); REPEAT Inc(v); if v > 5 then v:=0; SetActivePage(v);
ClearDevice; {рисуем все что надо} SetVisualPage(v) UNTIL KeyPressed;
Получается что мы сначала отрисовываем все на невидимой странице, а потом делаем ее видимой, и не надо ничего перерисовывать.