Подписка

добавить на Яндекс

Наши проекты

Delphi+Google

Google API

Google API в Delphi - проект с открытым исходным кодом.

Chrono

Chrono

Хронометр - программа для ведения списка задач.

ODFProc

ODFProc

ODFProc - работа с документами OpenOffice в Lazarus и FreePascal.

Поддержка блога

А тут я коплю на лицензию Delphi XE на iPad =).
Сумма пожертвования не фиксирована.

Публикации

Год назад

Случайный пост

Последние

Сообщения форума

Комментарии

Свежие комментарии

Социальные сети

Google

Facebook

Twitter

Опрос

Вы сейчас или в ближайшем обозримом будущем планируете разрабатывать кроссплатформенное приложение с использованием Firemonkey?



Loading ... Loading ...

Блоги и сообщества

Статьи по Delphi DelphiFeeds.ru - Все Delphi-блоги Рунета Сообщество умных людей VR-Online.RU Бесплатный журнал для программистов и всех, кто интересуется IT Статьи и уроки по Delphi Новостной блог о высоких технологиях
Система Orphus
Опубликовал Vlad 26 августа 2009 в 07:24.
Категории: MS Agent в Delphi.


Сегодня рассмотрим ещё один момент работы с 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

Мой блог находят по следующим фразам

Понравилась статья? Тогда:
Делись! Загружай! Плюсуй!
   Отправить PDF на   
Читай ещё статьи на WebDelphi.ru

1 комментарий

WP_Cloudy
  • Merlin пишет:

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

Ваш ответ

Внимание: Все комментарии модерируются, и это может вызвать задержку их публикации. Отправлять комментарий заново не требуется.

Пожалуйста, заключайте исходный код в тэги [code][/code].
Если код большой, то воспользуйтесь Вставкой кода на отдельной странице и оставьте в комментарии ссылку на исходник

   


Запчасти лексус и запчасти лексус цены Москва. Запчасти лексус ls 400. --|--. Барби в играх для девочек на tvidi.ru