Другие языки программирования и технологии

Народ, пожалуйста, помогите в паскалеABC с модулем TIMERS... Помогите

Короче, я делаю игру, знаю команду sleep(); но она останавливает всю программу, а мне нужна остановка лишь части программы, я вспомнил модуль timers, но не могу в нём разобраться, плиз, не надо говорить почитай помощь или погугли, в инете пусто, а в помощи непонятно, можете объяснить аспекты этого модуля и его операторы? Если этот модуль не может то, чего я хочу, то можете предложить аналог?

Кстати, ещё вопрос.... В GraphABC координаты могут выступать не только в роли целых чисел? Ну как пример может быть координата 9.5?
AW
Allen Walker
3 702
вот тебе тестовая программа. она может использовать таймер, а может и нет. для того что бы таймер был использован сделай эту логическую переменную истиной usetimer=false;

uses
graphabc, timers;

const
siz = 40;
usetimer=false;
var
x: integer := 1;
y: integer := 1;
cont: integer;
pole: array [0..7, 0..10]of byte := ((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), (1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1), (1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), (1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), (1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), (1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1), (1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1));
t: timer;

procedure draw;
begin
if usetimer then t.stop;
LockDrawing;
pen.Color := clgray;
for var i := 0 to 7 do
for var j := 0 to 10 do
begin
case pole[i, j] of
0: brush.color := clgray;
1: brush.Color := clblack;
2: brush.Color := clred;
end;
Rectangle(j * siz, i * siz, j * siz + siz, i * siz + siz);
end;
Redraw;
inc(cont);
if usetimer then t.start;
end;

procedure d1(key: integer);
var
newx, newy: integer;
begin
newx := x;
newy := y;
case key of
37: newx := x - 1;
38: newy := y - 1;
39: newx := x + 1;
40: newy := y + 1;
27: Window.Close;
13:window.Save('1');
end;
if pole[newy, newx] = 0 then
begin
pole[y, x] := 0;
pole[newy, newx] := 2;
x := newx;y := newy;
if not usetimer then draw;
end;
end;

begin
cont := 0;
if usetimer then
begin
t := new timer(40, draw);
t.start;
end;

OnKeyDown := d1;
draw;
end.
▼▼
▼ ▼
22 439
Лучший ответ
>>может быть координата 9.5?
Кемеровские дизайнеры настолько суровые, что расщепили пиксель (с)

Лучше расскажи для чего тебе делать паузу. Возможно стоит обойтись без нее, ибо делать такое на Pascal ABC - глупо и бессмысленно.
>>может быть координата 9.5?
нет.