PureBasic

TransformSprite()

Синтаксис

TransformSprite(#Sprite , x1 , y1 , [z1] , x2 , y2 , [z2] , x3 , y3 , [z3] , x4 , y4 , [z4])

Описание


Трансформирует Спрайт в новые заданные координаты. Обычно используется для выполнения преобразований в реальном времени.

Параметры

x1, y1 Координата первой точки в пикселях.
x2, y2 Координата второй точки в пикселях.
x3, y3 Координата третьей точки в пикселях.
x4, y4 Координата четвёртой точки в пикселях.
z1, z2, z3, z4 Значение 'z', которое определяет 'глубину' точек. Значение 0 - не отображает часть Спрайта. Одинаковые параметры 'Z' не влияют на результат.

Возвращаемое значение

Ничего.

Примечания

Обычно, результат функции выглядит как "деформация координатной сетки x1-x2-x3-x4", на которой отображается Спрайт.
Внимание, поскольку Спрайт состоит из 2 вершин (2 треугольников), преобразование может дать очень странный результат...

Если указан один из необязательных параметров 'Z', должны быть указаны все. (?)
  ;
  ; X1         X2
  ;   ---------
  ;   |      /|
  ;   |    /  |
  ;   |  /    |
  ;   |/      |
  ;   ---------
  ; x4         x3
  ;

Пример (фран.)

InitSprite()
OpenScreen(800,600,32,"Sprite")

 ;Спрайт цель 0
CreateSprite(0,100,100)
StartDrawing(SpriteOutput(0))
Circle(50,50,49,RGB(255,255,0))
Circle(50,50,40,RGB(0,255,0))
Circle(50,50,30,RGB(0,255,255))
Circle(50,50,20,RGB(0,0,255))
Circle(50,50,10,RGB(255,0,0))
StopDrawing()

 ;Спрайт цель 1
CopySprite(0, 1)

 ;Цикл
For i=-100 To 100
  ;Отображение  цель 0 и  цель 1
  DisplaySprite(0, 200, 160)
  DisplaySprite(1, 500, 160)
  
  ;Трансформация цель 0 и цель 1
  TransformSprite(0,i,i,100,0,100-i,100-i,0,100)
  TransformSprite(1,0,0,100-i,0+i,100-i,100-i,0,100)
  
  ;переключим буфер (отобразим на экране)  
  FlipBuffers()
  
  ;очистим буфер
  ClearScreen(RGB(0,0,0))
  
  ;Задержка 100 мсек.
  Delay(100)
  
Next i   

См. также

ZoomSprite(), RotateSprite()

Поддерживаемые OS

Все

<- SpriteWidth() - Оглавление Sprite - TransparentSpriteColor() ->