Другие языки программирования и технологии
ребята, может кто-нибудь объяснить как на pascal создавать анимированные объекты?
P.s думаю, что это поможет мне больше, чем, если я просто попрошу решить задачи
Если задача на сближение двух шаров, то я бы на решил её на PascalABCNet так:
uses GraphABC;
var
R,Xa,Ya,Xb,Yb:integer; // радиус и координаты
d:integer; // изменение (т. е. скорость)
markA,markB:boolean; // маркеры, указывающие направление движение шаров
a,b:integer; // размеры window-окна)
begin
R := 50; // радиусы шаров
Xa := 100; // координаты
Ya := 100;
Xb := 500;
Yb := 100;
d := 1; // скорость
markA := true; // направление движение - навстречу
markB := true;
a := 700; // размеры окна
b := 300;
SetWindowSize(a,b); // устанавливаем
while(true) do begin
clearwindow; // очищаем экран
setBrushColor(clRed); // устанавливаем цвет шара
circle(Xa,Ya,R); // рисуем шар
setBrushColor(clBlue); // то же самое
circle(Xb,Yb,R);
// в зависимости от направления движения шара (т. е. переменной mark), изменяем и координаты по Иксу.
if(markA = true) then Xa := Xa + d
else Xa := Xa - d;
if(markB = true) then Xb := Xb - d
else Xb := Xb +d;
// шары сталкиваются вместе именяют направления на противоположные
if(Xa+50 = Xb-50) then begin markA := false; markB := false; end;
if(Xa-50 = 0) then markA := true; // шар сталкивается с правой стенкой
if(Xb+50 = a) then markB := true; // шар сталкивается с левой стенкой
sleep(10); // время задержки
redraw;
end;
end.
uses GraphABC;
var
R,Xa,Ya,Xb,Yb:integer; // радиус и координаты
d:integer; // изменение (т. е. скорость)
markA,markB:boolean; // маркеры, указывающие направление движение шаров
a,b:integer; // размеры window-окна)
begin
R := 50; // радиусы шаров
Xa := 100; // координаты
Ya := 100;
Xb := 500;
Yb := 100;
d := 1; // скорость
markA := true; // направление движение - навстречу
markB := true;
a := 700; // размеры окна
b := 300;
SetWindowSize(a,b); // устанавливаем
while(true) do begin
clearwindow; // очищаем экран
setBrushColor(clRed); // устанавливаем цвет шара
circle(Xa,Ya,R); // рисуем шар
setBrushColor(clBlue); // то же самое
circle(Xb,Yb,R);
// в зависимости от направления движения шара (т. е. переменной mark), изменяем и координаты по Иксу.
if(markA = true) then Xa := Xa + d
else Xa := Xa - d;
if(markB = true) then Xb := Xb - d
else Xb := Xb +d;
// шары сталкиваются вместе именяют направления на противоположные
if(Xa+50 = Xb-50) then begin markA := false; markB := false; end;
if(Xa-50 = 0) then markA := true; // шар сталкивается с правой стенкой
if(Xb+50 = a) then markB := true; // шар сталкивается с левой стенкой
sleep(10); // время задержки
redraw;
end;
end.
Жека Киселёв
спасибо за личный ответ в агенте. вы мне очень помогли.
Поверьте -- вам никогда не пригодится умение двигать картинки в паскале.
Жека Киселёв
увы, курсовая так не считает :с
Смотря, какая анимация? Если 2D, то в старых Delphi, с помощью GDI+, или GR32. Если будете делать, то лучше GR32: бесплатная, простая, и реально быстрая. Если 3D, то можно через WinAPI: OpenGL или DirectX, но лучше возьмите готовый движок GLScene, она бесплатная. Все можно лехко скачать, вместе с примерами, если надо: ищите в гуглях по названиям, которые я дала.
Если DelphiXE3, и старше, то можно делать в FireMonkey, без дополнительных примочек.
Если в TurboPascal, то 3D ИМХО только через WinAPI: OpenGL или DirectX, но возни ОЧЕНЬ много. Если 2D-анимацию, то через GDI+, это проще, но тож муторно.
Анимация делается часто, и на Delphi, в его обычной нише: в больших системах заказчики хотят навороченные интерфейсы, и + визуализацию данных.
Если DelphiXE3, и старше, то можно делать в FireMonkey, без дополнительных примочек.
Если в TurboPascal, то 3D ИМХО только через WinAPI: OpenGL или DirectX, но возни ОЧЕНЬ много. Если 2D-анимацию, то через GDI+, это проще, но тож муторно.
Анимация делается часто, и на Delphi, в его обычной нише: в больших системах заказчики хотят навороченные интерфейсы, и + визуализацию данных.
*no_Name* *no_Commment*
> Если в TurboPascal, то 3D ИМХО только через WinAPI: OpenGL или DirectX
OpenGL и DirectX - в Turbo Pascal? 0_o Типа во времена DOS уже можно было трехмерные игры писать?
Да и причем здесь WinAPI? WinAPI - это GDI, ну GDI+ в крайнем случае, но не OpenGL и тем более не DirectX.
OpenGL и DirectX - в Turbo Pascal? 0_o Типа во времена DOS уже можно было трехмерные игры писать?
Да и причем здесь WinAPI? WinAPI - это GDI, ну GDI+ в крайнем случае, но не OpenGL и тем более не DirectX.
На каком паскале из их множества?
Жека Киселёв
turbо
Похожие вопросы
- Ребят появился интерес к языкам по-мощнее pascal, решал выучить С.
- Объясните смысл прогаммы в Turbo Pascal
- Объясните пожалуйста вот этот алгоритм в Free Pascal
- pascal or delphi
- Как склеить 3 анимированные картинки?
- Один вопрос по Pascal (или Object Pascal, или Delphi) (не надо ничего решать, просто один вопрос)
- Подскажите программу по созданию анимированных картинок, в которую можно вставлять видео-фрагменты.
- Зачем изучают Pascal если есть Python?
- Программисты Python, Pascal или Scheme для обучения программированию?
- Язык программирования Pascal сложен в изучении?