|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2016, 03:26 | #1 |
Регистрация: 22.12.2016
Сообщений: 9
|
Присвоить движение объекта к готовой программе
Доброго вечера всем!)
Помогите пожалуйста присвоить клавишу w,s - вперед, назад(что-бы шар крутился вперед либо назад) и m,n - масштаб(что-бы шар изменял свой размер), буду очень благодарен, сам шаманю никак не получается, спасибо Код HTML:
Uses Graph, Crt;
Const
RadOrb = 250; RadSun = 70;
RadGal = 100; RadZem = 18;
Naklon = 0.2;
PressZem = 0.65;
Compress = 0.8;
Var
LunX, LunY, UgMer, PixelY, DUgLuna , UpDown,
XRad, Grad, UgZem, PixelX, StAngle, Ua, Ub,
ParallelY , Color, LunPix, EndAngle,
VisualPage, GrMode, GrError, GrDriver, i : Integer;
Ugol, CompressLuna, Expansion,
DUgol, Projection, PolUgol : Real;
BEGIN
GrDriver := EGA; GrMode := EGAHi;
InitGraph(GrDriver, GrMode, 'C:\TP\BGI');
GrError := GraphResult; If GrError<>GrOk then Halt;
SetBkColor(0);
SetFillStyle(1, 2);
Ugol := 0; DUgol := 2*Pi/180;
UgZem := 0; DUgLuna := 14;
VisualPage := 1;
Repeat
SetVisualPage(1- (VisualPage mod 2));
VisualPage := VisualPage+1;
SetActivePage(1 - (VisualPage mod 2));
cleardevice;
PieSlice(310, 160, 0, 360, RadSun);
Ugol := Ugol+DUgol ;
Grad := Round(180*Ugol/Pi) mod 360;
LunX := 320+Round(RadOrb*cos((Ugol+Pi/2+0.3)));
LunY:=160+Round(RadOrb*Naklon*sin(Ugol));
CompressLuna := 2.5-cos(Ugol+0.3);
LunPix := Round(RadZem*CompressLuna);
UgZem := UgZem+DUgLuna;
For i := 0 to 11 do
begin
UgMer := (UgZem+i*30) mod 360;
If (90<UgMer) and (UgMer<270)
then begin StAngle := 90; EndAngle := 270 end
else begin StAngle := 270; EndAngle := 90 end;
Ua := (Grad+220) mod 360; Ub := (Grad+400) mod 360;
Color := LightBlue;
If Ua<=Ub then if (Ua<UgMer) and (UgMer<Ub) then Color := White;
If Ua >Ub then if (Ua<UgMer) or (UgMer<Ub) then Color := White;
SetColor(color);
XRad := round((LunPix*cos(UgMer*Pi/180)));
Ellipse(LunX,LunY,StAngle,EndAngle,abs(XRad),round(PressZem*LunPix));
end;
For i := 2 to 7 do
begin
XRad := abs(Round(LunPix*sin(i*Pi/9)));
UpDown := Round(LunPix*PressZem*cos(i*Pi/9));
ParallelY := LunY+UpDown;
SetColor(LightBlue);
Ellipse(LunX, ParallelY, 0, 360, XRad, Round(Naklon*XRad));
setcolor(15);
Ellipse(LunX,ParallelY,Grad+220,Grad+400,XRad,Round(Naklon*XRad));
end;
If CompressLuna<2 then PieSlice(310, 160, 0, 360, RadSun);
RandSeed := VisualPage mod 12;
until KeyPressed
END.
Последний раз редактировалось Ktoto2; 22.12.2016 в 03:38. |
22.12.2016, 08:57 | #2 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Во вложении фрагмент кода, в котором анализируется нажатие клавиш и выполняются необходимые изменения параметров. Это из моих лаб.
В этом коде выполняется анализ нажатия как функциональных клавиш, так и обычных. Думаю, что разобраться будет просто. PS: Больше ясности, возможно, найдешь в пособии: Т.А. Павловская, Паскаль, Программирование на ЯВУ, Практикум Этим пособием пользовался с удовольствием. У этого автора есть и учебник, см. список литературы. Как-то так, ...
Как-то так, ...
|
22.12.2016, 18:49 | #3 |
Регистрация: 22.12.2016
Сообщений: 9
|
Спасибо друг!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Составить Алгоритм по готовой программе. Делфи | Bracho1994 | Помощь студентам | 0 | 21.05.2013 23:28 |
Помгите написать комментарии к готовой программе! | Stasy_BMT | Помощь студентам | 0 | 06.06.2012 22:02 |
Нужны блок схемы по готовой программе. | Profan4ik | Помощь студентам | 4 | 01.07.2010 09:00 |
Нужна блок схема к готовой программе. | BioVis | Фриланс | 8 | 11.05.2009 18:03 |