Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.10;
Скачать: CL | DM;

Вниз

2 вопроса по DelphiX   Найти похожие ветки 

 
Shadow ©   (2003-01-25 12:34) [0]

1)Как нарисовать рамку вокруг спрайта, если он повернут на опр. угол?
2)Как спрайт передвинуть мышкой?
(способ

procedure TForm1.DxDrawMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
sprite:=DXengine.Engine.GetSpriteAt(X,Y);
end;

procedure TForm1.DxDrawMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
sprite.X := X-DXengine.Engine.X;
sprite.Y := Y-DXengine.Engine.Y;
end;

не предлагать %))

Спасибо %)


 
Shadow ©   (2003-01-25 16:01) [1]

up!


 
Mihey   (2003-01-25 19:09) [2]

Ну, если угол определённый, то нарисуй рамку под определённым углом. Или поворачивай её вслед за спрайтом.


 
Shadow ©   (2003-01-26 10:44) [3]

up!


 
Ibrik   (2003-01-26 16:24) [4]

Геометрия 9-го класса

Вычисляешь координаты углов прямоугоьника(твоего спрайта) и разворачиваешь их на определённый угол.


Примерный код:

x0,y0 - координаты твоего спрайта
x,y - координаты точки развёрнутой на опр. угол
r - растояние от центра твоего прямоугольника (спраита)
до вершин (оно одинаково для всех вершин)
ugol - определённый угол

x0:=...
y0:=...
r:=...
ugol:=...

x:=x0+Round(r*cos((45+ugol)/(180/pi)));
y:=y0+Round(r*sin((45+ugol)/(180/pi)));

..Canvas.MoveTo(x,y);

x:=x0+Round(r*cos((135+ugol)/(180/pi)));
y:=y0+Round(r*sin((135+ugol)/(180/pi)));

..Canvas.LineTo(x,y);
..Canvas.MoveTo(x,y);

x:=x0+Round(r*cos((225+ugol)/(180/pi)));
y:=y0+Round(r*sin((225+ugol)/(180/pi)));

..Canvas.LineTo(x,y);
..Canvas.MoveTo(x,y);

x:=x0+Round(r*cos((315+ugol)/(180/pi)));
y:=y0+Round(r*sin((315+ugol)/(180/pi)));

..Canvas.LineTo(x,y);
..Canvas.MoveTo(x,y);

x:=x0+Round(r*cos((45+ugol)/(180/pi)));
y:=y0+Round(r*sin((45+ugol)/(180/pi)));

..Canvas.LineTo(x,y);
..Canvas.MoveTo(x,y);

..Canvas.Release;
..DXDraw1.Flip;


Если непонял (в чём я сомневаюсь) то мы делаем так:

Вычисляем координаты вершины прямоугольника(твоего спрайта)
повёрнутой на опр. угол +45 градусов (правая верхняя вершина)

Вычисляем координаты вершины прямоугольника(твоего спрайта)
повёрнутой на опр. угол +135 градусов (левая верхняя вершина)

соединим их линией

и так далее...


 
Shadow ©   (2003-01-26 17:11) [5]

Да ладно..?


 
Ibrik   (2003-01-26 21:04) [6]

Shadow © (26.01.03 17:11)
Да ладно..?


Скажи СПАСИБО за помощь,а не выпендривайся!!!


 
Shadow ©   (2003-01-26 21:24) [7]

Не обжайся...

СПАСИБО!!.. %)))



Страницы: 1 вся ветка

Текущий архив: 2003.07.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
14-31483
IronHawk
2003-06-24 11:39
2003.07.10
Кто тут собирал скриншоты Desktop-ов?


1-31319
Separator
2003-06-26 11:05
2003.07.10
Проверка на правильное имя файла


1-31260
mao
2003-06-29 18:09
2003.07.10
Richedit странно себя ведет...


3-31122
Rel_
2003-06-17 12:06
2003.07.10
SQL запрос


14-31463
Malder
2003-06-16 23:19
2003.07.10
Программа для печати платежек