Сегодня рассмотрим ещё один момент работы с MS Agent Control – движение.
Для того, чтобы переместить персонаж в определенную точку экрана, необходимо выполнить следующую функцию:
AgentChar.MoveTo(x,y: integer; speed: integer)
где AgentChar - ссылка на Вашего персонажа; x, y – экранные координаты, в которые необходимо переместить персонаж; speed: скорость с которой персонаж будет двигаться. ' '
При вызове этого метода персонаж сам проиграет необходимую анимацию и переместиться в заданную точку. Здесь остается заметить только следующий момент: координаты x, y задают координаты верхнего левого угла окна персонажа. Не смотря на то, что персонаж вроде бы подвижный и не напоминает даже отдаленно прямоугольник – это все-таки прямоугольное окно – можете проверить этот факт на примере: просмотрите все зарегистрированные в системе окна и заметите там окно своего персонажа.
Ну, а для того, чтобы переместить персонаж в координаты заданные в системе координат формы приложения, необходимо провести элементарный пересчёт:
function Form2Screen(const Form: TForm; X, Y: integer):TPoint; begin Result.X:=X+Form.Left; Result.Y:=Y+Form.Top; end;
Те, кто уже скачал программу-просмотрщик свойств персонажей, мог заметить, что в списке доступных анимаций практически у каждого персонажа есть следующие:
- GestureUp
- GestureDown
- GestureLeft
- GestureRight
При выполнении этих анимаций персонаж укажет руками (ну или другими конечностями) соответственно вверх, вниз, влево и вправо. А что делать, если Вам необходимо, например, чтобы персонаж указал на какой-либо элемент на форме? Каждый раз заставлять Delphi считать координаты, потом определять положение персонажа и т.д. – слишком муторно и никому не нужно. Есть более простой вариант – воспользоваться методом GestureAt у персонажа. Например, вот такой код:
AgentChar.GestureAt(120 ,300)
Заставит персонаж указать в точку (120, 300). При этом персонаж сам определит какую из четырех анимаций проиграть. Единственный момент, который угнетает – персонаж не умеет указывать, например, вверх-влево или вниз-вправо.
В заключение статьи, я выкладываю обновленный просмотрщик свойств персонажей, где вы сможете посмотреть как работают методы MoveTo и GestureAt у Ваших персонажей, а также, специально для мам и пап, которые читают мой блог – ссылку на игрушки для детей.
В следующей раз будем рассматривать работу с контекстным меню персонажа.
Файлы для скачивания
для просмотра действий персонажа MS Agent
Мой блог находят по следующим фразам
- пишем сниффер delphi
- подсветка SynMemo
- google data api
- программы распознавания Captcha картинок
- облако тегов код
- пишем спамер на Delphi
Related posts:










17 Aug 2010 в 8:40 pm
Столкнулся с такой проблемой, в Windows 7 персонаж появляется в розовом прямоугольнике. Стал искать решение. У Microsoft есть hotfix для исправления этого недоразумения: http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=969168&kbln=ru
Для скачивания исправления Microsoft требует email, на который высылает файл с паролем. Проверил – розовый фон исчез!