width=width of the new image (or its frames) height=height of the new image frames= optional number of frames (assumed to be a single frame) |
Sometimes you want to create a completely new graphic on the fly (using other images, drawing commands, etc.) instead of loading one. This command will let you create a new image with a single frame or multiple frames for animation. You specify the width, height, and optional number of frames. The example should be pretty self-explainatory. |
; dxCreateImage/TileImage/dxImageBuffer example ; Again, we'll use globals even tho we don't need them here ; One variable for the graphic we'll create, one for a timer Global gfxStarfield, tmrScreen ; Declare graphic mode Graphics 640,480,16 ; Create a blank image that is 32 pixels wide and 32 high with 10 frames of 32x32 gfxStarfield=dxCreateImage(32,32,10) ; loop through each frame of the graphic we just made For t = 0 To 9 ; Set the drawing buffer to the graphic frame so we can dxWrite on it dxSetBuffer dxImageBuffer(gfxStarfield,t) ; put 50 stars in the frame at random locations For y = 1 To 50 dxPlot dxRnd(32),dxRnd(32) Next Next ; Double buffer mode for smooth screen drawing dxSetBuffer dxBackBuffer() ; Loop until ESC is pressed While Not dxKeyHit(1) ; Only update the screen every 300 milliseconds. Change 300 for faster or ; slower screen updates If MilliSecs() > tmrScreen+300 Then dxCls ; clear the screen ; Tile the screen with a random frame from our new graphic starting at ; x=0 and y=0 location. TileImage gfxStarfield,0,0,dxRnd(9) dxFlip ; dxFlip the screen into view tmrScreen=MilliSecs() ; reset the time End If Wend |