стандартный TileMap не потдерживает матрицу трансформации
т.е. ему пофиг на SetScale и SetRotation
мне пофиг на SetRotation но далеко не пофиг на SetScale
потому я зделал свою функцию-пародию на TileMap
вот она
Function jTileImage( image:TImage,x#=0,y#=0,frame%=0 )
Local iframe:TImageFrame=image.Frame(frame)
If Not iframe Return
Local scx#,scy#
GetScale(scx,scy)
Local w# = image.width * scx
Local h# = image.height * scy
Local ox#,oy#,vw%,vh%,vox%,voy%
GetViewport (vox,voy,vw,vh)
ox = vox - w + 1
oy = voy - h + 1
Local px#,py#
GetOrigin(px,py)
px = x + px - image.handle_x * scx
py = y + py - image.handle_y * scy
Local fx# = px - Floor(px)
Local fy# = py - Floor(py)
Local tx# = Floor(px) - ox
Local ty# = Floor(py) - oy
If tx>=0 tx=tx Mod w + ox Else tx=w - -tx Mod w + ox
If ty>=0 ty=ty Mod h + oy Else ty=h - -ty Mod h + oy
Local vr# = vox + vw + w
Local vb# = voy + vh + h
Local iy# = ty
While iy <= vb
Local ix# = tx
While ix <= vr
iframe.Draw 0,0,image.width,image.height,ix+fx,iy+fy
ix = ix + w
Wend
iy = iy + h
Wend
End Function
в принципе добавив еще пару строчек кода - ее мона
сразу вставить в Max2D.mod
но для етого надо написать так чтобы она и с Rotation работала
у меня ща нету времени разбиратся где там на косинус надо
множить ... потому кто тут добрый ? напишите
чтобы размер картинки менялся не только по scx .. но и по углу
тоесть при 0 градусов размер картинки один к одному
при 45 размер увеличивается на sqr(3) / 2
при 90 размер один к одному
в общем в максе еще много чего можно править