Blendeffekte

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Ypser
XMas-Contest-Gewinner '03
Beiträge: 128
Registriert: 29.08.2004 14:35
Computerausstattung: Win7
Wohnort: Ingelheim
Kontaktdaten:

Beitrag von Ypser »

War nur ein Pseudo-Befehl. Hab lange nix mehr mit PB gemacht und wollte net erst nachschlagen :mrgreen:

Aber hast natürlich Recht, braucht man bei dem BlendingMode net.

[edit]
TransparentSpriteColorHyperSpaceMegaDingensGedöns... meinte ich doch...

Kein Wunder, dass man diese ewig langen PB-Befehlsnamen nach ner
Weile vergisst, man wird ja auch net jünger :lol:
[/edit]
Bild
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag von benpicco »

Na gut, dann ist es wohl doch das Beste alles vorher als Grafik zu erstellen und dann anzeigen zu lassen.
Aber wie kann ich jetzt noch Farbe ins Spiel bringen, das das Lensflare und die Strahlen zozusagen mit (berechneter) Textur überzpgen werden. (Wen es statisch ist, sieht es doch sehr unrealistisch aus, die Farbe müsste sich schon etwas ändern können)
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

Ich hab das mal so gemacht:
Ich hab jeweils ein Sprite in Rot, Grün und Blau hergestellt.
Mit dem Fade-Parameter von Sprite3D, jeweils durchlaufen lassen.
Kannst dann damit jede beliebige Farbe herstellen.
I´a dllfreak2001
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag von benpicco »

Danke, funktioniert perfekt! :allright:
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

@dllfreak2001: haste mal ein kurzes Beispiel zum Posten bei der Hand?

Würde dies gerne mit ins CodeArchiv (und evtl. auch in die Hilfe?) mit aufnehmen.

Danke im voraus!
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag von benpicco »

Naja, so wie ich das nachgebaut hab, find ich es eigentlich zu Simpel für´s CodeArchiv, sind ja nur 3 Vorberechnete Bilder, also ich hab´s so gemacht:

Code: Alles auswählen

InitSprite()
InitSprite3D()
InitKeyboard()
InitMouse()

Procedure.f Gsin(winkel.f) 
  preturn.f=Sin(winkel*(2*3.14159265/360)) 
  ProcedureReturn preturn 
EndProcedure 
Procedure.f Gcos(winkel.f) 
  preturn.f=Cos(winkel*(2*3.14159265/360)) 
  ProcedureReturn preturn 
EndProcedure 

Procedure DisplayRGBFlare(x,y,red,green,blue,angle)
  Sprite3DBlendingMode(5,7)
  RotateSprite3D(1,angle,0)
  RotateSprite3D(2,angle,0)
  RotateSprite3D(3,angle,0)
  DisplaySprite3D(1,x,y,red)
  DisplaySprite3D(2,x,y,green)
  DisplaySprite3D(3,x,y,blue)
EndProcedure
OpenScreen(1024,768,32,"test")
LoadSprite(0,"gfx\ray.bmp")
LoadSprite(1,"gfx\nova_red.bmp",#PB_Sprite_Texture)
LoadSprite(2,"gfx\nova_green.bmp",#PB_Sprite_Texture)
LoadSprite(3,"gfx\nova_blue.bmp",#PB_Sprite_Texture)
CreateSprite3D(1,1)
CreateSprite3D(2,2)
CreateSprite3D(3,3)
DisplaySprite(0,0,0)
Width =SpriteWidth(0)
Sprite3DQuality(1)
MouseLocate(300,300)
Repeat
  FlipBuffers(0)
  ExamineMouse()
  ExamineKeyboard()
  ClearScreen(0,0,0)
  If x.f<360
    x+0.1
  Else
    x=0
  EndIf
  Start3D()  
  If KeyboardPushed(#PB_Key_Q) And red<255
    red+1
  ElseIf KeyboardPushed(#PB_Key_A) And red>0
    red-1
  EndIf
  If KeyboardPushed(#PB_Key_W) And green<255
    green+1
  ElseIf KeyboardPushed(#PB_Key_S) And green>0
    green-1
  EndIf
  If KeyboardPushed(#PB_Key_E) And blue<255
    blue+1
  ElseIf KeyboardPushed(#PB_Key_D) And blue>0
    blue-1
  EndIf
  DisplayRGBFlare(TargetX,TargetY,red,green,blue,x)
  DisplayRGBFlare(TargetX,TargetY,red,green,blue,360-x)
  Stop3D()
  StartDrawing(ScreenOutput())
  Locate(1,1)
  DrawText("Red:" +Str(red)+ " Green:" +Str(green)+" Blue:"+Str(blue))
  StopDrawing()
  TargetX=MouseX()
  TargetY=MouseY()
  
Until KeyboardPushed(#PB_Key_Escape)
schneller ist´s natürlich, wen man DisplayRGBFlare( nur 1* aufruft und dafür in der Procedure das hier macht

Code: Alles auswählen

  Sprite3DBlendingMode(5,7)
  RotateSprite3D(1,angle,0)
  RotateSprite3D(2,0,0)
  RotateSprite3D(3,360-angle,0)
  DisplaySprite3D(1,x,y,red)
  DisplaySprite3D(2,x,y,green)
  DisplaySprite3D(3,x,y,blue)
Gibt einen hübschen *fast* Zufallsfarbton - Effekt
(ich weiß aber nicht´s ob´s dllfreak genau so gelöst hat)
Achja, hier noch die bmps (wow, lassen die sich gut packen!)
http://mitglied.lycos.de/benpicco/loade ... ad=gfx.rar
Zuletzt geändert von benpicco am 20.11.2005 00:55, insgesamt 1-mal geändert.
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

@benpicco: Danke :)

Vielleicht zeigt ja auch dllfreak2001 noch etwas von seinem Code... :wink:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

Ich wollte auch mal so etwas machen

das einzige was du machen kannst du vergleichst zwei Bilder (eins mit und eins ohne) und schreibst die unterschiede in einer Datei.

Im Spiel gehst du dann alle Pixel durch (am besten mit Drawingbuffer) und änderst die Pixel nach den in der Datei geschriebenen Werten.

evtl. x,y, länge und winkel anpassen ist zwar kompliezierter aber möglich
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

Ich hab das mal nur zum Spaß gebaut (irgendwann mal, hab auch schon wieder gelöscht).
Das ist wie Benpicco schon sagt eher ne Methode als Code.
Würdest nicht mehr sehen als bei dem von Benpicco (meins war noch nicht mal so in einer Procedure verpackt).
I´a dllfreak2001
Antworten