Seite 1 von 1
Transparente übereinanderliegende Sprites
Verfasst: 31.05.2015 14:28
von Delle
Hallo,
vielleicht kennt jemand diesen Effekt noch:
2 Kreise ("Funkwellen") lila/gelb bewegen sich hin und her, die Überlappungen beider Kreise verursachen aber rote Stellen.
Ist sowas mit PB überhaupt realisierbar? Mit dem Amiga ging es anscheinend problemlos mit einem Trick...
Ich kenn sowas ähnliches nur aus meinem Zeichenprogramm... Mischmodus "Differenz" oder sowas...
Danke,
Delle
Re: Transparente übereinanderliegende Sprites
Verfasst: 31.05.2015 14:31
von NicTheQuick
Wahrscheinlich brauchst du nur den richtigen 'SpriteBlendingMode()'.
Re: Transparente übereinanderliegende Sprites
Verfasst: 31.05.2015 17:49
von STARGÅTE
Die Kreise sind nicht Lila und Gelb, sondern Rot und Lila, und die Mischung wird gelb.
Genau so bekomm ich das gerade nicht hin, aber mit einem passenden BlendingMode kann man Farben addieren, also Rot+Grün = Gelb:
Code: Alles auswählen
InitSprite()
Enumeration
#Window
#Sprite_Red
#Sprite_Blue
EndEnumeration
OpenWindow(#Window, 0, 0, 800, 600, "ScreenTitle", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, WindowWidth(#Window), WindowHeight(#Window), 0, 0, 0)
CreateSprite(#Sprite_Red, 1024, 1024)
CreateSprite(#Sprite_Blue, 1024, 1024)
Define N
If StartDrawing(SpriteOutput(#Sprite_Red))
For N = 20 To 0 Step -1
Circle(OutputWidth()/2, OutputHeight()/2, OutputWidth()*N/40, (N%2)*$0000FF)
Next
StopDrawing()
EndIf
If StartDrawing(SpriteOutput(#Sprite_Blue))
For N = 20 To 0 Step -1
Circle(OutputWidth()/2, OutputHeight()/2, OutputWidth()*N/40, (N%2)*$00FF00)
Next
StopDrawing()
EndIf
Repeat
Repeat
Select WindowEvent()
Case #PB_Event_CloseWindow
End
Case #Null
Break
EndSelect
ForEver
ClearScreen(0)
SpriteBlendingMode(#PB_Sprite_BlendSourceAlpha, #PB_Sprite_BlendOne)
DisplayTransparentSprite(#Sprite_Red, 300+Sin(ElapsedMilliseconds()/1000)*200-512, 300-512)
DisplayTransparentSprite(#Sprite_Blue, 500-512, 300-512)
FlipBuffers()
ForEver
Re: Transparente übereinanderliegende Sprites
Verfasst: 31.05.2015 18:03
von Delle
STARGÅTE hat geschrieben:Genau so bekomm ich das gerade nicht hin, aber mit einem passenden BlendingMode kann man Farben addieren, also Rot+Grün = Gelb:
Muss ja nicht 1:1 sein, ging mehr ums Prinzip!

So ähnlich hab ich's jetzt mittels des Blendingmodus-Tipp auch hinbekommen
Hattest Du nichtmal auch eine UserLib mit solchen Effekten veröffentlicht? Gibt's die Sources irgendwo?