• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Графика

  • Автор темы Автор темы RadMan
  • Дата начала Дата начала

RadMan

Новые
Регистрация
20 Мар 2011
Сообщения
13
Реакции
0
Баллы
0
Графика

Здравствуйте! нужно написать программу на паскале
Сделать бомбу - в виде круга. Осколки бомбы должны снижать скорость при движении.

ммм...вот часть...
Код:
  "взрыв"  
( рисование движущегося массива пикселов с остановкой на границах экрана ).
------------------------------------------------------------------}
 x1:= Gx div 2;  y1:= Gy div 2;
for i:=1 to 300 do begin
  X[i]:= x1+ i mod 10;   { массив осколков }
   Y[i]:= y1+ i div 10;
  PutPixel(X[i], Y[i], 15);
   VX[i]:= -10 + random(21);
  VY[i]:= -10 + random(21) 
end;
SetColor(5);     
 Rectangle(x1, y1, x1+9, y1+30);  { бомба }
  ch:= ReadKey; { задержка до нажатия клавиши }
for i:=1 to 100 do begin
  sound(random(80));  
delay(1);  
nosound  { звук взрыва } 
end;
SetColor(0);    
Rectangle(x1, y1, x1+9, y1+30); { взрыв бомбы }
 
Repeat
 for i:=1 to 300 do begin
if(X[i]+VX[i] > 0) and (X[i]+VX[i] < Gx) and
(Y[i]+VY[i] > 0) and (Y[i]+VY[i] < Gy)
             
   then begin      { если пиксел не перелетит за край экрана }
   PutPixel(X[i],Y[i],0);   X[i]:= X[i]+VX[i];  Y[i]:= Y[i]+VY[i];
   PutPixel(X[i], Y[i], 14)  end     { движение осколков }
    else begin VX[i]:= 0;  VY[i]:= 0;{ если пиксел долетел до края экрана }
    sound(200); delay(2); nosound end
 end   
Until Keypressed;
 
Назад
Сверху