Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для Slevin_K
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 47

Анимация. Нужно заставить пароход двигаться к берегу и обратно

14.02.2014, 20:17. Показов 1506. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Program P_3;
Uses CRT, Graph;
var GRAPHDRIVER, GRAPHMODE, ERRORCODE: integer;
BEGIN
GRAPHDRIVER:=Detect;
Initgraph (GRAPHDRIVER, GRAPHMODE,'');
errorcode :=Graphresult;
if ERRORCODE <>0  then
 begin
 writeln( 'Oshibka grafiki:');
 writeln(  Grapherrormsg (ERRORCODE));
 writeln('Programma zavershena');
 end;
Cleardevice;
Setfillstyle (1,9);
Bar(0,0,640,349);
Setfillstyle (1,1);
Bar (0,350,640,480);
Setcolor(14);
Setfillstyle(1,14);
Pieslice(0,0,270,360,90);
Line (0,0,10,150);
Line (0,0,50,165);
Line (0,0,100,250);
Line (0,0,120,190);
Line (0,0,180,150);
Line (0,0,250,75);
Line (0,0,219,115);
Line (0,0,165,175);
Line (0,0,230,40);
Line (0,0,250, 10);
Setcolor (14);
Setfillstyle (1,14);
Ellipse (640,360,0,360,80,60);
Floodfill (640,480,14);
Floodfill(630,360,14);
   Setcolor (15);
   Setfillstyle (1,15);
   Bar (90,340,230,380);
   Bar (110,300,210,340);
   Bar (130,270,190,300);
 
   Setcolor (0);
   Setfillstyle(1,0);
   Line(120,300,120,260);
   Setcolor (1);
   Setfillstyle (1,1);
   Bar (100,260,120,270);
   Setcolor (14);
   Setfillstyle (1,14);
   Bar (100,270,120,280);
 
   Setcolor (0);
   Setfillstyle(1,0);
   Circle (110,360,5);
   Circle (160,360,5);
   Circle (200,360,5);
   Circle (140,320,6);
   Circle (180, 320, 6);
   Circle (160, 290,7);
 
   Setcolor(15);
   Setfillstyle(1,15);
   Bar (140,280,150,250);
repeat
 
until keypressed;
readkey;
Closegraph;
end.
Миниатюры
Анимация. Нужно заставить пароход двигаться к берегу и обратно  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2014, 20:17
Ответы с готовыми решениями:

Нужно добавить кнопку, при нажатии на которую шарик перестает двигаться вправо-влево, и начинает двигаться вверх-вниз
Пожалуйста помогите переделать программу. Нужно добавить кнопку, при нажатии на которую шарик перестает двигаться вправо-влево, и начинает...

Заставить двигаться Wireworld
Wireworld состоит из электронов, которые двигаются по определенным правилам: Empty -&gt; Empty Head -&gt; Tail Tail -&gt;...

Как заставить картинки двигаться??????
Solid Works позволяет сделать анимацию спроектированной детали

4
Форумчанин Паскаля
 Аватар для code-n'-help
77 / 90 / 55
Регистрация: 08.11.2013
Сообщений: 399
Записей в блоге: 2
15.02.2014, 09:03
И в чём собственно проблема то?
0
 Аватар для zvoronz
273 / 241 / 56
Регистрация: 29.05.2012
Сообщений: 889
15.02.2014, 09:42
1. Объявляем переменные ship_x, ship_y
2. Переменным задаём начальное значение например ship_x := 100; ship_y := 440;
3. Теперь нужно переписать часть кода по отрисовки корабля с использованием этих 2-х переменных
4. Простой способ: Весь код рисования помещаем в цикл и в цикле меняем координаты(будет всё сильно мерцать)
Посложнее способ: Нужно копировать область экрана куда будет рисоваться корабль, потом рисовать корабль, потом копировать сохраненную область обратно(стирать корабль), смещать координаты корабля и повторять всё с начала.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
15.02.2014, 10:14
Лучший ответ Сообщение было отмечено Slevin_K как решение

Решение

Корабль большой, поэтому сильное мерцание при отрисовке
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Program P_3;
Uses CRT, Graph;
{рисование корабля}
procedure korabl(x,y:integer);
begin
Setcolor (15);
Setfillstyle (1,15);
Bar (x,y+90,x+140,y+130);
Bar (x+20,y+50,x+120,y+90);
Bar (x+40,y+20,x+100,y+50);
Setcolor (0);
Setfillstyle(1,0);
Line(x+30,y+50,x+30,y+10);
Setcolor (1);
Setfillstyle (1,1);
Bar (x+10,y+10,x+30,y+20);
Setcolor (14);
Setfillstyle (1,14);
Bar (x+10,y+20,x+30,y+30);
Setcolor (0);
Setfillstyle(1,0);
Circle (x+20,y+110,5);
Circle (x+70,y+110,5);
Circle (x+110,y+110,5);
Circle (x+50,y+70,6);
Circle (x+90, y+70, 6);
Circle (x+70, y+40,7);
Setcolor(15);
Setfillstyle(1,15);
Bar (x+50,y+30,x+60,y);
end;
 
var GRAPHDRIVER, GRAPHMODE, ERRORCODE: integer;
    x,y,x1,y1,size,t,t1,d:integer;
    p:pointer;
BEGIN
GRAPHDRIVER:=Detect;
Initgraph (GRAPHDRIVER, GRAPHMODE,'');
errorcode :=Graphresult;
if ERRORCODE <>0  then
 begin
 writeln( 'Oshibka grafiki:');
 writeln(  Grapherrormsg (ERRORCODE));
 writeln('Programma zavershena');
 end;
{рисуем фон}
Cleardevice;
Setfillstyle (1,9);
Bar(0,0,640,349);
Setfillstyle (1,1);
Bar (0,350,640,480);
Setcolor(14);
Setfillstyle(1,14);
Pieslice(0,0,270,360,90);
Line (0,0,10,150);
Line (0,0,50,165);
Line (0,0,100,250);
Line (0,0,120,190);
Line (0,0,180,150);
Line (0,0,250,75);
Line (0,0,219,115);
Line (0,0,165,175);
Line (0,0,230,40);
Line (0,0,250, 10);
Setcolor (14);
Setfillstyle (1,14);
Ellipse (640,360,0,360,80,60);
Floodfill (640,480,14);
Floodfill(630,360,14);
x:=0;
y:=230;
x1:=30;
y1:=260;
size:=imagesize(x,y,x1+140,y1+130);
getmem(p,size);
getimage(x,y,x1+140,y1+130,p^);
korabl((x+x1)div 2,(y+y1)div 2);
repeat
if x<=0 then d:=1;
putimage(x,y,p^,copyput);
t:=x;
t1:=x1;
x:=x+d;
x1:=x1+d;
getimage(x,y,x1+140,y1+130,p^);
korabl((x+x1)div 2,(y+y1)div 2);
if x>=400 then d:=-1;
until keypressed;
readkey
end.
1
 Аватар для Slevin_K
1 / 1 / 0
Регистрация: 12.02.2014
Сообщений: 47
15.02.2014, 18:22  [ТС]
Puporev, огромное спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2014, 18:22
Помогаю со студенческими работами здесь

Заставить прямоугольники двигаться на форме
Хочу сделать игру. Нужно заставить небольшие прямоугольники двигаться по форме с разной (желательно) скоростью. То есть они отталкиваются...

Не могу заставить окно двигаться
Здравствуйте! Есть такое задание: Написать приложение, обладающее следующей функциональностью: - при нажатии клавиши...

Как заставить окна двигаться?
Добрый день уважаемые форумчане. Мне дали задание: создать 9 окон, с помощью регионов сделать их круглыми, в центре экрана поместить 1...

Как заставить двигаться Scroll?
Господа форумчане и иже выше от них стоящие !:pardon: Кто подскажет, как заставить двигаться этот ослячий элемент типа скролл.Жму на...

Заставить шар двигаться по траектории
Стоит задача: нужно заставить шар двигаться по траектории. Начало в центре верхней линии PictureBox, он должен, как бы, пройти по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru