Короче, я делаю игру, знаю команду sleep(); но она останавливает всю программу, а мне нужна остановка лишь части программы, я вспомнил модуль timers, но не могу в нём разобраться, плиз, не надо говорить почитай помощь или погугли, в инете пусто, а в помощи непонятно, можете объяснить аспекты этого модуля и его операторы? Если этот модуль не может то, чего я хочу, то можете предложить аналог?
Кстати, ещё вопрос.... В GraphABC координаты могут выступать не только в роли целых чисел? Ну как пример может быть координата 9.5?
Другие языки программирования и технологии
Народ, пожалуйста, помогите в паскалеABC с модулем TIMERS... Помогите
вот тебе тестовая программа. она может использовать таймер, а может и нет. для того что бы таймер был использован сделай эту логическую переменную истиной 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.
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.
>>может быть координата 9.5?
Кемеровские дизайнеры настолько суровые, что расщепили пиксель (с)
Лучше расскажи для чего тебе делать паузу. Возможно стоит обойтись без нее, ибо делать такое на Pascal ABC - глупо и бессмысленно.
Кемеровские дизайнеры настолько суровые, что расщепили пиксель (с)
Лучше расскажи для чего тебе делать паузу. Возможно стоит обойтись без нее, ибо делать такое на Pascal ABC - глупо и бессмысленно.
>>может быть координата 9.5?
нет.
нет.
Похожие вопросы
- TURBOPASCAL 7.0 модуль dos помогите пожалуйста с подпрограммой
- Здравствуйте. Заключите, пожалуйста, следующий набор цифр в модуль. Очень нужно. 1 2 3 4 5 6 7 8 9 Премного благодарен.
- Помогите пожалуйста избавиться от "синего экрана смерти"! кто поможет, тому +10 баллов гарантирую!
- Пожалуйста помогите как создать простинкую програму.
- Люди пожалуйста помогите заблокирован windows
- Пожалуйста, помогите исправить ошибки в программах на С++!
- Пожалуйста помогите разобраться с даним кодом C++. Тема : Односвязание списки
- Пожалуйста, помогите решить задачку по информатике...
- Turbo Pascal помогите пожалуйста. помогите пожалуйста с написание программы для вычисления 1-й и 2-й производной функции
- Люди, кто умееть работать в QBasic, ПОЖАЛУЙСТА ПОМОГИТЕ!!!