51 lines
1.1 KiB
ObjectPascal
51 lines
1.1 KiB
ObjectPascal
unit hamster_m;
|
|
|
|
interface
|
|
|
|
uses arena_graphics_m, arena_m, creature_m, trace_m;
|
|
|
|
const
|
|
HamsterStartX = 5;
|
|
HamsterStartY = 1;
|
|
HamsterStartDX = 0;
|
|
HamsterStartDY = 0;
|
|
HamsterMovespeed = 2;
|
|
HamsterSymbol = 'h';
|
|
|
|
procedure InitHamster(var h: creature);
|
|
procedure KillHamster(var h: creature; var t: tracePtr; var a: arena);
|
|
|
|
implementation
|
|
|
|
uses graphics_m;
|
|
|
|
procedure InitHamster(var h: creature);
|
|
begin
|
|
InitCreature(h, HamsterStartX, HamsterStartY,
|
|
HamsterMovespeed, HamsterSymbol);
|
|
h.dX := HamsterStartDX;
|
|
h.dY := HamsterStartDY
|
|
end;
|
|
|
|
procedure KillHamster(var h: creature; var t: tracePtr; var a: arena);
|
|
var
|
|
traceStart: tracePtr;
|
|
begin
|
|
DrawArenaCell(h.curX, h.curY, ArenaSymbol);
|
|
EraseTrace(t, a);
|
|
if IsOnEdge(h) then
|
|
DrawEdge(h.curX, h.curY, a)
|
|
else
|
|
if a.borders[h.curX][h.curY] then
|
|
DrawArenaCell(h.curX, h.curY, BorderSymbol);
|
|
GetStart(traceStart, t);
|
|
h.curX := traceStart^.x;
|
|
h.curY := traceStart^.y;
|
|
h.dX := HamsterStartDX;
|
|
h.dY := HamsterStartDY;
|
|
DeleteTrace(t);
|
|
DrawCreature(h)
|
|
end;
|
|
|
|
end.
|