Создадим простой объект - камень (stone).
Добавьте в проект новый модуль u001_Stone.pas. Добавьте в interface uses модули GamingWorldChessed, Grafics, Classes. Наследуйте класс TStone от TLifelessObjectChessed. Переопределите конструктор и задайте в нем цвет объекта, вид отрисоки - простая фигура и вид фигуры:
constructor TStone.Create(AOwner: TComponent);
begin
inherited;
FPaintedAs := paSimpleFigure;
FPaintedAsFigure := acfSquare;
FColor := clGray;
end;
Доопределите метод Iterate. Оставьте его пустым.
Наследуйте класс TStoneWorld от TGamingWorldChessed и доопределите метод GenerateObjects:
procedure TStoneWorld.GenerateObjects;
var
stone: TStone;
begin
stone := TStone.Create(Self);
PlaceObject(stone, 1, 1);
inherited;
end;
Здесь мы создаем объект типа "Камень" и размещаем его в клетке 1,1.
Подправим форму приложения, чтобы можно было прогнать нашу модель-мир, указав, что создавать мир нужно типа TStoneWorld:
procedure TfrmMain.aCreateGamingWorldExecute(Sender: TObject);
begin
aDestroyGamingWorld.Execute;
GamingWorldGlobal := TStoneWorld.Create;
//Установка визуальных параметров области рисования
with pbBoard do begin
Width := GamingWorldGlobal.BOARDDIM_HOR * DimCreature;
Height := GamingWorldGlobal.BOARDDIM_VERT * DimCreature;
canvas.Pen.Style := psSolid;
canvas.Brush.Style := bsSolid;
end;
aCreateGamingWorld.Enabled := false;
aCreateCaptures.Enabled := true;
end;
Билдим приложение, запускаем. Устанавливаем параметр "Время на показ" поменьше - 0.05, затем последовательно выбираем в меню Игровой Мир -> Создать и Игровой мир - Создать тварей.
В верхней клеточке появится наш объект серого цвета. Нажатием кнопки "Симуляция" мы запускаем симуляцию жизни. Видно, что наш камень ничего не делает. Все, как мы и планировали.
Далее: Размножающееся растение с жизненным циклом.
Предыдущее: Суть проекта