ich will ein Multimendia Menu, wie im Mediacenter Programmieren, meine Frage ist,
wie kann ich ein Hintergrundbild anzeigen, wenn ich mit 'OpenScreen" ein Screen öffne und
Sprites als Menu-Punkte über den Bildschirm bewege ohne das das Hintergrundbild von den
Sprites zertört wird ?
Code: Alles auswählen
#SCREEN_W = 1920
#SCREEN_H = 1080
#SCREEN_TITLE = "HTCP-Menu"
Procedure sp_Erstellen(nr,w,h,text$,farbe1,farbe2)
CreateSprite(nr, w,h, #PB_Sprite_Texture)
StartDrawing(SpriteOutput(nr))
Ellipse(w/2, h/2,w/2+x,h/2+x,$ffffFF)
Ellipse(w/2, h/2,w/2-4,h/2-4,farbe1)
FrontColor(farbe2)
DrawingMode(1)
DrawingFont(FontID(1))
Breite = TextWidth(text$)
Hoehe = TextHeight(Text$)
DrawText((w/2)-(breite/2), (h/2)-(hoehe/2),text$)
StopDrawing()
EndProcedure
;***************************************************************************************************************
;***************************************************************************************************************
;***************************************************************************************************************
;***************************************************************************************************************
LoadFont(1, "Arial", 24)
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 or later", 0)
End
EndIf
intervall.f= 3.14/50 ;pi verteilt
If OpenScreen(#SCREEN_W,#SCREEN_H, 32,#SCREEN_TITLE)
sp_erstellen(0,200,50,"S T A R T",$13EEEC,$DB8224)
sp_erstellen(1,200,50,"E N D E",$13EEEC,$DB8224)
; LoadSprite(0, "..\Gfx\PureBasic.bmp", 0)
; CopySprite(0,1,0)
x=#SCREEN_W/2
y=#SCREEN_H/2
Repeat
FlipBuffers()
ClearScreen(RGB(0,0,0))
DisplaySprite(2, #SCREEN_W/2, #SCREEN_H/2) ; koordinatenursprung in Bildmitte
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Up)
For i=1 To 20
y=(y-i)
FlipBuffers()
ClearScreen(RGB(0,0,0))
DisplaySprite(0, x, y) ; koordinatenursprung in Bildmitte
DisplaySprite(1, x, y+300) ; koordinatenursprung in Bildmitte
Next i
EndIf
If KeyboardPushed(#PB_Key_Down)
For i=1 To 20
y=(i+y)
FlipBuffers()
ClearScreen(RGB(0,0,0))
DisplaySprite(0, x, y) ; koordinatenursprung in Bildmitte
DisplaySprite(1, x, y+300) ; koordinatenursprung in Bildmitte
Next i
EndIf
DisplaySprite(0, x, y) ; koordinatenursprung in Bildmitte
DisplaySprite(1, x, y+300) ; koordinatenursprung in Bildmitte
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Else
MessageRequester("Error", "Can't open a Screen", 0)
EndIf