Bild ändern

madboy

Top Contributor
Code:
mv neuesBild.jpg altesBild.jpg
?
Mehr Infos bitte. Was für ein Bild, geht es überhaupt um Java, hast du Code?
 

feiste

Bekanntes Mitglied
also ich programmier Doodle Jump,
wenn die Spielfigur(Bild1) den "Jetpack" aufsammelt (kollision)
soll die Spielfigur eben auf dem Rücken einen Jetpack haben (Bild2)

Importieren tu ich die Bilder so:

Spielfigur = new BILD("Spielfigur.gif");


Weiß nicht ob das wichtig ist,
aber ich arbeite mit BlueJ.

???:L
 

madboy

Top Contributor
Ich habe zwar keine Ahnung, wie das mit BlueJ funktioniert, aber wenn du mehr Code postest kann dir evtl. geholfen werden. Wenn es weniger als 200 Zeilen sind, poste doch mal den kompletten Code. Verwende aber JAVA-Tags. Wie das geht, steht über dem Editor hier zum Text schreiben.
 

feiste

Bekanntes Mitglied
ich poste mal die klasse bild: (von meinem Lehrer)

Java:
import java.awt.Image;
import java.awt.image.*;
import java.awt.Graphics;
import java.net.URL;
import javax.imageio.ImageIO;
import java.io.IOException;
import javax.swing.*;
import java.awt.*;
import java.awt.geom.AffineTransform;

public class BILD
{
    public boolean IstSichtbar;
    private int Breite;
    private int Hoehe;
    private double X=0;
    private double Y=0;
    
    private String DateiName;
    private Image image;
    private AffineTransform tm = new AffineTransform();
    
    
    public BILD(String NeuerDateiName)
    {
        DateiName=NeuerDateiName;
        URL url = this.getClass().getClassLoader().getResource(DateiName);
        try
        {
            image = ImageIO.read(url);
        }
        catch(IOException e)
        {
            System.out.println("Bild " + NeuerDateiName + " konnte nicht geladen werden!");
        }
        GAMEWINDOW w = GAMEWINDOW.getInstance();
        w.AddSprite(this);  
        Breite = image.getWidth(null);
        Hoehe = image.getHeight(null);
        IstSichtbar = true;
        UpdateAffine();
    }
    
    public void Draw(Graphics2D graphics)
    {
        
        graphics.drawImage(image,tm,null);
       
    }
    
    private void UpdateAffine()
    {
        double b = (double)Breite / (double)image.getWidth(null);
        double h = (double)Hoehe / (double)image.getHeight(null);
        tm.setToIdentity();
        
        tm.translate(X,Y);
        tm.scale(b,h);
    }
    
    public void SetzeX(double neuX)
    {
        X = neuX;
        UpdateAffine();
    }
    
    public void SetzeY(double neuY)
    {
        Y = neuY;
        UpdateAffine();
    }
    
    public void SetzeBreite(int neueBreite)
    {
        Breite = neueBreite;
        UpdateAffine();
    }
    
    public void SetzeHoehe(int neueHoehe)
    {
        Hoehe = neueHoehe;
        UpdateAffine();
    }
    
    public double LeseX()
    {
        return X;   
    }
    
    public double LeseY()
    {
        return Y;   
    }
    
    public boolean LeseSichtbar()
    {
        return IstSichtbar;
    }
    
    public void SichtbarSetzen(boolean NeuIstSichtbar)
    {
        IstSichtbar = NeuIstSichtbar;   
    }
    
    public double Abstand(BILD bild)
    {
        double ax = X + Breite/2.0;
        double ay = Y + Hoehe/2.0;
        double bx = bild.X + bild.Breite/2.0;
        double by = bild.Y + bild.Hoehe/2.0;
        
        return Math.sqrt( (ax-bx)*(ax-bx) + (ay-by)*(ay-by) );
    }
    
    public void TransparenzSetzen(int red, int green, int blue)
    {
      final Color color = new Color(red,green,blue);
        
      ImageFilter filter = new RGBImageFilter() 
      {
        public int markerRGB = color.getRGB() | 0xFF000000;

        public final int filterRGB(int x, int y, int rgb) {
        if ( ( rgb | 0xFF000000 ) == markerRGB ) {
          // Mark the alpha bits as zero - transparent
          return 0x00FFFFFF & rgb;
          }
        else {
          // nothing to do
          return rgb;
          }
        }
      }; 

    ImageProducer ip = new FilteredImageSource(image.getSource(), filter);
    image = Toolkit.getDefaultToolkit().createImage(ip);
    
    }
}
 

L-ectron-X

Gesperrter Benutzer
Vielleicht kann man das Konzept etwas ändern.

Ich würde ein Objekt Spielfigur erzeugen und diesem dann über set()-Methoden Eigenschaften (wie dein Jetpack) hinzufügen. Die Eigenschaften, in diesem Fall hast du ja eine Sammlung von Werkzeugen, könnte man im Objekt in einer Liste verwalten.
Dann hat das Objekt einen inneren Zustand, den man auch nach außen jederzeit zeichnen kann.
 

feiste

Bekanntes Mitglied
und hier ein Beispiel wie es dann aussehen soll

Java:
public class Spiel
{
BILD Spielfigur;


public Spiel()
{
 Spielfigur = new BILD("figur1.gif");
}

public class Bildändern()
{
if(z.B Kollision)
{
// Hier soll "figur1.gif" durch "figur2.gif" ersetzt werden, wenn das geht !
}
}
}
 

feiste

Bekanntes Mitglied
Vielleicht kann man das Konzept etwas ändern.

Ich würde ein Objekt Spielfigur erzeugen und diesem dann über set()-Methoden Eigenschaften (wie dein Jetpack) hinzufügen. Die Eigenschaften, in diesem Fall hast du ja eine Sammlung von Werkzeugen, könnte man im Objekt in einer Liste verwalten.
Dann hat das Objekt einen inneren Zustand, den man auch nach außen jederzeit zeichnen kann.

danke.
könntest du mal bitte ein Beispiel machen,
kann damit wenig anfangen.
 

L-ectron-X

Gesperrter Benutzer
Eine einfache Spielfigur kann so aussehen:
Java:
import java.util.*;
import java.awt.*;

public class Spielfigur {
  private Image skin;
  private String name;
  private java.util.List<Integer> tools;
  
  public Spielfigur(String name, Image skin) {
    this.name = name;
    this.skin = skin;
    tools = new ArrayList<Integer>();
  }
  
  /**
   * Wird bei Kollision mit einem Werkzeug aufgerufen.
   * Das Werkzeug wird von der Spielfigur "aufgesammelt".
   * @param tool ein Werkzeug
   */
  public void pickUpTool(final int tool) {
    tools.add(tool);
  }
  
  /**
   * Wird aufgerufen, wenn die Spielfigur ein Werkzeug wegwirft.
   * @param tool das Werkzeug, welches verbraucht oder weggeworfen wurde.
   */
  public void dropTool(final int tool) {
    tools.remove(tool);
  }
  
  /**
   * Setzt den Namen der Spielfigur / des Spielers.
   * @param name der Name des Spielers.
   */
  public void setName(String name) {
    this.name = name;
  }
  
  /**
   * Gibt den Namen der Spielfigur / des Spielers zurück.
   * @return der Name
   */
  public String getName() {
    return name;
  }
  
  /**
   * Setzt die "äußere Erscheinung" der Spielfigur / des Spielers.
   * @param skin das Aussehen des Spielers.
   */
  public void setSkin(Image skin) {
    this.skin = skin;
  }
  
  /**
   * Gibt die "äußere Erscheinung" der Spielfigur / des Spielers zurück.
   * @return das Aussehen des Spielers.
   */
  public Image getSkin() {
    return skin;
  }

}

Hier mal noch eine einfache Tool-Klasse, also die Werkzeuge, die der Spieler finden und benutzen kann.
Java:
public class Tool {
  public static final int JETPACK = 1; //JetPack
  public static final int HAMMER = 2;  //Hammer
  public static final int KNIFE = 3;   //Messer
}
 

feiste

Bekanntes Mitglied
geht das nicht auch bisschen leichter
so irgendwie:

Java:
public class Spiel
{
BILD Spielfigur;
 
 
public Spiel()
{
 Spielfigur = new BILD("figur1.gif");
}
 
public class Bildändern()
{
if(z.B Kollision)
{
// Hier soll "figur1.gif" durch "figur2.gif" ersetzt werden, wenn das geht !
}
}
}
 

L-ectron-X

Gesperrter Benutzer
Das wäre

[JAVA=48] /**
* Setzt die "äußere Erscheinung" der Spielfigur / des Spielers.
* @param skin das Aussehen des Spielers.
*/
public void setSkin(Image skin) {
this.skin = skin;
}[/code]
 

L-ectron-X

Gesperrter Benutzer
"Bildändern" ist keine Klasse, kein Typ, sondern eine Funktion, eine Methode.

Java:
public void bildWechseln(Image bild)
{
  if(kollision)
  {
     this.bild = bild; 
  }
}

Die Klasse selbst sollte sich nicht um das Laden des Bildes kümmern, daher wird ihr hier das fertige Image übergeben.
Du kannst dich aber auch enger an die Klasse von deinem Lehrer halten.
 

L-ectron-X

Gesperrter Benutzer
Du bekommst das fertig geladene Bild in einem Image-Objekt.
Welches Bild geladen werden soll, sollte an dieser Stelle nicht fix sein. Die Auswahl über die Art des Bildes und das Laden kann auch wo anders passieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
S Bild bei Kontakt ändern Java Basics - Anfänger-Themen 2
C Greenfoot: Bei Tastendruck und best. Wert Bild ändern Java Basics - Anfänger-Themen 2
K Werte von 2 Klassen austauschen/ Bild im Label ändern Java Basics - Anfänger-Themen 12
S Bild im Label ändern Java Basics - Anfänger-Themen 2
B Best Practice Schaltfläche im Bild finden Java Basics - Anfänger-Themen 8
G JLabel <html> mit Bild innerhalb des Textes </html> Java Basics - Anfänger-Themen 4
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
krgewb Bild itextpdf Java Basics - Anfänger-Themen 2
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
VPChief Bild in JEditorPane Java Basics - Anfänger-Themen 9
B Warum bekomme ich kein Bild. Java Basics - Anfänger-Themen 10
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
N Bild drehen Java Basics - Anfänger-Themen 3
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
N GLOOP Bild nicht ansichtbar Java Basics - Anfänger-Themen 5
M Bild in JFrame Java Basics - Anfänger-Themen 1
B Signatur erstellen - Bild ist nur weiß Java Basics - Anfänger-Themen 0
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 17
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 1
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
M jTextPane Bild anzeigen Java Basics - Anfänger-Themen 6
CptK Bild beim betätigen eines JButtons Java Basics - Anfänger-Themen 6
S Bild über JButton legen Java Basics - Anfänger-Themen 3
B Bild mit Schrift befüllen / Anpassung bei Wortlänge Java Basics - Anfänger-Themen 2
D Google maps bild mit marker versehen Java Basics - Anfänger-Themen 12
D ImageView mit einfarbigem Bild fuellen Java Basics - Anfänger-Themen 3
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
S Bild einfügen Java Basics - Anfänger-Themen 16
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
D Bild zu Text Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
D Classpath Bild kann in .jar nicht geladen werden Java Basics - Anfänger-Themen 2
Anfänger2011 Bild programmieren?! Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
J Umgebungsvariable Programmfenster zeigt kein Bild an Java Basics - Anfänger-Themen 1
J Bild loopen Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
C Erste Schritte Bild holen und speichern Java Basics - Anfänger-Themen 1
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
J Ganzes Bild Java Basics - Anfänger-Themen 4
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
Y Nach Bild-Upload wird Bild nicht angezeigt Java Basics - Anfänger-Themen 1
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
M JSP-Einfaches Bild anzeigen Java Basics - Anfänger-Themen 4
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
Sogomn Bild will sich nicht skalieren lassen Java Basics - Anfänger-Themen 1
P Ein Bild für GUI (Java-Editor) Java Basics - Anfänger-Themen 4
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
S Bild auf eine Position rotieren?! Java Basics - Anfänger-Themen 4
P Bild bearbeiten Java Basics - Anfänger-Themen 9
Z Datenmatrix in Bild verwandeln Java Basics - Anfänger-Themen 4
C Bild verschwinden lassen Java Basics - Anfänger-Themen 7
S Bild Icon aus ID3Tag auslesen Java Basics - Anfänger-Themen 4
E Bild vom FileChooser aus via ImageIcon in DB schreiben Java Basics - Anfänger-Themen 16
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
O Auflösung einer Bild-Datei bekommen ohne sie herunterzuladen?? Java Basics - Anfänger-Themen 7
L Bild-Datein "zuschneiden" Java Basics - Anfänger-Themen 11
O DeviantArt-Bild Konverter: Fehler.. Java Basics - Anfänger-Themen 16
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
M Bild einbinden Java Basics - Anfänger-Themen 7
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
T Bild laden Java Basics - Anfänger-Themen 7
R Bild in GUI Java Basics - Anfänger-Themen 11
D Eclipse Juno zeigt Bild nicht bei Run Java Basics - Anfänger-Themen 3
Kenan89 Bild mit jar öffnen Java Basics - Anfänger-Themen 4
S Problem bei Bewegung von einem Bild! Java Basics - Anfänger-Themen 2
J Bild mit transparenter Farbe Java Basics - Anfänger-Themen 10
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben