![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите! Как написать простой AI [D5, XP]
Knob © (2007-07-14 14:25:00)Мне нужно сделать так чтобы программа находила координаты курсора мышию. И чтобы форма медленно за ним двигалась(но не по диогонале).
Shamansky_ne (2007-07-14 15:38:00) [21]
> Zagaevskiy © (
из примера видно, что интервал таймера - задержка с которой будет перемещаться форма вслед за курсором, а скорость движения формы будет такая же как и у курсора, то есть неравномерная во времени, т.к. добиться равномерного движения мышкой навряд удастся.
Если же необходма реализация вида, сдвинул курсор, и форма начала с некоторой скоростью повторять траекторию, которую прошел курсор, то это уже совсем другое дело.
Zagaevskiy (2007-07-14 15:25:00) [22]Это если скорость движения формы должна меняться.А если нет?
Shamansky_ne (2007-07-14 15:24:00) [23]я так понял, что форма должна постоянно двигаться за курсором, а плавность достигается уменьшением интервала таймера
Хотя решение с таймером я считаю неправильным, правильнее было бы ловить глобальное сообщее о движении мышки
Zagaevskiy (2007-07-14 15:08:00) [24]
> Shamansky_ne (14.07.07 15:03) [9]
> И чтобы форма медленно за ним двигалась
Походу если курсор дёрнуть резко, то форма должна к нему плавно приближаться, но не по прямой ("диагонали")
Если я не прав, то сорри
Anatoly Podgoretsky (2007-07-14 15:03:00) [25]> Инс (14.07.2007 14:53:03) [3]
Вот это и есть твое AI
Shamansky_ne (2007-07-14 15:03:00) [26]
procedure TForm1.Button1Click(Sender: TObject);
begin
if timer1.Enabled then
timer1.Enabled:=false
else timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
p:TPoint;
begin
GetCursorPos(p);
application.MainForm.Top:=p.Y-10;
application.MainForm.Left:=p.X-10;
end;
10 - отступы от курсора
интервал на таймере ставишь по своему желанию
эту функцию хочешь цепляешь на таймер, как сделано у меня, хотя наверное правильнее было отлавливать событие движения мышки
Zagaevskiy (2007-07-14 15:01:00) [27]Всегда пожалста
Knob (2007-07-14 14:59:00) [28]Спасибо
Zagaevskiy (2007-07-14 14:58:00) [29]
> Как курсор мыши найти? На форме ясно, а на рабочем столе?
GetCursorPos()?
Zagaevskiy (2007-07-14 14:55:00) [30]
> но не по диогонале
Чего? Как сделать по диагонали знаешь?
Knob (2007-07-14 14:55:00) [31]Как курсор мыши найти? На форме ясно, а на рабочем столе?
Инс (2007-07-14 14:53:00) [32]
> но не по диогонале
А как?
Kolan (2007-07-14 14:50:00) [33]> [1] Knob © (14.07.07 14:48)
> Ну помогите!
Свойства Top, Left у формы есть.
> Ну помогите!
Конкретно что не получается? Где вопросы нет. Вот и ответов тоже нет.
Knob (2007-07-14 14:48:00) [34]Ну помогите!