![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.03.2007
Сообщений: 37
|
![]()
Привет всем!
Мужики выручте дело в том что вот эта процедура procedure Line; Begin MainForm.Canvas.Pen.Color:=clWhite; x:=Random(500)+1; MainForm.Canvas.MoveTo(x,300); MainForm.Canvas.LineTo(x,285); end; чертит линию в самом низу формы размер линии как вы видите 15 См типа пули подскажите как эти линии сделать чтоб они двигались от нижней границы формы к верхней границе формы У меня эти линии чертятся по нажатию пробела в Обработчике OnKeyDown. Как сделать чтоб они начали двигаться Подскажите пожалуйста Заранее благодарю. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 16.04.2007
Сообщений: 15
|
![]()
Следишь за каждой такой линией в процессе всего движения. Например, держи в памяти адрес вехней точки. И по таймеру - ползёшь.
Соответственно на каждый шаг таймера поднимаешь на один или несколько пикселей : дорисовал сверху, подтёр снизу.. и нет проблем
Я, как и ты, думал, что за нами прилетят,
Ошейник снимут, за ухом почешут и всё простят, Но я сплю у миски, и ты всё съел... В подарок ириска! |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
![]()
Не надо ничего усложнять. Все достаточно тривиально.
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 28.03.2007
Сообщений: 1,814
|
![]()
Фрагмент проги (Две линии движутся навстречу друг другу одна сверху другая снизу)
form1.Canvas.Pen.Color:=form1.Color ; form1.Canvas.Pen.Width:=3; for j:=0 to form1.Height div 2-10 do begin form1.Canvas.MoveTo(0,j); form1.Canvas.LineTo(500,j); form1.Canvas.MoveTo(0,340-j); form1.Canvas.LineTo(500,340-j); sleep(5); вместо sleep можешь загнать всё это в таймер |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 27.03.2007
Сообщений: 37
|
![]()
Мужики честно не могу врубится помогите я попробывал вот так
procedure Line; Begin for y:=0 to MainForm.Height do Begin MainForm.Canvas.Pen.Color:=clWhite; x:=Random(500)+1; MainForm.Canvas.MoveTo(x,300-y); MainForm.Canvas.LineTo(x,285-y); sleep(3); end; end; да фигня какая-то получается не врублюсь как сделать чтоб предыдущий кусочек линии закрашивать цветом формы чтоб получился эффект летящей пули Выручите Заранее Благодарю |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
![]()
public
{ Public declarations } procedure RunBullet(x, y: integer; Color: TColor); end; var Form1: TForm1; x, y: integer; implementation procedure TForm1.RunBullet(x, y: integer; Color: TColor); const dx = 10; dy = 20; begin with Form1.Canvas do begin Pen.Color := Color; MoveTo(x, y); LineTo(x + dx, y); LineTo(x + dx, y + dy); LineTo(x, y); end; end; procedure TForm1.FormCreate(Sender: TObject); begin x := 100; y := 0; end; procedure TForm1.Timer1Timer(Sender: TObject); begin RunBullet(x, y, clNavy); //стираем пулю if y < Form1.Height then y := y + 10 else begin x := 100; y := 0; end; RunBullet(x, y, clWhite); //рисуем на новом месте end; И все.
Не надо ничего усложнять. Все достаточно тривиально.
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движение песка | Format C: | Общие вопросы Delphi | 11 | 26.06.2008 16:18 |
Движение картинки | &RiU | Помощь студентам | 2 | 28.05.2008 23:46 |
движение по эллипсу | Оля | Помощь студентам | 2 | 08.05.2007 00:50 |
Движение по окружности | Mickle | Общие вопросы Delphi | 3 | 13.04.2007 16:24 |
Движение камеры | LepihinMS | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 16.03.2007 20:46 |