1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Задача про передвижение в пределах экрана, Turbo Pascal
Народ хэлп! Нужно в паскале заставить фигуру двигаться в пределах экрана по определенной траектории(траектория показана на рисунке). Как делать передвижение? С помощью циклов или условий? Как сделать, чтобы двигалось в пределах экрана? Две недели мучаюсь ничего не выходит! Покопался в темах - толком ничего не нашел. Выручите плиз!!!
p.s. Фигура двигается так: из точки 0,0 по диагонали вниз (45 градусов), как только доходит до низа экрана "отскакивает" вверх, и всегда как только доходит до низа отскакивает вверх. Далее всегда как только доходит до верха опять идет по диагонали до правого предела экрана "отскакивает" и идет по горизонтали до левого предела экрана. После этого опять по диагонали. И так до бесконечности.
всем кто участвовал в решении этой задачи большое спасибо!!!
отдельное спасибо klem4!
появилась другая проблема. у меня не получается сделать так, чтобы код(взял код klem4) работал у меня в программе.то идет по диагонали, не "видя" нижнего предела экрана, то вообще не двигается.раньше думал, что проблема в условиях. теперь вроде все правильно, но все равно не работает. Вообщем выкладываю листинг проги(вернее модуля) с которым проблемы. Может кто-нибудь разбереться.
unit ULABRAB; interface uses Graph,Crt,UVIDEO,UDIAGRAM; type
implementation {здесь все работает(убрал для уменьшения объема)}
constructor TMyFigure4.init(axf,ayf:integer; ar:word; acolor_fig:byte); begin if (axf<0) or (axf>Video.getXmax) then xf:=(Video.getXmax div 2) else xf:=axf; if (ayf<0) or (ayf>Video.getYmax) then yf:=(Video.getYmax div 2) else yf:=ayf; inherited init(xf,yf,ar,acolor_fig); s:=true end;
procedure TMyFigure4.moveTraject(at:integer);
{здесь расчет передвижения}
procedure TMyFigure4.dx_dy(dxfig,dyfig:integer); begin inherited dx_dy(dxfig,dyfig); end; end.
поясню: xf,yf - координаты "старта" прорисовки фируры, r - радиус, at - скорость передвижения фигуры. Эти параметры и цвет задает пользователь.