# Überblenden von Bildern



## Kutshi (6. Nov 2011)

Ich wollte mal nachfargen ob jemand weiß wie ich ein Bild aus- und dafür ein aderes einblenden kann und welche Objekte ich hierfürbenötige. Da ich leider gar keine ahnung hab mit welchen Tools ich am besten an das Problem herangehe wollte ich mal nachfragen ob ihr mir weiterhelfen könnt. 

Danke schonmal.


----------



## Marco13 (6. Nov 2011)

Da wird man sicher was mit einem AlphaComposite (Java Platform SE 6) machen können. Wie genau - müßte ich jetzt auch erst überlegen... 
Bei konkreten Fragen nochmal bescheid sagen.


----------



## Kutshi (6. Nov 2011)

Hab mir das mal angeguckt aber so richtig wissen was ich machen soll tue ich noch nicht. Gibt es i.wo es gutes Beispiel was gut in den Karm einführt? Weiß nämlich nicht so richtig wie ich anfangen soll. Aber das hört sich schon ziemlich gut an. Danke!


----------



## Marco13 (6. Nov 2011)

Ein bißchen was steht z.B. auf Compositing Graphics (The Java™ Tutorials > 2D Graphics > Advanced Topics in Java2D) - wie das bei Bilder funktioniert müßte ich auch mal schauen, wenn's konkrete Problem gibt, kann ich (oder jemand anderes) morgen vielleicht mal ein Beispiel basteln.


----------



## Kutshi (10. Nov 2011)

Kann ich das auch stufenweise mit ner Schleife überlappen lassen? Also das so ein Abdunkelungseffekt entsteht?


----------



## Michael... (10. Nov 2011)

Kutshi hat gesagt.:


> Kann ich das auch stufenweise mit ner Schleife überlappen lassen? Also das so ein Abdunkelungseffekt entsteht?


Wie soll denn der Effekt aussehen? Man könnte ja "einfach" in einer Schleife die Tranparenz des einen Bildes erhöhen und die des anderen reduzieren und danach immer ein repaint() auf die Komponente aufrufen.
Notwendige Grundlagen: Zeichnen mit Swing, eventuell auch Verwendung von AlphaComposites


----------



## Kutshi (10. Nov 2011)

Also der Spieler soll zwischen Charakteren auswählen können und wenn er einen ausgescuht hat un diesen aklickt soll sich das Bild verdunkeln bis es kurz schwarz ist und dann soll langsam das Bild des Spieles zu sehen sein.

Nen bissel hab ich schon mit Swing gemacht. Auch schon nen bissel Gezeichnet und so nur halt einfache sachen wie Gitter für Spielfelder oder so.


----------



## Michael... (10. Nov 2011)

Bild heisst (recht)eckiges oder rundes Bild? 
Wenn ja lässt man in einem separaten Thread eine Schleife laufen und zeichnet über das alte Bild ein schwarzes Rechteck/Polygon/Kreis/Oval mit bei jedem Schleifendurchgang abnehmender Transparenz. Danach das selbe mit dem neuen Bild nur umgekehrt.
So mal die einfache Theorie, die Umsetzung ist schon ein bisschen aufwendiger ;-)


----------



## Kutshi (10. Nov 2011)

Ja das habe ich mir auch gedacht (alle Bilder sind erstmal eckig denke das bleibt auch auch wenn man nachher vllt die Ecken nicht mehr sieht so von wegen packen und so und ich weiß auch noch nicht wie das mit transparenten teilen wenn es nicht eckig ist gehen soll ). 

Aber wenn die Theorie schon mal richtig verstanden ist ist das ne ganze Menge. Wusste ja vorher gar nicht wie ich das ordentlich umsetzten kann weil ich nicht wusste was Java in der Hinsicht bietet.

Geht das denn wenn ich die Bilder in JLabel packe? Also ich meine ich hab schon ein paar Bilder eingebunden und jetzt muss ich auch zwei nebeneinander haben und somit muss ich die ja i.wie anordnen können. (Sry wenn ich dummes Zeug laber aber möchte auch gerne was dazu lernen wie man sauberer Gui programmiert. )


----------



## Michael... (10. Nov 2011)

Kutshi hat gesagt.:


> ich weiß auch noch nicht wie das mit transparenten teilen wenn es nicht eckig ist gehen soll ).


Dann kommt man vermutlich nicht um BufferedImages und arbeiten mit AlphaComposites herum.


----------



## Michael... (10. Nov 2011)

Kutshi hat gesagt.:


> Geht das denn wenn ich die Bilder in JLabel packe? Also ich meine ich hab schon ein paar Bilder eingebunden und jetzt muss ich auch zwei nebeneinander haben und somit muss ich die ja i.wie anordnen können. (Sry wenn ich dummes Zeug laber aber möchte auch gerne was dazu lernen wie man sauberer Gui programmiert. )


Keine Ahnung was für ein Spiel das werden soll. Aber sobald man mehrere Bilder übereinander legen will, sollte man das ganze selbst zeichnen. JLabel ist ganz nett um in einer Anwendungs-GUI ein Bild anzuzeigen, aber sobald die Graphiken komplexer werden ungeeignet.


----------



## Kutshi (10. Nov 2011)

Oki ... aber ich mache das Projekt ja auch zum lernen vllt kann ich es ja einfach wenn ich es schaffe bei dem Hauptcharakter machen und dann mal gucken aber ich meine das ist Optional das werde ich noch nicht jetzt machen da ich einfach noch nicht weiß wie viel zeit alles in anpruch nehmen wird. 

Aber ich gucke mir das heute nochmal an und wenn ich da Probleme hab bposte ich meinen Code.  Hoffen wir mal das ich die Ziet heute finde. XD Einfach zu viel zu tun in der Uni da hängt man das was man gerne macht gerne hinten dran das der Mist erstmal weg ist. 

Aber danke nochmal für die Schnellen antworten. 

Ps.: Wie soll ich das denn dann am besten im Spiel selber machen? Denke mal das es im Menü nicht ganz so wichtig ist der Hintergrund ist schwarz und das Graphisch aufwendigste was reinkommt ist ne Liste die die Spielstände anzeigt und das Logo.


----------



## Marco13 (10. Nov 2011)

Bei so einem Problem ist IMHO das sinnvollste: Ein JFrame mit einer Zeichenfläche und eine Button, und beim Button-Klick wird die überblendung gemacht. Nichts mit "Spielmenü" und "Logo", dafür mit hart-codierten Pfaden zu den Bilddateien. Ein kleinstmöglicher Test für die Funktionalität, die man sich erarbeiten will. Wenn das dann geht, kann man sich überlegen, wie und wo man das ins Spiel einbaut. (Zumindest würde ich das so machen - zumal ich mir nicht mal 100% sicher bin, ob und wie und wie gut das mit AlphaComposites und Bildern funktioniert...). So ein mini-Testprogramm kann man dann auch leicht als KSKB hier posten, wenn's nicht klappt.


----------



## GUI-Programmer (10. Nov 2011)

Vielleicht gehts auch einfacher, falls die Bilder ungefähr die selbe Größe haben. Benutze ein JLabel,das du dann immer wieder erstellte ImageIcons zuweist. Dazwischen möglicherweise setIcon(null) bei einen Label mit schwrzen Hintergrund und das deckhaft ist (setOpaque(true)).


----------



## Kutshi (13. Nov 2011)

Ich schiebe das problem, da es ja doch i.wie nicht ganz so leicht ist erstmal nach hilnten. Muss erstmal nen paar andere Dinge fertig machen (von wgeen projektplan und so). Wenn ich ncohmal Hilfe brauche dann werde ich das Thema nochmal auf machen. Aber danke.


----------

