Форум: "Игры";
Текущий архив: 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