Gloweffekte mit Drawbefehlen?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

PhillipK

Betreff: Gloweffekte mit Drawbefehlen?

BeitragSa, Jun 25, 2011 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich wollte nachfragen, ob es möglich ist, mit DrawRect() etc eine art gloweffekt zu ermöglichen.

Das ganze stelle ich mir so vor, das vom zentrum zum rand immer mehr ausgeblendet (transparent) gemacht wird - ich möchte ungerne für mehrere Effekte unmengen Bilder erstellen.

Sollte es da kein kleines Workarround geben (möglichst ohne OpenGL direktzugriff, da bin ich kein stück bewandert), so frag ich mich, ob es evtl auch "schnell" gehen wrüde, wenn ich mit Alpha 0.1 und LIGHTBLEND mehrere Kreise mit unterschiedlichen radien übereinander Zeichnen würde.

Hat da irgendwer eine idee?

Xeres

Moderator

BeitragSa, Jun 25, 2011 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Yup, Lightblend und öfters übereinander zeichnen ist schnell genug.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

PhillipK

BeitragSa, Jun 25, 2011 11:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Huch, das ging schnell.

Dann brauch ich nurnoch einen Crashkurs im SetHandle() einsetzen. Meine spielereien lassen mich dort keine wirkliche Routine erkennen.

SetHandle(offsetX:Float,offsetY:Float) ist eine verschiebung der XY koordinaten vor dem rotieren und scalen, ist das richtig?

Dh wenn ich als "glow" effekt zb 10 Quadrate übereinander zeichnen möchte.. Ist das zu realisieren, indem ich per SetHandle() den ursprung verschiebe und mit SetScale immer das selbe rechteck zeichne?

Beispiel (aus dem Kopf geschrieben)

BlitzMax: [AUSKLAPPEN]
Const size:Int = 30

Graphics (800,600)
SetOrigin(400,600) 'Den Bildursprung in die mitte verschieben!
SetHandle(size/2,size/2)

For Local scale:Float = 0.2 To 1.0 Step 0.1
SetScale(scale,scale)
DrawRect(0,0, size,size)
Next



- Ist es so in der art möglich, oder würde das ganze durch SetScale() und DrawRect() den geschwindigkeitsvorteil gegenüber DrawImage() wieder rausnehmen?

Das ganze frage ich mich, weil ich letztens mal wieder Wiggles ausgegraben habe, und dort 'Markierungen' ziemlich Klasse realisiert waren. Sie sind halt ein wenig "rumgewabbelt" - nicht nur stumpf ein Rechteck. Ich wollte grade eigentlich ein Youtube video suchen, aber die einzigen die ich gefunden habe, waren ein Let's Play von einem Pubertierenden Gamer, der keine 2 sekunden die maus Stillhalten kann. Wollte mir das nicht länger antun Wink
Nun, um selbst so ein 'wabbeln' - wellenförmige Bewegungen meine ich damit, realisieren zu können, kann ich (mit meinem Wissensstand) keine Image benutztn. Ansonsten müsste ich mit der Matrix rumspielen Mad

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group