Главная страница
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.014 c
6-31371
Администратор
2003-05-02 15:34
2003.07.10
Подключениие к И Н Е Т У :)


4-31560
K_O_T
2003-05-06 22:35
2003.07.10
COM интерфейс IStorage. Help!


7-31539
BBCHa
2003-04-26 18:33
2003.07.10
Раскладка клавиатуры


1-31246
shark
2003-06-29 18:56
2003.07.10
Файлы


14-31517
VolanD
2003-06-25 15:05
2003.07.10
Epox 8KTA3L+ and GForce4 MX440 TV-out