Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 4

Анимации на Pascal ABC.NET

17.06.2017, 10:36. Показов 2005. Ответов 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
uses GraphABC ; 
  var
    dx , dy : integer ;  
  
 procedure KeyDown( key : integer ) ; 
 begin 
  case key of 
      VK_Up : dx := - 80 ;
    VK_Down : dx := + 80 ;
    VK_Left : dy := - 50 ; 
   VK_Right : dy :=  + 50
   end;
  end;
  begin
  
  SetWindowIsFixedSize( true );  
  SetWindowSize( 800 , 640 );   
    
  LockDrawing ;
     repeat 
     clearwindow;
   line (200 , 638 , 200, 0  );
   line (600 , 638 , 600, 0  ); 
   line (200 , 638 , 600 , 638 ) ;
   line (200 , 0 , 600 , 0 ) ; 
  
   line (355  , 182 , 355 , 000 ) ;
   line (355 , 000 , 415 , 000 ) ;
   line (415 , 000 , 415 , 182 ) ;
   line (415 , 182 , 355 , 182 ) ;
    
  line ( 323 + dy , 313 + dx , 323 + dy, 527 + dx) ;
  line ( 323 + dy, 372 + dx, 302 + dy, 377 + dx) ;
  line ( 302 + dy, 377 + dx, 302 + dy, 382 + dx) ;
  line ( 302 + dy, 382 + dx, 323 + dy, 377 + dx) ;
  arc ( 392 + dy, 470 + dx, 90 , 220 , 320 ) ;
  line ( 461 + dy, 528 + dx, 461 + dy, 313 + dx) ; 
  line ( 461 + dy, 372 + dx, 482 + dy, 376 + dx) ;//
  line ( 482 + dy, 376 + dx, 480 + dy, 382 + dx) ;
  line ( 480 + dy, 382 + dx, 461 + dy, 381 + dx) ; 
  arc ( 365 + dy, 340 + dx, 50 , 145 , 110 ) ;
  line ( 347 + dy, 293 + dx, 430 + dy, 293 + dx) ; 
  arc ( 422 + dy, 343 + dx, 50 , 90 , 38 ) ;
  rectangle (358 + dy, 403 + dx, 425 + dy, 428 + dx) ;
   arc ( 390 + dy, 543 + dx, 190 , 108 , 72 ) ;
   line ( 331 + dy, 362 + dx, 348 + dy, 394 + dx) ; 
   line ( 348 + dy, 394 + dx, 434 + dy, 394 + dx); 
   line ( 434 + dy, 394 + dx, 448 + dy, 362 + dx) ;
   line ( 323 + dy, 434 + dx, 338 + dy, 437 + dx) ;
   line ( 338 + dy, 437 + dx, 336 + dy, 397 + dx) ; 
   line ( 336 + dy, 397 + dx, 323 + dy, 378 + dx) ; 
   line ( 338 + dy, 437 + dx, 338 + dy, 482 + dx ) ; 
   line ( 338 + dy, 482 + dx, 323 + dy, 483 + dx) ; 
   
   line ( 461 + dy, 436 + dx, 445 + dy, 439 + dx) ; 
   line ( 445 + dy, 439 + dx, 444 + dy, 398 + dx) ; 
   line ( 444 + dy, 398 + dx, 461 + dy, 381 + dx) ;
   line ( 445 + dy, 439 + dx, 445 + dy, 481 + dx) ; 
   line ( 445 + dy, 481 + dx, 461 + dy, 481 + dx) ;
    
   arc ( 392 + dy, 360 + dx, 160 , 250 , 288 ) ;
   arc ( 392 + dy, 340 + dx, 160 , 253 , 286 ) ;
   line ( 345 + dy, 493 + dx, 338 + dy, 510 + dx) ; 
   line ( 436 + dy, 493 + dx, 441 + dy, 512 + dx) ;
   
   line ( 318 + dy, 484 + dx, 323+ dy, 483 + dx) ; 
   line ( 318 + dy, 484 + dx, 318+ dy , 520 + dx) ; 
   line ( 318 + dy, 520 + dx, 323+ dy , 520 + dx) ; 
   
   line ( 461 + dy, 482 + dx, 466+ dy, 483 + dx) ; 
   line ( 461 + dy, 484 + dx, 461+ dy , 520 + dx) ; 
   line ( 461 + dy, 520 + dx, 466+ dy , 520 + dx) ; 
   line ( 466 + dy, 483 + dx, 466+ dy , 520 + dx) ; 
    
   line ( 323 + dy, 333 + dx, 317+ dy , 333 + dx) ; 
   line ( 317 + dy, 333 + dx, 317+ dy , 370 + dx) ;
   line ( 317 + dy, 370 + dx, 323+ dy , 370 + dx) ; 
   
  
   line ( 461 + dy, 334 + dx, 467+ dy , 335 + dx)  ;
   line ( 467 + dy, 335 + dx, 467+ dy , 368 + dx) ; 
   line ( 467 + dy, 368 + dx, 461+ dy , 368 + dx) ; 
   
    arc ( 311 + dy, 269 + dx, 50 , 285 , 330 ) ;
    arc ( 473 + dy, 270 + dx, 50 , 210 , 255 ) ; 
   
   floodFill ( 270 + dy, 149 + dx, cllightgray ) ;
   floodFill ( 380 + dy, 314 + dx, clRed ) ; 
   floodFill ( 336 + dy, 305 + dx, clYellow ) ; 
   floodFill ( 446 + dy, 308 + dx, clYellow ) ; 
   floodfill ( 390 + dy, 379 + dx, cldeepSkyBlue ); 
   Floodfill ( 332 + dy, 421 + dx, cldeepSkyBlue );
   FloodFill ( 329 + dy, 465 + dx, cldeepSkyBlue );
   FloodFill ( 385 + dy, 511 + dx, cldeepSkyBlue );
   floodFill ( 450 + dy, 420 + dx, cldeepSkyBlue );
   FloodFill ( 450 + dy, 450 + dx, cldeepSkyBlue );
   Floodfill ( 365 + dy, 411 + dx, clblack ) ; 
   floodFill ( 320 + dy, 357 + dx, clblack ) ; 
   FloodFill ( 320 + dy, 505 + dx, clblack ) ; 
   FloodFill ( 464 + dy, 500 + dx, clblack ) ;
   FloodFill ( 463 + dy, 349 + dx, clblack ) ; 
   FloodFill ( 311 + dy, 377 + dx, clred ) ; 
   FloodFill ( 470 + dy, 377 + dx, clred ) ;  
  
  RedRaw ;
   OnKeyDown := KeyDown ;
   until False ;
  end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2017, 10:36
Ответы с готовыми решениями:

Нужно перевести код из Turbo Pascal в Pascal ABC.NET
Доброго времени суток. На форуме находил похожие темы, но к сожалению так и не смог разобраться. Помогите пожалуйста перевести код из Turbo...

Нужно перевести программу с Turbo Pascal в Pascal ABC.NET
Вот есть программный код , но он для турбо паскаля, помогите перевести его в АБС.NET Program graphics; uses graph; var...

Можно как-то переделать код из Turbo Pascal чтобы он работал в pascal abc.net?
Сделайте пожалуйста, я просто не вникаю uses Graph, Crt; var grDriver: integer; grMode: integer; ErrCode: integer; ...

4
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,863
Записей в блоге: 12
17.06.2017, 11:43
Читай комментарии к коду. Особенно в 111-ой строке.
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
uses GraphABC ; 
var
  dx, dy: integer;
  changed: boolean := true; // Делаем раз
 
procedure KeyDown(key: integer ) ;
begin
  case key of 
    VK_Up: begin dx := -80;changed := true end; // Тут изменяем Changed 
    VK_Down: begin dx := +80;changed := true end;
    VK_Left: begin dy := -50;changed := true end;
    VK_Right: begin dy := +50;changed := true end
  end;
end;
 
begin
  OnKeyDown := KeyDown;
  SetWindowIsFixedSize(true );  
  SetWindowSize(800, 640 );   
  
  LockDrawing;
  repeat
    if changed then // перерисовываем только если были изменения
    begin
      clearwindow;
      line(200, 638, 200, 0  );
      line(600, 638, 600, 0  ); 
      line(200, 638, 600, 638 );
      line(200, 0, 600, 0 ); 
      
      line(355, 182, 355, 000 );
      line(355, 000, 415, 000 );
      line(415, 000, 415, 182 );
      line(415, 182, 355, 182 );
      
      line(323 + dy, 313 + dx, 323 + dy, 527 + dx);
      line(323 + dy, 372 + dx, 302 + dy, 377 + dx);
      line(302 + dy, 377 + dx, 302 + dy, 382 + dx);
      line(302 + dy, 382 + dx, 323 + dy, 377 + dx);
      
      arc(392 + dy, 470 + dx, 90, 220, 320 );
      line(461 + dy, 528 + dx, 461 + dy, 313 + dx); 
      line(461 + dy, 372 + dx, 482 + dy, 376 + dx);//
      line(482 + dy, 376 + dx, 480 + dy, 382 + dx);
      line(480 + dy, 382 + dx, 461 + dy, 381 + dx); 
      
      arc(365 + dy, 340 + dx, 50, 145, 110 );
      line(347 + dy, 293 + dx, 430 + dy, 293 + dx); 
      arc(422 + dy, 343 + dx, 50, 90, 38 );
      rectangle(358 + dy, 403 + dx, 425 + dy, 428 + dx);
      arc(390 + dy, 543 + dx, 190, 108, 72 );
      line(331 + dy, 362 + dx, 348 + dy, 394 + dx); 
      line(348 + dy, 394 + dx, 434 + dy, 394 + dx); 
      line(434 + dy, 394 + dx, 448 + dy, 362 + dx);
      line(323 + dy, 434 + dx, 338 + dy, 437 + dx);
      line(338 + dy, 437 + dx, 336 + dy, 397 + dx); 
      line(336 + dy, 397 + dx, 323 + dy, 378 + dx); 
      line(338 + dy, 437 + dx, 338 + dy, 482 + dx ); 
      line(338 + dy, 482 + dx, 323 + dy, 483 + dx); 
      
      line(461 + dy, 436 + dx, 445 + dy, 439 + dx); 
      line(445 + dy, 439 + dx, 444 + dy, 398 + dx); 
      line(444 + dy, 398 + dx, 461 + dy, 381 + dx);
      line(445 + dy, 439 + dx, 445 + dy, 481 + dx); 
      line(445 + dy, 481 + dx, 461 + dy, 481 + dx);
      
      arc(392 + dy, 360 + dx, 160, 250, 288 );
      arc(392 + dy, 340 + dx, 160, 253, 286 );
      line(345 + dy, 493 + dx, 338 + dy, 510 + dx); 
      line(436 + dy, 493 + dx, 441 + dy, 512 + dx);
      
      line(318 + dy, 484 + dx, 323 + dy, 483 + dx); 
      line(318 + dy, 484 + dx, 318 + dy, 520 + dx); 
      line(318 + dy, 520 + dx, 323 + dy, 520 + dx); 
      
      line(461 + dy, 482 + dx, 466 + dy, 483 + dx); 
      line(461 + dy, 484 + dx, 461 + dy, 520 + dx); 
      line(461 + dy, 520 + dx, 466 + dy, 520 + dx); 
      line(466 + dy, 483 + dx, 466 + dy, 520 + dx); 
      
      line(323 + dy, 333 + dx, 317 + dy, 333 + dx); 
      line(317 + dy, 333 + dx, 317 + dy, 370 + dx);
      line(317 + dy, 370 + dx, 323 + dy, 370 + dx); 
      
      
      line(461 + dy, 334 + dx, 467 + dy, 335 + dx);
      line(467 + dy, 335 + dx, 467 + dy, 368 + dx); 
      line(467 + dy, 368 + dx, 461 + dy, 368 + dx); 
      
      arc(311 + dy, 269 + dx, 50, 285, 330 );
      arc(473 + dy, 270 + dx, 50, 210, 255 ); 
      
      floodFill(270 + dy, 149 + dx, cllightgray );
      floodFill(380 + dy, 314 + dx, clRed ); 
      floodFill(336 + dy, 305 + dx, clYellow ); 
      floodFill(446 + dy, 308 + dx, clYellow ); 
      floodfill(390 + dy, 379 + dx, cldeepSkyBlue ); 
      Floodfill(332 + dy, 421 + dx, cldeepSkyBlue );
      FloodFill(329 + dy, 465 + dx, cldeepSkyBlue );
      FloodFill(385 + dy, 511 + dx, cldeepSkyBlue );
      floodFill(450 + dy, 420 + dx, cldeepSkyBlue );
      FloodFill(450 + dy, 450 + dx, cldeepSkyBlue );
      Floodfill(365 + dy, 411 + dx, clblack ); 
      floodFill(320 + dy, 357 + dx, clblack ); 
      FloodFill(320 + dy, 505 + dx, clblack ); 
      FloodFill(464 + dy, 500 + dx, clblack );
      FloodFill(463 + dy, 349 + dx, clblack ); 
      FloodFill(311 + dy, 377 + dx, clred ); 
      FloodFill(470 + dy, 377 + dx, clred );  
      
      FloodFill(360, 100, clWhite); // Вот она, магия !!!
      SetBrushColor(clWhite);
      RedRaw;
      changed := false; // объект перерисован, возвращаем Changed в False
    end
    
  until False;
end.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
17.06.2017, 12:26
Что-то сколько ни смотрел разницы с этими строками
Pascal
1
2
 FloodFill(360, 100, clWhite); // Вот она, магия !!!
 SetBrushColor(clWhite);
и без них не заметил.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33187 / 21484 / 8232
Регистрация: 22.10.2011
Сообщений: 36,863
Записей в блоге: 12
17.06.2017, 12:28
Без них есть кратковременное мигание красным цветом всего графического окна, с ними - нет.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
17.06.2017, 12:38
Странно, у меня такого нет, правда 1 раз мигнуло голубым в сером поле...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.06.2017, 12:38
Помогаю со студенческими работами здесь

Перевод программы с Turbo Pascal на Pascal ABC.NET
написала программу в паскаль турбо на рабочем компьютере. перенесла в паскаль авсNet так как дома стоит эта версия /перестала работать что...

Нужно переделать программу,написанную на Turbo Pascal в ту,чтобы работала на Pascal ABC.NET пожалуйста
program lab3; uses Crt; const Output_File_Name = 'output.txt'; { ima faila dlya vivoda perestanovok } Nmax = 12; {...

Нужно переделать программу,написанную на Turbo Pascal в ту,чтобы работала на Pascal ABC.NET пожалуйста
program lab2; uses Crt; const Nmax = 15; { MAX element mnozestva A } type T = Char; { Tip element mnozestva A }

Pascal ABC.NET
Привет всем) Хелпаните плис, матрицу то я написал., а вот как из нее вывести вектор я хз. Помогите плис. Із масиву mn створити...

Печать в Pascal abc.net
Вот наткнулся на такую штуковину Можете рассказать, как это работает или где можно прочитать?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru