Hintergrund transparent machen
hm....
- java
Hi Leute,
ich möchte das ein Bild auf meinem Desktop hin und her springt.
Dafür habe ich die Bibliothek Slick in mein Java Projekt eingebunden und diesen Code gefunden:
import org.newdawn.slick.*;
public class HelloWorld extends BasicGame {
private Image image;
public HelloWorld() {
// Setzen des Fenstertitels
super("Hello World");
}
public static void main(String[] args) throws SlickException {
AppGameContainer container = new AppGameContainer(new HelloWorld());
// Fenster mit 1024 x 786 im Fenstermodus (false)
//container.setFullscreen(true);
container.setDisplayMode(700,700,false);//1024, 768,false);
container.start();
}
@Override
public void init(GameContainer container) throws SlickException {
// Bild logo.png aus dem Verzeichnis restest laden
image = new Image(pfad zum png);
}
@Override
public void render(GameContainer container, Graphics g)
throws SlickException {
// Text und Bild zeichnen
g.drawString("Hello World", 100, 100);
g.drawImage(image, 300, 300);
//Color color = new Color(Color.transparent );
g.setBackground(Color.transparent);
}
@Override
public void update(GameContainer container, int delta)
throws SlickException {
// Animation: Bild rotieren
image.rotate(0.05f);
// Tastenabfrage: Mit Esc-Taste das Spiel beenden
if (container.getInput().isKeyPressed(Input.KEY_ESCAPE)) {
container.exit();
}
}
}
jetzt möchte ich den schwarzen hintergrund verschwinden lassen, so dass nur das bild zu sehen ist. mit g.setBackground(Color.transparent) kriege ich das nicht hin. kennt jemand von euch eine passende möglichkeit? dieser schwarze hintergrund scheint vom container zu kommen.
Ohne große Ahnung von Java zu haben:
g.setBackground(Color.transparent);
Das *nach* den sonstigen Zeichenoperationen aufzurufen erscheint mir unsinnig.
jetzt möchte ich den schwarzen hintergrund verschwinden lassen, so dass nur das bild zu sehen ist.
Jeder Teil des Bildschirms muss eine Farbe haben. Was sollte da erscheinen wo jetzt schwarz zu sehen ist?
hi,
danke für die antwort.
Ohne große Ahnung von Java zu haben:
g.setBackground(Color.transparent);
Das *nach* den sonstigen Zeichenoperationen aufzurufen erscheint mir unsinnig.
davor funktioniert leider auch nicht, allerdings würde Color.blue funktionieren, sowohl davor als auch danach
jetzt möchte ich den schwarzen hintergrund verschwinden lassen, so dass nur das bild zu sehen ist.
Jeder Teil des Bildschirms muss eine Farbe haben. Was sollte da erscheinen wo jetzt schwarz zu sehen ist?
durchsichtig wäre mein ziel. also, dass nur das bild zu sehen ist, wie es sich auf dem desktop bewegt ohne das man dieses viereckige fenster sieht.
eventuell gibt es eine ganz andere strategie dafür?
ich würde gerne verstehen wie man soetwas programmieren kann:
http://desktop-katze.giga.de/
dafür konnte ich bislang noch keine strategie finden und anscheind auch keinen guten ansatz. geht das eventuell besser mit C++?
Das Problem düfte sein, ein Fenster zeichnet sich deckend über den Desktop bzw. über andere Fenster. Es hilft daher nichts den Hintergrund transparent zu schalten, der Bildpuffer des Fensters hat immer eine Farbe (anfangs wahrscheinlich schwarz) und wenn du auf sowas "nichts" (= transparent) drüberzeichnest, bleibt das trotzdem schwarz.
Es gibt Einstellungen um das Zeichnen des Hintergrunds komplett zu verhindern, aber wie das in Java funktioniert weiß ich nicht.
Om nah hoo pez nyeetz, Encoder!
Das Problem düfte sein, ein Fenster zeichnet sich deckend über den Desktop bzw. über andere Fenster. Es hilft daher nichts den Hintergrund transparent zu schalten, der Bildpuffer des Fensters hat immer eine Farbe (anfangs wahrscheinlich schwarz) und wenn du auf sowas "nichts" (= transparent) drüberzeichnest, bleibt das trotzdem schwarz.
"Weil, wenn man den String-Tange durch Luft abdeckt, immer noch ein String-Tanga zu sehen ist." [Beat]
Matthias
Hi,
ich möchte das ein Bild auf meinem Desktop hin und her springt.
Dafür habe ich die Bibliothek Slick in mein Java Projekt eingebunden und diesen Code gefunden:
public class HelloWorld extends BasicGame {
kenn ich nicht. Wovon ist das abgeleitet? java.awt.Frame?
javax.swing.JFrame bzw. dessen Basis java.awt.Frame unterstützt die Methode setShape, um nicht-rechteckige Fenster zu erzeugen.
Als Parameter wird ein Shape erwartet (Shape ist ein Interface, für das es bereits viele Implementationen gibt - aber notfalls kannst Du selbst eine Klasse bauen, die das Shape-Interface implementiert, und die die passende Fenster-Form erzeugt.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)
[O o ostern ...](http://ostereier.andreas-waechter.de/)
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.