Guten Tag zusammen,
habe das noch nicht so richtig verstanden: wie muss ich das anstellen, wenn ich nach
OpenWindow(0, 0, 0, x, y, "Jump-and-Run Animation", #PB_Window_SystemMenu | #PB_Window_Invisible | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, x, y, 0, 0, 0, #PB_Screen_WaitSynchronization)
all diese
DisplaySprite(1, 0, 0)
DisplaySprite(2, 0, 0)
DisplaySprite(3, 0, 0)
...
FlipBuffers()
nicht plötzlich erscheinen (das klappt schon ganz gut), sondern, nachdem alle Sprites auf dem noch nicht zu sehenden Window drauf sind, ich dieses LANGSAM einblenden will?
Da ich kein PureBasic-Profi bin, würde mir eine "verstehbare" Erklärung sehr helfen.
Besten Dank im voraus für eure Kommentare!
Grüsse
irobot
Sprites langsam einblenden
Re: Sprites langsam einblenden
HI irobot,
zuerst mal, bitte verwende doch die "Code-Tags" und mit einem lauffähigen Code würde auch das helfen mehr Spaß machen.
Ich habe mal das Hilfe Beispiel von OpenWindowedScreen() dahingehend erweitert, dass das Sprite erst nach 2 s erscheint und durch Butten "Hide" auch wieder für 2 s verschwinden kann.
Alternativ wäre auch ein/mehrere Timer möglich.
Vielleicht hilft es dir ja.
zuerst mal, bitte verwende doch die "Code-Tags" und mit einem lauffähigen Code würde auch das helfen mehr Spaß machen.
Ich habe mal das Hilfe Beispiel von OpenWindowedScreen() dahingehend erweitert, dass das Sprite erst nach 2 s erscheint und durch Butten "Hide" auch wieder für 2 s verschwinden kann.
Alternativ wäre auch ein/mehrere Timer möglich.
Vielleicht hilft es dir ja.
Code: Alles auswählen
Global time.q, interval.q, bVisible
If InitSprite() = 0
MessageRequester("Error", "Can't open screen & sprite environment!", 0)
End
EndIf
If OpenWindow(0, 0, 0, 220, 160, "A screen in a window...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 170, 135, 45, 20, "Quit")
ButtonGadget(1, 170, 105, 45, 20, "Hide")
If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160)
CreateSprite(0, 20, 20)
If StartDrawing(SpriteOutput(0))
Box(0, 0, 20, 20, RGB(255, 0, 155))
Box(5, 5, 10, 10, RGB(155, 0, 255))
StopDrawing()
EndIf
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
End
EndIf
EndIf
interval = 2000 ; 2 s
time = ElapsedMilliseconds()
direction = 2
Repeat
; It's very important to process all the events remaining in the queue at each frame
;
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 0
End
Case 1
bVisible = #False
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
Until Event = 0
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
If ElapsedMilliseconds() - time > interval
bVisible = #True
time = ElapsedMilliseconds()
EndIf
If bVisible = #True
DisplaySprite(0, x, x)
EndIf
x + direction
If x > 140 : direction = -2 : EndIf
If x < 0 : direction = 2 : EndIf
Delay(1)
ForEver
Using PureBasic latest stable version and current alpha/beta (x64) on Windows 11 Home
Re: Sprites langsam einblenden
Ich glaube, er sucht so eine Art Fading für seine Sprites. Vielleicht kann man etwas mitirobot hat geschrieben: 16.07.2025 09:38 nicht plötzlich erscheinen (das klappt schon ganz gut), sondern, nachdem alle Sprites auf dem noch nicht zu sehenden Window drauf sind, ich dieses LANGSAM einblenden will?
Code: Alles auswählen
DisplayTransparentSprite()
(Start mit 0) und bei einem Timerereignis dann bis 255 hochgezählt werden.
Da wäre dann etwas Rumprobieren bis zum gewünschten Ergebnis notwendig.
PB 6.10
Re: Sprites langsam einblenden
mittels
DisplayTransparentSprite(spritenummer, 0, 0, intensitaet)
krieg ich das hin!
Dank an euch allen!
BTW, das mit den "Code-Tags" hab ich nicht begriffen.
Was muss ich tun, damit gewisse Ausschnitte hier wie Code aussehen?
Grüsse
irobot
DisplayTransparentSprite(spritenummer, 0, 0, intensitaet)
krieg ich das hin!
Dank an euch allen!
BTW, das mit den "Code-Tags" hab ich nicht begriffen.
Was muss ich tun, damit gewisse Ausschnitte hier wie Code aussehen?
Grüsse
irobot
- TroaX
- Beiträge: 684
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
- Wohnort: NRW
- Kontaktdaten:
Re: Sprites langsam einblenden
BBCode. BBCode hat Code Tags, die den Code zumindest sauber formatiert in Beiträgen anzeigen können.
app.php/help/bbcode#f2r1
app.php/help/bbcode#f2r1
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Re: Sprites langsam einblenden
Schreib doch einfach eckige Klammer ([) auf und das Wort code dahinter und eckige Klammer (]) zu.
dann dein Code
Am Schluß das gleiche wie am Anfang, jedoch vor dem Wort code noch ein Slash (/) dazu.
dann dein Code
Am Schluß das gleiche wie am Anfang, jedoch vor dem Wort code noch ein Slash (/) dazu.
PB 6.10
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Sprites langsam einblenden
Du kannst auch sehen wie es andere hier machen, indem du ihre Posts zitierst.