Ich dokter jetzt an dem Code 'ne Stunde 'rum

Code: Alles auswählen
InitSprite()
fontsize = 32
zeilenabstand = 8
LoadFont(0,"Verdana",fontsize,#PB_Font_Bold)
#window_height = 600
#window_width = 900
#screen_height = 570
#screen_width = 870
OpenWindow(0, #PB_Ignore, #PB_Ignore, #window_width, #window_height, "DisplaySprite3D", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),15,15,#screen_width,#screen_height,0,15,15)
; damit das Sprite und darin der Text zentriert werden können,
; müssen die Werte vorher berechnet werden.
; am besten alles in einer Struktur ablegen
Structure zeile
text.s
width.l
EndStructure
Global width_max.l = 0
Global Dim itext.zeile(25)
Procedure fill_zeile(counter.l,textzeile.s)
itext(counter)\text = textzeile
Debug "Textzeile :" + textzeile
itext(counter)\width = TextWidth(textzeile)
Debug "Textbreite: "+ Str(itext(counter)\width)
If itext(counter)\width > width_max : width_max = itext(counter)\width : EndIf
Debug "Max_breite: "+ Str(width_max)
EndProcedure
CreateImage(0, 870, 570)
StartDrawing(ImageOutput(0))
fill_zeile(0,"Ich will ja nur mal testen")
fill_zeile(1,"ob ich das hinbekomme und")
fill_zeile(2,"für Geschwindigkeit muß am")
fill_zeile(3,"'Y-Wert' gedreht werden und")
fill_zeile(4,"als nächstes probier ich")
fill_zeile(5,"dann endlosscrollen und dann")
fill_zeile(6,"zu zentrieren und danach eine")
fill_zeile(7,"Textur statt Textfarbe und")
fill_zeile(8,"dann versuch ich, daß es oben")
fill_zeile(9,"schmaler wird (STAR WARS)")
fill_zeile(10,"und dann..............")
Debug "Max. Breite: " + Str(width_max)
StopDrawing()
FreeImage(0)
sprite_height = 12*(32+zeilenabstand)
sprite_width = width_max
y_offset = 0
CreateSprite(0, sprite_width, sprite_height, #PB_Sprite_Texture)
StartDrawing(SpriteOutput(0))
DrawingMode(1)
FrontColor(#Red)
DrawingFont(FontID(0))
DrawText(0,y_offset,itext(0)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(1)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(2)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(3)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(4)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(5)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(6)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(7)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(8)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(9)\text)
y_offset + fontsize + zeilenabstand
DrawText(0,y_offset,itext(10)\text)
StopDrawing()
y = sprite_height
Repeat
EventID = WindowEvent()
ClearScreen(RGB(0, 0, 0))
For spritecounter = 1 To (Round(#screen_height/sprite_height,1) + 1)
DisplaySprite(0, 0, (spritecounter -2) * sprite_height + y)
Next spritecounter
y - 1
If y < 0
y = sprite_height
EndIf
FlipBuffers()
Until EventID = #PB_Event_CloseWindow
mDv... scholly