Тема: Змейка
Показать сообщение отдельно
  #7  
Старый 01.04.2008, 05:17
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

А что объяснять-то? Объявляешь динамический массив:
Код:
var
   MySnake: array of TPoint;
т.к. сначала твоя змея имеет длину в 1 чего-то там, скажем сегмент, устанавливаешь длину массива равной 1
Код:
  SetLength(MySnake,1);
и задаешь его, сегмента, координаты:
Код:
  MySnake[Low(MySnake)].X:=100;
  MySnake[Low(MySnake)].Y:=100;
когда нужно, увеличиваешь длину массива на 1:
Код:
  SetLength(MySnake,Length(MySnake)+1);
нижний индекс динамического массива (обычно это 0, но мало ли как будут вести себя последующие версии компилятора) определяется функцией Low(), верхний индекс - High(). Таким образом цикл по массиву (например для переопределения координат при перемещении) можно организовать так:
Код:
  for i:=Low(MySnake) to High(MySnake) to
  ...
Этого на мой вгляд достаточно
Ответить с цитированием