Страница: 1 |
Я сейчас пытаюсь делать игрушку, в которой объект может поворачиваться вокруг своей оси и двигаться по направлению, на которое повёрнут. Но с движением по градусам есть загвоздка, которую я не могу решить. Кто нибудь, подскажите формулу! Движение: FoxRotate Form1.hDC, lN, tN, picRot.hDC, picRot.Image.Handle, &H8000000F, rotates, chkRotMask + chkRotSmooth * 2 где rotates - градусы ln - Top объекта tN - Left объекта
Я не до конца понял эту функцию. Могу предложить простой вариант Траектория движения - прямая. Следовательно это движение можно задать уравнением y = k*x + b, где k - это тангенс угла наклона твоей прямой, b - это на сколько сдвигается твоя линия вверх/вниз. Просто подставляешь в x координату по x и получаешь y. Вот и все Да не выходит! Тело движеться каждый раз по кругу! Полное описание функции: Private Declare Function FoxBrightness Lib "FoxCBmp.dll" (ByVal DstDC As Long, ByVal DstBmp As Long, ByVal SrcDC As Long, ByVal SrcBmp As Long, ByVal TransColor As Long, ByVal Brightness As Long, ByVal Flags As Long) As Long Private Declare Function FoxBlendIn Lib "FoxCBmp.dll" (ByVal DstDC As Long, ByVal DstX As Long, ByVal DstY As Long, ByVal SrcDC As Long, ByVal SrcBmp As Long, ByVal TransColor As Long, ByVal Alpha As Byte, ByVal Flags As Long) As Long Private Declare Function FoxRotate Lib "FoxCBmp.dll" (ByVal DstDC As Long, ByVal DstX As Long, ByVal DstY As Long, ByVal SrcDC As Long, ByVal SrcBmp As Long, ByVal TransColor As Long, ByVal Alpha As Double, ByVal Flags As Long) As Long Private Declare Function GetTickCount Lib "kernel32" () As Long Dim CurX As Long, CurY As Long Dim OldTime As Long Public Sub HScroll() Me.Cls OldTime = GetTickCount FoxRotate Form1.hDC, lN, tN, picRot.hDC, picRot.Image.Handle, &H8000000F, rotates, chkRotMask + chkRotSmooth * 2 Caption = GetTickCount - OldTime Me.Refresh End Sub Ещё на форме есть 2 чекбокса chkRotSmooth и chkRotMask. И тело под именем picRot. Функция созданна для поворота картинки. Страница: 1 |
Вопрос: Как задать угол перемещения объекта?
Добавлено: 03.12.03 13:46
Автор вопроса: Crusty
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
NightVolk
Вопросов: 12
Ответов: 21
Web-сайт:
Профиль | | #1
Добавлено: 05.12.03 18:55
Номер ответа: 2
Автор ответа:
Crusty
Вопросов: 3
Ответов: 6
Профиль | | #2
Добавлено: 05.12.03 20:34