![]() |
|
#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; На основе этого думаю сможете сделать и остальное |
#7
|
|||
|
|||
![]() А что за процедура procedure DrawNLO(xn,yn:integer;fl:boolean); ? К чему она относиться и зачем там Label?
|
#8
|
|||
|
|||
![]() Эта процедура и отрисовывает на экране.
Label выводит координаты. а относится она к процедуре-событию onClick на кнопке ![]() |
#9
|
|||
|
|||
![]() Black Raider тебе не сложно будет это прописать в моём коде и скинуть его сюда архивом? А то я несовсем понимю откуда это берётся) Буду благодарна..
|
#10
|
|||
|
|||
![]() кстати этот пример танцующего нло во многих учебниках расписан... В.Б.Попов "Turbo Pascal для школьников" ...прям оттуда код берешь и втыкаешь...и там комментарии есть к каждой строке, если не понятно что...и как бы проектирование есть программы и теория....
Последний раз редактировалось ZaaaK, 30.06.2010 в 02:35. |
#11
|
|||
|
|||
![]() Вообщем незнаю то не то... но раз рисование НЛО любым способом... наверное так.
если что стукните в аську 11198089четыре. ибо надо поработать. |