Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
11-31169
MiKlmmm
2002-09-28 15:43
2003.07.10
Потоки в 7


14-31448
Eagle Owl
2003-06-23 19:15
2003.07.10
Нужен компонент...


1-31208
LuckyMan
2003-06-27 19:04
2003.07.10
Алгоритм поиска файлов по маске


14-31461
rosl
2003-06-24 06:02
2003.07.10
ini


1-31212
zoolmox
2003-06-27 16:21
2003.07.10
OLE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский