Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 10

Реализовать движение влево-вправо подводного челнока

17.04.2013, 23:57. Показов 2352. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите реализовать движение влево в право вот етого подводного челнока
желательно подробней описать посоколько мне ещо нужно потом реализовать подем и опускание тинескопа по тойже схеме

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  uses GraphABC;
begin
 
setbrushcolor(clGray);
Rectangle(173, 140, 245, 195);
setbrushcolor(clBlue);
Ellipse (170,200,410,135);
setbrushcolor(clYellow);
Circle(220, 160, 10);
Circle(250, 160, 10);
Circle(280, 160, 10);
Circle(310, 160, 10);
Circle(340, 160, 10);
Ellipse (360,150,400,170);
setbrushcolor(clGray);
Rectangle(190, 175, 390, 185);
 
 
end.
Добавлено через 57 минут
вот ето все если можно зделать вот в етом окружение

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
uses graphABC,crt;
var
 x,y,k: integer;
 xx,yy,a,h,w: real;
begin
lockdrawing;
hidecursor;
setwindowsize(816,460);
repeat
a:=0; k:=20; h:=10; w:=0.5;
while a<=10 do
      begin
      clearwindow(clskyblue);
      xx:=0*k; yy:=H*sin( w*xx + a );
      while xx<=8.9*k do
               begin
            y:=round( H*sin( w*xx + a ));
            x:=round(xx*k);
            putpixel(x,y+20,clblack);
             putpixel(x,y+500,clblack);
            xx:=xx+0.02;
               end;
      line(0,20+round(yy),0,500+round(yy));
      line(815,20-round(yy),815,500-round(yy));
      floodfill(200,130,clwhite);
      floodfill(200,230,clblue);
      a:=a+0.5;
      sleep(100);
      redraw;
      end;
until keypressed;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.04.2013, 23:57
Ответы с готовыми решениями:

Графика.Движение автобуса, управляемого стрелками вправо и влево
Графика.Движение автобуса, управляемого стрелками вправо и влево.

Движение шарика при нажатии клавиши вверх вниз влево вправо
Приветствую вас.:)Надо сделать что бы шарик двигался при нажатии клавиши вверх вниз влево вправо. Это у меня получилось но шарик...

Движение текста вправо-влево
Вот такая задачка ... анимировать текс не пойму как.... просто чтоб матался &lt;--- , ---&gt; ... заранее спасиб..

4
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
18.04.2013, 02:04
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
uses graphABC,crt;
var
 x,y,k,qq,d: integer;
 xx,yy,a,h,w: real;
 
procedure Cheln (q,dd: integer);  //q - это позиция челна по х, d - направление, если положительно, то вправо, если отрицательно, то влево
begin
setbrushcolor(clGray);
if dd>=0 then Rectangle(q+173, 140, q+245, 195)
 else Rectangle(q+340, 140, q+410, 195);
setbrushcolor(clBlue);
Ellipse (q+170,200,q+410,135);
setbrushcolor(clYellow);
Circle(q+220, 160, 10);
Circle(q+250, 160, 10);
Circle(q+280, 160, 10);
Circle(q+310, 160, 10);
Circle(q+340, 160, 10);
Circle(q+370, 160, 10);
setbrushcolor(clGray);
Rectangle(q+190, 175, q+390, 185);
end;
 
begin
lockdrawing;
hidecursor;
setwindowsize(816,460);
qq:=-450; d:=10;
repeat
a:=0; k:=20; h:=10; w:=0.5;
while a<=10 do
      begin
      clearwindow(clskyblue);
      xx:=0*k; yy:=H*sin( w*xx + a );
      while xx<=8.9*k do
               begin
            y:=round( H*sin( w*xx + a ));
            x:=round(xx*k);
            putpixel(x,y+20,clblack);
             putpixel(x,y+500,clblack);
            xx:=xx+0.02;
               end;
      line(0,20+round(yy),0,500+round(yy));
      line(815,20-round(yy),815,500-round(yy));
      floodfill(200,130,clwhite);
      floodfill(200,230,clblue);
      Cheln (qq,d);
      a:=a+0.5;
      inc(qq,d);
      if qq>650 then d:=d*(-1);
      if qq<-450 then d:=d*(-1);
      sleep(100);
      redraw;
      end;
until keypressed;
end.
1
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 10
18.04.2013, 03:17  [ТС]
Буду благодарен кто поможет зделать выдвижной тинископ

вот код как он должен выгледить выдвинутым
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   uses GraphABC;
begin
 
   setbrushcolor(clSilver);
   Ellipse (285,62,303,70);
   setbrushcolor(clGray);
   Rectangle(285,66,303,71);
   Rectangle(285,70,295,190);
 
setbrushcolor(clGray);
Rectangle(173, 140, 245, 195);
setbrushcolor(clSilver);
Ellipse (170,200,410,135);
setbrushcolor(clYellow);
Circle(220, 160, 10);
Circle(250, 160, 10);
Circle(280, 160, 10);
Circle(310, 160, 10);
Circle(340, 160, 10);
Ellipse (360,150,400,170);
setbrushcolor(clGray);
Rectangle(190, 175, 390, 185);
end.
И Вот так должно выглядить сложеным

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   uses GraphABC;
begin
   //тенескоп сложен
   setbrushcolor(clSilver);
   Ellipse (285,162,303,130);
   //////////////////
setbrushcolor(clGray);
Rectangle(173, 140, 245, 195);
setbrushcolor(clSilver);
Ellipse (170,200,410,135);
setbrushcolor(clYellow);
Circle(220, 160, 10);
Circle(250, 160, 10);
Circle(280, 160, 10);
Circle(310, 160, 10);
Circle(340, 160, 10);
Ellipse (360,150,400,170);
setbrushcolor(clGray);
Rectangle(190, 175, 390, 185);
end.

вот код куда нужно все впихнуть

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
uses graphABC,crt;
var
 x,y,k,qq,d: integer;
 xx,yy,a,h,w: real;
 
procedure Cheln (q,dd: integer);
begin
lockdrawing;
//подводка
setbrushcolor(clGray);
if dd>=0 then Rectangle(q+173, 140, q+245, 195)
 else Rectangle(q+340, 140, q+410, 195);
setbrushcolor(clSilver);
Ellipse (q+170,200,q+410,135);
setbrushcolor(clYellow);
Circle(q+220, 160, 10);
Circle(q+250, 160, 10);
Circle(q+280, 160, 10);
Circle(q+310, 160, 10);
Circle(q+340, 160, 10);
Circle(q+370, 160, 10);
setbrushcolor(clGray);
Rectangle(q+175, 175, q+340, 185);
redraw;
end;
  //параметры судна
begin
lockdrawing;
hidecursor;
setwindowsize(816,460);
qq:=-450; d:=5;
repeat
a:=0; k:=20; h:=10; w:=0.5;
while a<=10 do
      begin
      clearwindow(clskyblue);
      xx:=0*k; yy:=H*sin( w*xx + a );
      while xx<=8.9*k do
      //параметры воды
               begin
            y:=round( H*sin( w*xx + a ));
            x:=round(xx*k);
            putpixel(x,y+110,clblack);
             putpixel(x,y+500,clblack);
            xx:=xx+0.02;
               end;
      //текстуры воды
      floodfill(200,130,clwhite);
      floodfill(200,230,clblue);
      Cheln (qq,d);
      a:=a+0.5;
      inc(qq,d);
      if qq>650 then d:=d*(-1);
      if qq<-450 then d:=d*(-1);
      sleep(100);
      redraw;
      end;
until keypressed;
end.
Добавлено через 9 минут
тинескоп должен подыматса когда судна доплывает почти до средины и опускатса когда отплывет от середины

Добавлено через 43 секунды
буду очень сильно благодарен
0
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1
19.04.2013, 09:23
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
uses graphABC,crt;
 
var
 x,y,k,qq,d,tel,tel2: integer;
 xx,yy,a,h,w: real;
 
procedure Cheln (q,dd: integer);
Label M,M2;
begin
lockdrawing;
//????????
 setbrushcolor(clSilver);
   Ellipse (qq+285,162,qq+303,130);
 if qq>10 then begin
   if tel>100 then goto M;
   tel:=tel+2;
    M:
    if tel2>100 then goto M2;
    if tel>100 then tel2:=tel2+2;
    M2:
    setbrushcolor(clSilver);
   Ellipse (qq+285,157-tel+tel2,qq+303,170-tel+tel2);
   
   setbrushcolor(clGray);
   Rectangle(qq+285,162-tel+tel2,qq+303,171-tel+tel2);
   Rectangle(qq+285,171-tel+tel2,qq+295,190);
   end;
setbrushcolor(clGray);
if dd>=0 then Rectangle(q+173, 140, q+245, 195)
 else Rectangle(q+340, 140, q+410, 195);
setbrushcolor(clSilver);
Ellipse (q+170,200,q+410,135);
setbrushcolor(clYellow);
Circle(q+220, 160, 10);
Circle(q+250, 160, 10);
Circle(q+280, 160, 10);
Circle(q+310, 160, 10);
Circle(q+340, 160, 10);
Circle(q+370, 160, 10);
setbrushcolor(clGray);
Rectangle(q+175, 175, q+340, 185);
redraw;
end;
  //????????? ?????
begin
lockdrawing;
hidecursor;
setwindowsize(816,460);
qq:=-450; d:=5;
repeat
a:=0; k:=20; h:=10; w:=0.5;
while a<=10 do
      begin
      clearwindow(clskyblue);
      xx:=0*k; yy:=H*sin( w*xx + a );
      while xx<=8.9*k do
      //????????? ????
               begin
            y:=round( H*sin( w*xx + a ));
            x:=round(xx*k);
            putpixel(x,y+110,clblack);
             putpixel(x,y+500,clblack);
            xx:=xx+0.02;
               end;
      //???????? ????
      floodfill(200,130,clwhite);
      floodfill(200,230,clblue);
      Cheln (qq,d);
      a:=a+0.5;
      inc(qq,d);
      if qq>650 then
                     begin
                           d:=d*(-1);
                           tel:=-50;
                           tel2:=0;
                     end;
      if qq<-450 then
                     begin
                     d:=d*(-1);
                     tel:=0;
                           tel2:=0;
                     end;
      sleep(100);
      redraw;
      end;
until keypressed;
end.
1
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 10
19.04.2013, 21:18  [ТС]
огромное спасиба
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.04.2013, 21:18
Помогаю со студенческими работами здесь

Движение вправо/влево в зависимости от курсора
Привет. С моими скудными познаниями решил обратиться за помощью сюда) Вобщем задача следующая: экран поделен на две половины. Примерно...

Цикличное движение объекта влево и вправо
Доброе время суток всем. Вообщем я новенький в коде и в игре. Во всем в принципе разбирался сам. Но как получается не совсем, есть код...

Как переназначить клик на клавиши (влево-вправо) на касание по объекту на экране (стрелка влево-вправо)
Скрипт для персонажа public class MovePlayer : Unit private void Update() { if...

Движение вверх, вниз, вправо и влево, но не по диагонали
как реализовать движение фигуры только в таком направление, т.е. вверх, вниз, вправо и влево, но не по диагонали, есть код готового...

Движение квадрата вверх, вниз, вправо, влево при нажатии соответствующих клавиш
Здравствуйте.:) Надо сделать так, чтобы красный квадрат двигался при нажатии клавиши вверх, вниз, влево, вправо по игровому полю (картинка...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru