Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2011, 23:04   #1
Грета
Пользователь
 
Регистрация: 08.12.2011
Сообщений: 17
По умолчанию анимация.мультик.

помогите пожалуйста составить анимацию несложную с двумя объектами.заранее спасибо.
Грета вне форума Ответить с цитированием
Старый 22.12.2011, 11:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ловите.
два шарика "катаются" по полю, отскакивая от бортов

Код:
uses Graph, CRT;
var x1, y1, x2, y2, Device, Mode: Integer;
  dx1, dy1: double;
  dx2, dy2: double;
const
  r1 = 10; r2 = 12;
begin
  Randomize;
  Device := 0;
  InitGraph(Device, Mode, '');
  Rectangle(35, 35, 605, 445); {боpтики стола}
  x1 := Random(605 - r1 - 35) + 35 + r1; y1 := Random(445-35-r1)+35+r1; {Hачинаем движение шаpика 1 из случайной позиции}
  x2 := Random(605 - r2 - 35) + 35 + r2; y2 := Random(445-35-r2)+35+r2; {Hачинаем движение шаpика 2 из случайной позиции}
  dx1 := 0.8; dy1 := 2.4;
  dx2 := 0.6; dy2 := 1.4;
  repeat
    SetColor(White); Circle(x1, y1, r1);
    SetColor(Red); Circle(x2, y2, r2);

    Delay(20);
    SetColor(Black); Circle(x1, y1, r1); Circle(x2, y2, r2);

    x1 := trunc(round(x1 + dx1)); y1 := trunc(round(y1 + dy1));
    x2 := trunc(round(x2 + dx2)); y2 := trunc(round(y2 + dy2));

    if (x1 < 50) or (x1 > 590) then dx1 := -dx1; {Удаpившись о ле-вый или пpавый боpт,
                        шаpик меняет гоpизонтальную составляющую скоpости на пpотивоположную}
    if (y1 < 50) or (y1 > 430) then dy1 := -dy1; {Удаpившись о веpхний или нижний боpт,
                        шаpик меняет веpтикальную составляющую скоpости на пpотивоположную}
    if (x2 < 50) or (x2 > 590) then dx2 := -dx2; {Удаpившись о ле-вый или пpавый боpт,
                        шаpик меняет гоpизонтальную составляющую скоpости на пpотивоположную}
    if (y2 < 50) or (y2 > 430) then dy2 := -dy2; {Удаpившись о веpхний или нижний боpт,
                        шаpик меняет веpтикальную составляющую скоpости на пpотивоположную}


  until KeyPressed;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
анимация shad0w Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 13.12.2020 11:02
анимация ualikhan Помощь студентам 0 06.06.2011 21:16
Анимация ZET78 Общие вопросы C/C++ 2 26.05.2010 21:00
анимация Juffin Общие вопросы Delphi 2 26.05.2009 20:04
анимация в с++ True_girl Помощь студентам 7 01.03.2009 18:57