![]() |
|
|
#1
|
|||
|
|||
![]() Всем привет! Очень нужна помощь. Есть графический редактор, в котором нужно создать мультфильм «Танцующий НЛО». НЛО рисуется на холсте любым доступным вам образом. Очередное положение НЛО на экране определять с помощью датчика случайных чисел. Результатом обращения к датчику должны быть номера координат экрана, с которыми следует совместить левый верхний угол прямоугольника размером 50x80 пикселов символа, объемлющего НЛО. Каждый раз, когда номер полученного таким образом столбца окажется кратным 12, НЛО должен менять цвет.
Графический редактор не супер навороченый, если нужны ещё какие-то компоненты, то можно их дописывать. Кидаю его в архиве. :umnik: |
#2
|
|||
|
|||
![]() В архив то может и кинули а сам архив?
ПС. Ужасный цвет и шрифт. по глазкам бьет когда читаешь. |
#3
|
|||
|
|||
![]() Cлучайно забыла кинуть=)
ПС на форум кинуть немогу. Превышает размер. кидаю ссылку с файлообменника, простите за шрифт, привыкла таким писать=) http://upload.com.ua/get/901757958/ Последний раз редактировалось FieStik, 28.06.2010 в 14:04. |
#4
|
|||
|
|||
![]() Теперь можно подробнее что именно у Вас не получается?
Последний раз редактировалось Black Raider, 28.06.2010 в 14:13. |
#5
|
|||
|
|||
![]() Цитата:
|
#6
|
|||
|
|||
![]() Вообщем открываем новый проект.
кидаем на форму image, 2 Label и кнопку. жмем 2 раза на кнопку и в событие пишем: Код:
procedure TForm1.BitBtn1Click(Sender: TObject); var xr,yr:integer; procedure DrawNLO(xn,yn:integer;fl:boolean); var rt:TRect; cl:Tcolor; begin //Заполняем класс Rect для очистки rt.Left:=0; rt.Right:=image1.Width; rt.Top:=0; rt.Bottom:=image1.Height; //Запоминаем предыдущий цвет cl:=image1.Canvas.Brush.Color; //Устанавливаем цвет фона = цвету формы image1.Canvas.Brush.Color:=form1.Color; //Заливаем этим цветом. чтоб очистить image1.Canvas.FillRect(rt); //Если нужно менять цвет то генерим случайный цвет иначе устан. старый if fl then image1.Canvas.Brush.Color:=random(65000) else image1.Canvas.Brush.Color:=cl; //Заполняем класс Rect для отрисовки rt.Left:=xn; rt.Top:=yn; rt.Bottom:=yn+10; rt.Right:=xn+20; //Заливаем эту область image1.Canvas.FillRect(rt); //Выводим информацию о позиции label1.Caption:='POS X-'+inttostr(xn); label2.Caption:='POS Y-'+inttostr(yn); end; begin xr:=random(50); yr:=random(80); if (yr mod 12)=0 then DrawNLO(xr,yr,true) else DrawNLO(xr,yr,false); end; На основе этого думаю сможете сделать и остальное |