Code: Select all
EnableExplicit
XInclude "gs.pb"
#w=800
#h=600
OpenWindow(0, 0, 0, #w, #h, "Press SPACE BAR to change render mode", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 0, 0, #w, #h, 0, 0, 0)
Add3DArchive(".\", #PB_3DArchive_FileSystem)
gs_CreateCamera(0, 0, #w, #h, RGB(255, 255, 255))
Global s1=gs_CreateSprite(gs_LoadImage("tex.jpg"), 1, 1, #w-2, 300, 6, 6)
gs_SetGradient(s1, #True, RGB(255, 0, 100), RGB(0, 255, 0), 255, 0)
Global *s1.gs_Sprite=s1
AddMaterialLayer(*s1\Image\Material, TextureID(*s1\Image\texture), #PB_Material_AlphaBlend)
ScrollMaterial(*s1\Image\Material, 0.1, 0.1, #PB_Material_Animated, 1)
Global sn=gs_CreateSprite(gs_LoadImage("boule.png"), 200, 50, 100, 100)
gs_SetColor(sn, RGB(255, 0, 0))
gs_SetAlpha(sn, 250)
gs_SetScale(sn, 0.5, 0.5)
gs_SetHandle(sn, 50, 50)
gs_SetZOrder(sn, 10)
Global n
For n=1 To 10
Global sn_scale.f=0.5+n*0.1
Global sn_order=(11-n)
sn=gs_Clone(sn, 25, 25)
gs_SetZOrder(sn, sn_order)
gs_SetScale(sn, sn_scale, sn_scale)
gs_Rotate(sn, 10)
Next
Global sq=gs_CreateShapeSprite(gs_LoadImage("xox.png"), 0, 100, 200, 200, #gs_Shape_Disc, 40)
Global sp=gs_Copy(sq, 100, 100)
gs_SetScale(sp, 3, 1.5)
gs_SetGradient(sp, #False, RGB(255, 255, 0), RGB(0, 255, 255), 200, 500)
Global *s1.gs_Sprite=sp
;AddMaterialLayer(*s1\Image\Material, TextureID(*s1\Image\texture), #PB_Material_AlphaBlend)
;ScrollMaterial(*s1\Image\Material, 0.1, 0.1, #PB_Material_Animated, 1)
Procedure TransformSprites()
Protected Columns, Rows
Protected n, i, j, k
Static DeformTime.f
DeformTime+#PI/100
Dim transform.gs_xyzuvc(0)
gs_GetVertexArray(s1, transform())
Columns=gs_GetColumns(s1)
Rows=gs_GetColumns(s1)
k=Columns+1
For j=0 To Rows
If j=0 : Continue : EndIf
For i=0 To Columns
n=i+j*k
transform(n)\y+30*Cos(1*#PI/Columns*i+DeformTime)
Next
Next
gs_SetVertexArray(s1, transform())
Dim transform.gs_xyzuvc(0)
gs_GetVertexArray(sn, transform())
Columns=gs_GetColumns(sn)
Rows=gs_GetColumns(sn)
k=Columns+1
For j=0 To Rows
Protected tt.f=20*Cos(1*#PI/Columns*i+DeformTime)
For i=0 To Columns
n=i+j*k
transform(n)\y+tt
Next
Next
gs_SetVertexArray(sn, transform())
Dim transform.gs_xyzuvc(0)
gs_GetVertexArray(sp, transform())
Protected Segments=gs_GetColumns(sp)
Protected op=1
For i=0 To Segments
n=i
op=-op
Protected zt.f=op*10*Cos(2*#PI/Segments*i+DeformTime)
transform(n)\y+zt
Next
gs_SetVertexArray(sp, transform())
Dim transform.gs_xyzuvc(0)
gs_GetVertexArray(sq, transform())
Segments=gs_GetColumns(sq)
zt.f=50*Cos(2*#PI/Segments*i+DeformTime)
For i=0 To Segments
n=i
transform(n)\y+zt
Next
gs_SetVertexArray(sq, transform())
EndProcedure
Repeat
gs_Rotate(sn, 1)
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Space)
If gs_SwitchCameraRenderMode()=#PB_Camera_Textured
CameraBackColor(#gs_Camera, RGB(255,255,255))
Else
CameraBackColor(#gs_Camera, RGB(5, 5, 55))
EndIf
EndIf
TransformSprites()
RenderWorld()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or WaitWindowEvent(10)=#PB_Event_CloseWindow
gs_FreeCamera()