Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
14-31423
Axis_of_Evil
2003-06-25 11:20
2003.07.10
Lindows... А что это за девушка и где она живет ...


1-31318
Ann
2003-06-24 16:48
2003.07.10
Excel


3-31131
Rel_
2003-06-18 09:01
2003.07.10
ORAClE (компоненты прямого доступа)


1-31327
denis24
2003-06-27 10:54
2003.07.10
MsWord := CreateOleObject( Word.Application );


6-31391
Kremen
2003-05-03 12:59
2003.07.10
Ошибка при использовании снифера




   Наверх