![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Тьма |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 22.1.2005 Где: Украина, Винница Репутация: нет Всего: 4 |
добрый день
у меня такой вопрос: мне надо в ДельфиИкс нарисовать спрайт(шар), который будет двигаться прямолинейно под углом к низу монитора, и отбиваться от его края. проблема вот в чем: я не знаю как реализовать движение шара, поиск по форуму не очень помог, гугл тоже(может я не то искал) помогите плиз -------------------- Vir magni ingenii |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Через определенные промежутки времени изменять координаты согласно функции движения (в данном случае функция получается из уравнения прямой) и проверять, если рядом с границей, то менять функцию движения (менять угол наклона прямой) -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Тьма |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 22.1.2005 Где: Украина, Винница Репутация: нет Всего: 4 |
это понятно функция движения y=kx+b ? но это не подходт т.к две неизвестные
-------------------- Vir magni ingenii |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Ну прям неизвестные, еще есть уравнение скорости dL/dt = v, где dL = sqrt(sqr(dx)+sqr(dy)); Кроме того вектор начального направления (dx, dy) И стартовая позиция x0, y0. Вот сколько у нас данных. Из всего имеющегося несложно получить x(t) = k1 * t + b1; y(t) = k2 * t + b2; или для конечных интервалов dt x = x + k1 * dt; y = y + k2 * dt; это производится по таймеру через каждые dt мс. потом рисуется сфера с центорм в x, y. Это сообщение отредактировал(а) alexeis1 - 24.8.2006, 13:11 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Тьма |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 22.1.2005 Где: Украина, Винница Репутация: нет Всего: 4 |
спасибо
-------------------- Vir magni ingenii |
|||
|
||||
| Тьма |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 22.1.2005 Где: Украина, Винница Репутация: нет Всего: 4 |
если кому-то надо то я решил это так:
x := x - cos((Angle*pi)/180)*(100/1000)*MoveCount; y := y - sin((Angle*pi)/180)*(100/1000)*MoveCount; при этом ноль градусов слева, 90 сверху, 180 справа, и 270 внизу ))) -------------------- Vir magni ingenii |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |