z-index images ???
Blitz3D Forums/Blitz3D Beginners Area/z-index images ???
| ||
| The z index determines what gets drawn "first" so I think you have it right. I cannot remember if a lower number is drawn first or last though. |
| ||
| I am not aware of any z-index. Between your question and dynaman's response I'm also a little confused here; are you asking if it exists or what the numbers mean? If the latter I'll have to try adding a number to LoadImage and see what happens; as I said I wasn't even aware of this. EDIT: I just tried it and got an error. Unless I missed an upgrade I have no idea what dynaman is talking about. There is no such thing as a z-index, but him explaining how it works would naturally assume that such a thing exists. |
| ||
| There is no Z-Order in Blitz. Things are drawn in the order you decide. So if you want ImageA on top of ImageB you need to draw ImageB first and then draw ImageA. If you want to you can make your own Z-Ordering functions, it's fairly simple. Ask if you need help! Fredborg |
| ||
| I was thinking of the z order in blitz3D. If 2d is what were talking about then blitz does not have any such item. |
| ||
| jhocking: What I did with the LoadImage+number was an example of what I want to have. And yes I'm asking if it exists Fredborg If you could make a Z-Ordering fucntion then maybe I can use it , I realy don't know how that is possible and what you make then. --Maybe in the future they make a z-order in blitz ? --the draw objects must have an ID right? but that is not visible for us I think Thanks you Very Much, GC-Martijn |
| ||
| Hi GC-Martjin, Here is a small example of how you could make your own Z-Ordering functions. I'm not sure it's the best way, but it should work. ; The ImageZ Type
Type ImageZ
Field image
Field x,y,z
Field show
End Type
;
; Example Usage:
;
; a = LoadImageZ("something.bmp",0)
; b = LoadImageZ("somethingelse.bmp",1) ; Image b is always drawn on top of Image a
;
; Repeat
; Cls
; DrawImageZ(b,rand(0,20),rand(0,20))
; DrawImageZ(a,rand(0,20),rand(0,20))
; RenderImageZ()
; Flip
; Until Keyhit(1)
;
;
; LoadImageZ()
;
; Works the same as LoadImage, except you can specify a Z-Order
Function LoadImageZ(file$,z=0)
image = LoadImage(file$)
If image
imgz.ImageZ = New ImageZ
imgz\image = image
imgz\z = z
imgz\show = False
SortImageZ()
Return Handle(imgz)
End If
End Function
;
; DrawImageZ()
;
; Same as DrawImage, except it doesn't actually draw anything
Function DrawImageZ(id,x,y)
imgz.Imagez = Object.ImageZ(id)
If imgz <> Null
imgz\x = x
imgz\y = y
imgz\show = True
End If
End Function
;
; SetZOrder()
;
; Lets you adjust the Z-Order of an ImageZ
Function SetZOrder(id,z)
imgz.ImageZ = Object.ImageZ(id)
If imgz <> Null
imgz\z = z
SortImageZ()
End If
End Function
;
; SortImageZ()
;
; When a new image is loaded or the z-order is changed, it
; is nescesarry to sort the imagezso the ones with the lowest
; Z-Order are drawn behind everything else.
Function SortImageZ()
b.ImageZ = First ImageZ
flag = True
While flag
flag = False
bb.ImageZ = Last ImageZ
While bb<>b
bbb.ImageZ = Before bb
If bbb = Null Exit
If bb\z<bbb\z
Insert bbb After bb
flag = True
Else
bb = bbb
EndIf
Wend
b = After bb
Wend
End Function
;
; RenderImageZ()
;
; Use this immediately before Flip
Function RenderImageZ()
For imgz.ImageZ = Each ImageZ
If imgz\show = True
DrawImage imgz\image,imgz\x,imgz\y
End If
imgz\show = False
Next
End FunctionFredborg |
| ||
| a small example... its big :) Well It looks cool I'm going to edit/check now. - - Thank You Much, GC-Martijn |