Code: Alles auswählen
; About TNG Requester scholly 06 Version 1.0
; by scholly
; (intern arng_ugs_06.pb)
; WindowsXP(SP2), PB 4.10
;
; Logo, Text, Button, Sprite, Sprite3D, Scrolling und Transparenz
Gosub ANG_6
End
ANG_6:
;#########################################################################################
;{
InitSprite()
InitSprite3D()
ar6_win_titel.s = "About-Requester - TNG "
ar6_win_width = 300
ar6_win_height = 465
ar6_quit = #False
ar6_font_big_nr = LoadFont(#PB_Any,"Arial", 32, #PB_Font_Bold)
ar6_font_sml_nr = LoadFont(#PB_Any,"Arial", 9,#PB_Font_Bold)
ar6_logofile.s = #PB_Compiler_Home+"examples\sources\Data\Geebee2.bmp"
ar6_win_ID = OpenWindow(#PB_Any,0,0,ar6_win_width,ar6_win_height,ar6_win_titel,#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(ar6_win_ID))
ar6_but_1_id = ButtonGadget(#PB_Any,10,ar6_win_height -35,50, 25,"Credits")
ar6_but_2_id = ButtonGadget(#PB_Any,ar6_win_width-110,ar6_win_height -35,100, 25,"bye, bye (^_^)/~~")
OpenWindowedScreen(WindowID(ar6_win_ID),0,0,ar6_win_width,ar6_win_height -55,0,0,0)
; Das Schmetterlings(??)-Logo holen
ar6_sprite1_nr = LoadSprite(#PB_Any,ar6_logofile)
TransparentSpriteColor(ar6_sprite1_nr, RGB(255,0,255))
;Sprite-Maße holen
StartDrawing(SpriteOutput(ar6_sprite1_nr))
ar6_spr1_height = SpriteHeight(ar6_sprite1_nr)
ar6_spr1_width = SpriteWidth(ar6_sprite1_nr)
StopDrawing()
StartDrawing(ScreenOutput())
For ar6_linecounter = 0 To 128
Box(0,ar6_linecounter,ar6_win_width, 255-ar6_linecounter*2,RGB(255-ar6_linecounter/2,255-ar6_linecounter/2,255-ar6_linecounter/2))
Next ar6_linecounter
StopDrawing()
ar6_sprite2_nr = CreateSprite(#PB_Any,ar6_win_width,250)
TransparentSpriteColor(ar6_sprite2_nr, #White)
StartDrawing(SpriteOutput(ar6_sprite2_nr))
FillArea(1, 1, #White,#White)
DrawingFont(FontID(ar6_font_big_nr))
DrawText(10,5,"About NG",#Red,#White)
DrawingFont(FontID(ar6_font_sml_nr))
DrawText(10, 50, "Version 6.4711",RGB(128,128,128),#White)
DrawText(10, 70, "PureBoard Requester Suite",#Black,#White)
DrawText(10, 85, "schollys Requester 6 ",#Black,#White)
DrawText(10,110, "Copyleft März 2008, no rights reserved",#Black,#White)
DrawText(10,125, "Nutzung auf eigenes Risiko (^o^)",#Black,#White)
DrawText(10,145, "Treffen sich zwei Planeten.",#Black,#White)
DrawText(10,160, "Fragt der Erste: ",#Blue,#White)
DrawText(10,175, " Wie gehts denn so? ",#Blue,#White)
DrawText(10,190, "Antwortet der Zweite:",#Black,#White)
DrawText(10,205, " Nich so gut, ich hab Homo Sapiens (*_*)",#Black,#White)
DrawText(10,220, "Sagt der Erste:",#Blue,#White)
DrawText(10,235, " Wart ab, das geht vorbei....",#Blue,#White)
StopDrawing()
; Auf Seite 2 sollen Credits vertikal gescrollt werden, Namen horizontal zentiert
; Dafür wandern Creditoren-Name und die Länge des Strings in eine Struktur
Structure ar6_creditor
text.s
width.l
EndStructure
Global Dim ar6_zeile.ar6_creditor(25)
ar6_zeile(0)\text = "Lurchi"
ar6_zeile(1)\text = "Mäckie"
ar6_zeile(2)\text = "Goldbaron"
ar6_zeile(3)\text = "Silberzweig"
ar6_zeile(4)\text = "Otto"
ar6_zeile(5)\text = "Hasenfuß"
ar6_zeile(6)\text = "Pumpelsteinchen"
ar6_zeile(7)\text = "Kleiner Mann"
ar6_zeile(8)\text = "Knollennase"
ar6_zeile(9)\text = "Klein Erna"
ar6_zeile(10)\text = "Tünnes"
ar6_zeile(11)\text = "Schäl"
ar6_zeile(12)\text = "Hoppeditz"
ar6_zeile(13)\text = "Ärnie"
ar6_zeile(14)\text = "Bärt"
ar6_zeile(15)\text = "Dr. Kombüse"
ar6_zeile(16)\text = "Ärlkönig"
ar6_zeile(17)\text = "Knuddelmaus"
ar6_zeile(18)\text = "Baver Hans"
ar6_zeile(19)\text = "Dora Dussel"
ar6_zeile(20)\text = "Bonsei Master"
ar6_zeile(21)\text = "Vogelscheuche"
ar6_zeile(22)\text = " ";Dummy
ar6_zeile(23)\text = "-----";Dummy damit die Wiederholung sichtbar wird
ar6_zeile(24)\text = " ";Dummy
; Stringlängen und notwendige Image-Höhe ermitteln
ar6_scl_img_height = 0
StartDrawing(ScreenOutput())
DrawingFont(FontID(ar6_font_sml_nr))
For ar6_counter = 0 To 24
ar6_zeile(ar6_counter)\width = TextWidth(ar6_zeile(ar6_counter)\text)
If ar6_zeile(ar6_counter)\width >= ar6_win_width
MessageRequester("Obacht", "Font zu groß oder Textzeile(n) zu lang für den Screen")
End
EndIf
ar6_scl_img_height + TextHeight(ar6_zeile(ar6_counter)\text) + 3 ;ZeilenAbstand
Next
StopDrawing()
; Hier könnte berechnet werden, wie hoch das Image werden soll, aber in diesem Beispiel
; werden nur Text- und Screen-Höhe debugged
; Debug "Screen-Höhe: " + Str(ar6_win_height -55)
; Debug "Image-Höhe: " + Str(ar6_scl_img_height)
; Da die Image- > Screenhöhe ist, reicht ein 2-faches Image
ar6_scl_img_height * 2
ar6_scl_img_nr = CreateImage(#PB_Any,ar6_win_width, ar6_scl_img_height)
StartDrawing(ImageOutput(ar6_scl_img_nr))
FillArea(1, 1, #White,#White)
DrawingFont(FontID(ar6_font_sml_nr))
For ar6_counter = 0 To 24
ar6_x_offset = (ar6_win_width - ar6_zeile(ar6_counter)\width)/2
ar6_y_offset = ar6_counter*2*9; denn die Fonthöhe = 9
DrawText(ar6_x_offset,ar6_y_offset,ar6_zeile(ar6_counter)\text,RGB(100,100,100),#White)
Next
For ar6_counter = 0 To 24
ar6_x_offset = (ar6_win_width - ar6_zeile(ar6_counter)\width)/2
ar6_y_offset = 9*2*ar6_counter+ar6_scl_img_height/2
DrawText(ar6_x_offset,ar6_y_offset,ar6_zeile(ar6_counter)\text,RGB(100,100,100),#White)
Next
StopDrawing()
;Das wird der untere Teil des Farbverlaufes, der Transparenz "gewinnt"
ar6_bldspr_nr = CreateSprite(#PB_Any,ar6_win_width,1,#PB_Sprite_Texture)
StartDrawing(SpriteOutput(ar6_bldspr_nr))
TransparentSpriteColor(ar6_bldspr_nr, #White)
Box(0,0,ar6_win_width, 4,RGB(128,128,128))
StopDrawing()
ar6_bldspr3d_nr = CreateSprite3D(#PB_Any, ar6_bldspr_nr)
ar6_crdspr_nr = CreateSprite(#PB_Any,ar6_win_width,100)
TransparentSpriteColor(ar6_crdspr_nr, #White)
StartDrawing(SpriteOutput(ar6_crdspr_nr))
FillArea(1, 1, #White,#White)
DrawingFont(FontID(ar6_font_big_nr))
DrawText(0,0,"Credits",#Black,#White)
DrawText(0,40,"go to:",#Black,#White)
StopDrawing()
ar6_scroll_y = ar6_win_height
ar6_page = 1
Repeat
ClearScreen(#White)
Select ar6_page
Case 1
StartDrawing(ScreenOutput())
For ar6_linecounter = 0 To 128
Box(0,ar6_linecounter,ar6_win_width, 255-ar6_linecounter*2,RGB(255-ar6_linecounter/2,255-ar6_linecounter/2,255-ar6_linecounter/2))
Next ar6_linecounter
StopDrawing()
DisplayTransparentSprite(ar6_sprite1_nr,ar6_win_width-ar6_spr1_width,0)
DisplayTransparentSprite(ar6_sprite2_nr,0,ar6_spr1_height)
Case 2
; das Scrolltext-Image
ar6_scroll_y - 1
If ar6_scroll_y < -ar6_scl_img_height/2
ar6_scroll_y = 0
EndIf
StartDrawing(ScreenOutput())
DrawImage(ImageID(ar6_scl_img_nr),0,ar6_scroll_y)
StopDrawing()
; Der obere Farbverlauf
StartDrawing(ScreenOutput())
For ar6_linecounter = 0 To 128
Line(0,ar6_linecounter,ar6_win_width, 0,RGB(255-ar6_linecounter,255-ar6_linecounter,255-ar6_linecounter))
Next ar6_linecounter
StopDrawing()
Start3D()
For ar6_linecounter = 0 To 127
DisplaySprite3D(ar6_bldspr3d_nr,0,128+ar6_linecounter,255-2*ar6_linecounter)
Next
Stop3D()
; Der Schmetterling
DisplayTransparentSprite(ar6_sprite1_nr,ar6_win_width-ar6_spr1_width,0)
; "Credits"
DisplayTransparentSprite(ar6_crdspr_nr,10,10)
EndSelect
ar6_EventID = WaitWindowEvent(1)
ar6_eventwindow = EventWindow()
ar6_EventGadget = EventGadget()
If ar6_eventwindow = ar6_win_ID
If ar6_EventID = #PB_Event_CloseWindow
ar6_quit = #True
ElseIf ar6_EventID = #PB_Event_Gadget
If ar6_EventGadget = ar6_but_2_id
ar6_quit = #True
ElseIf ar6_EventGadget = ar6_but_1_id
If GetGadgetText(ar6_but_1_id) = "Credits"
SetGadgetText(ar6_but_1_id, "About")
ar6_Page = 2
ElseIf GetGadgetText(ar6_but_1_id) = "About"
SetGadgetText(ar6_but_1_id, "Credits")
ar6_Page = 1
ar6_y = 255
EndIf
EndIf
EndIf
EndIf
FlipBuffers()
Until ar6_quit = #True
FreeSprite(ar6_sprite1_nr)
FreeSprite(ar6_sprite2_nr)
FreeImage(ar6_scl_img_nr)
FreeSprite(ar6_bldspr_nr)
FreeSprite3D(ar6_bldspr3d_nr)
FreeSprite(ar6_crdspr_nr)
CloseScreen()
CloseWindow(ar6_win_ID)
;}
Return; ANG_1 ###########################################################################