
Der Befehl ZeichneTextur() kann von jedem zwischen StartDrawing() und StopDrawing() individuell gestaltet werden.
Mathematische Funktionen, kreatives an einander Setzen von Linien, sogar die Erzeugung von Images und das Aufmalen dieser Images ist erlaubt.
Also alles, was die 2D-Drawing-Befehle und Image-Befehle hergeben.
REGELN:
- keine Bilder laden, LoadImage ist verboten
- nur PB-Befehle, damit plattform unabhängig
- Größe der Textur darf jeder selbst wählen: 32, 64, 128, 256, 512 Pixel.
- Ergebnis muss eindeutig rekonstruierbar sein (Zufall muss überall gleich sein!)
- Code sollte so klein wie möglich sein
(Sonst bindet noch jemand ein Image mit DataSection ein und nutzt Plot)
Code: Alles auswählen
;/ Folker Linstedt
;/ 2008-02-16
;/ PureBaic Textur-Contest
EnableExplicit
#TextureWidth=128 ; Möglich 32, 64, 128, 256, 512
CreateImage(0,#TextureWidth,#TextureWidth)
CreateImage(1,1024,1024)
Procedure ZeichneTextur()
;/ Optional
Protected i, i2
StartDrawing(ImageOutput(0))
;/ QUELLCODE: Beispiel
For i=0 To ImageWidth(0)/5
Box(0+5*i,0,5,20,RGB(255,128,10*i))
Next
Circle(ImageWidth(0)/2,ImageHeight(0)/2,18,RGB(255,0,0))
;/
StopDrawing()
EndProcedure
Procedure ZeichneTexturen()
Protected i, i2
StartDrawing(ImageOutput(1))
For i2=0 To ImageHeight(1)/ImageHeight(0)-1
For i=0 To ImageWidth(1)/ImageWidth(0)-1
DrawImage(ImageID(0),ImageWidth(0)*i,ImageHeight(0)*i2)
Next
Next
StopDrawing()
EndProcedure
Procedure createGadgets()
ImageGadget(0,5,5,ImageWidth(0),ImageHeight(0),ImageID(0),#PB_Image_Border)
ScrollAreaGadget(1,GadgetX(0)+GadgetWidth(0)+5,5,WindowWidth(0)-GadgetWidth(0)-15,650,1124,1124,10)
ImageGadget(2,5,5,ImageWidth(1),ImageHeight(1),ImageID(1),#PB_Image_Border)
CloseGadgetList()
EndProcedure
If OpenWindow(0,0,0,1000,700,"FL Bild",#PB_Window_ScreenCentered | #PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
createGadgets()
ZeichneTextur()
ZeichneTexturen()
SetGadgetState(0,ImageID(0))
SetGadgetState(2,ImageID(1))
Define Event.l, Quit, GadgetNr
Repeat
Event=WaitWindowEvent()
If Event=16
Quit=1
ElseIf Event=#PB_Event_Gadget
GadgetNr=EventGadget()
EndIf
Until Quit
EndIf
aber ich denke, es sollte erlaubt sein, dass auch weitere Prozeduren dazu genommen werden, wenn diese von ZeichneTextur() aus aufgerufen werden. Allerdings zählt hier auch die Gesamt-Länge des Codes.
Externe LIBs sind verboten!

Ein Beispiel wie eine ZeichneTextur() aussehen könnte, ist im Code enthalten. Die Ergebnisse sollen natürlich um einiges "schicker" sein.
