Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2011, 09:23   #1
AntonEew
Пользователь
 
Аватар для AntonEew
 
Регистрация: 21.07.2011
Сообщений: 12
По умолчанию управление с клавиатуры.

не подскажете, как при помощи команды ReadKey сделать управление объектом с клавиатуры?
что-то вроде
if readkey:=#75 then move...
или же каким-то образом через case of end?
надо, чтоб при нажатии стрелки влево объект двигался влево.
Дорога появляется под ногами идущего...
AntonEew вне форума Ответить с цитированием
Старый 23.07.2011, 11:52   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
не подскажете, как при помощи команды ReadKey сделать управление объектом с клавиатуры?
Подскажу
Код:
Uses CRT;
Var
   ch:Char;
Begin
   ch:=ReadKey;
   If ch = #75 then //движение объекта влево
End.
Цитата:
или же каким-то образом через case of end?
Если необходимо реализовать движение во все стороны, то лучше пользоваться Case.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 23.07.2011, 12:54   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Перемещение стрелками круга.

Код:
uses crt,graph;
var x0,y0,x,y:integer;
    c:char;
procedure Move(x,y:integer);
begin
setcolor(11);
circle(x,y,20);
setfillstyle(1,11);
fillellipse(x,y,20,20);
end;
procedure Clear(x,y:integer);
begin
setcolor(0);
circle(x,y,20);
setfillstyle(1,0);
fillellipse(x,y,20,20);
end;
begin
x0:=0;
initgraph(x0,y0,'');
x0:=getmaxX div 2;
y0:=getmaxY div 2;
x:=x0;y:=y0;
Move(x0,y0);
outtextXY(100,30,'Upravlenie - strelki');
outtextXY(130,50,'Vihod - Esc');
repeat
c:=readkey;
case c of
#72:begin
    delay(50);
    Clear(x,y);
    y:=y-5;
    Move(x,y);
    end;
#77:begin
    delay(50);
    Clear(x,y);
    x:=x+5;
    Move(x,y);
    end;
#80:begin
    delay(50);
    Clear(x,y);
    y:=y+5;
    Move(x,y);
    end;
#75:begin
    delay(50);
    Clear(x,y);
    x:=x-5;
    Move(x,y);
    end;
end;
until c=#27;
end.
puporev вне форума Ответить с цитированием
Старый 23.07.2011, 18:25   #4
AntonEew
Пользователь
 
Аватар для AntonEew
 
Регистрация: 21.07.2011
Сообщений: 12
По умолчанию

then ... что?
как компьтеру объяснить движение влево?
через move?
но там вроде отдельно х и у прописывать надо, а мне это никчему.
что-то типа move left?
ругается на неопознанную переменную.
кстати, спасибо за подсказку.)
Дорога появляется под ногами идущего...

Последний раз редактировалось AntonEew; 23.07.2011 в 22:55.
AntonEew вне форума Ответить с цитированием
Старый 24.07.2011, 11:12   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
но там вроде отдельно х и у прописывать надо, а мне это никчему.
Ну и отдыхай, а то как говориться ни украсть, ни покараулить...
puporev вне форума Ответить с цитированием
Старый 24.07.2011, 11:48   #6
AntonEew
Пользователь
 
Аватар для AntonEew
 
Регистрация: 21.07.2011
Сообщений: 12
По умолчанию

нет, я не хотел тебя обидеть, просто в твоем коде паскаль ругается на Clear.
типа, неопознанная переменная.
и когда я пишу move (x, y); ему не нравится выражение в скобках.
не пойми меня неправильно)
Дорога появляется под ногами идущего...
AntonEew вне форума Ответить с цитированием
Старый 24.07.2011, 11:51   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
ругается на Clear.
типа, неопознанная переменная.
С какого это перепугу, если выше написано.
Код:
procedure Clear(x,y:integer);
begin
setcolor(0);
circle(x,y,20);
setfillstyle(1,0);
fillellipse(x,y,20,20);
end;
puporev вне форума Ответить с цитированием
Старый 24.07.2011, 11:53   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
и когда я пишу move (x, y); ему не нравится выражение в скобках.
Так ты для начала ничего в моем коде не меняй, а просто скопируй и запусти в турбо Паскале или во Free Pascal. Я же не просто так код скинул, а предварительно проверенный.
puporev вне форума Ответить с цитированием
Старый 25.07.2011, 16:51   #9
AntonEew
Пользователь
 
Аватар для AntonEew
 
Регистрация: 21.07.2011
Сообщений: 12
По умолчанию

твой код он кушает, а вот когда я пытаюсь добавить его в свой, он сильно ругается.
либо компилится, но объект никуда не двигается.
либо вылетает при нажатии стрелки. пробовал и procedure, и case of end...
вот мой исходный код объекта:

Код:
program tank;

 uses Crt, Graph;

 var Gd, Gm:Integer;
 move:char;

 begin
 Gd:=VGA;
 Gm:=VGAHi;
 InitGraph (Gd, Gm, '...\bgi');
 If GraphResult = grOK then

 ClearDevice;

 setfillstyle (1,7);
 Bar (300,425,350,470);
 setfillstyle (1,8);
 Bar (285,410,300,479);
 Bar (350,410,365,479);
 Bar (315,445,335,460);
 Bar (323,400,327,455);

 ReadLn;
 end.

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Дорога появляется под ногами идущего...

Последний раз редактировалось Serge_Bliznykov; 25.07.2011 в 21:54.
AntonEew вне форума Ответить с цитированием
Старый 25.07.2011, 17:01   #10
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ну, судя по твоему коду, это клинический случай, я лично пас.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(SDL) Управление с клавиатуры Кипящий чайник Qt и кроссплатформенное программирование С/С++ 4 02.07.2011 21:25
Перемещение объекта по форме.(Управление с клавиатуры) gralex10 Помощь студентам 1 28.03.2011 15:57
Управление в игре с клавиатуры Mr_freeman Помощь студентам 2 19.01.2010 11:07
Управление с клавиатуры kpishnik Помощь студентам 10 27.07.2008 18:38
Управление с клавиатуры PikeIt Общие вопросы Delphi 6 27.12.2006 17:41