Hi, habe ein Spiel oder besser gesagt bin noch daran ein Spiel zu programmieren.
Das Gerüst sowie die Steuerung durch den Benutzer gehen schon fast vollständig.
Das Spiel basiert auf einen ähnlichen Konzept wie das Dos Spiel Z Z (Computerspiel) ? Wikipedia
Habe allerdings ätliche Änderungen vorgenommen und das Spiel Kinderfreundlicher und deutlich Lustiger gemacht.
Jetzt zu meiner Hauptfrage:
Ich habe 20 verschiedene Einheiten a 55 Gif Bilder. Manche nur 40*40 andere 100*100Pixel.
Die Bilder werden eingelsen und in einem Array abgepspeichert, welches zum Zeichen der Figuren benötigt wird. Da es zwei Manschaften geben soll und ich nicht alle Bilder doppelt malen wollte kam mir die Idee die alle Bilder zwei mal abzuspeichern. Einmal Original und einmal nach dem Austausch aller schwarzen Pixel durch Rote.
http://www.java-forum.org/awt-swing-swt/131785-pixel-gif-aendern.html
1. Das Ändern funktioniert nicht wirklich richtig
So werden die schwarzen Pixel nicht immer in Rot sondern auch in Orange oder Gelb geändert.
2. Gibt es eine bessere Möglichkeit die Bilder einzulesen und zu speichern, so das es schnell und weniger Speicherintensiv geht. Gut soviel ist es nicht, es dauert aber einige Zeit bis das Spiel startet...
3. Die Bilder sind alle in einem Ordner was kann ich machen damit ein Benutzer später mal, die Bilder nicht ändern kann. Was ich meine ist bei anderen Spielen findet man doch auch keine Bilder, selbst wenn man sieht das sie welche haben. (Ich hoffe ich ihr versteht mein Problem)
Hier mal die Komplette Funktion die die Bilder lädt:
Ich hoffe ihr könnt mit dem aus der Mitte gerissenen Code was anfangen.
Das Gerüst sowie die Steuerung durch den Benutzer gehen schon fast vollständig.
Das Spiel basiert auf einen ähnlichen Konzept wie das Dos Spiel Z Z (Computerspiel) ? Wikipedia
Habe allerdings ätliche Änderungen vorgenommen und das Spiel Kinderfreundlicher und deutlich Lustiger gemacht.
Jetzt zu meiner Hauptfrage:
Ich habe 20 verschiedene Einheiten a 55 Gif Bilder. Manche nur 40*40 andere 100*100Pixel.
Die Bilder werden eingelsen und in einem Array abgepspeichert, welches zum Zeichen der Figuren benötigt wird. Da es zwei Manschaften geben soll und ich nicht alle Bilder doppelt malen wollte kam mir die Idee die alle Bilder zwei mal abzuspeichern. Einmal Original und einmal nach dem Austausch aller schwarzen Pixel durch Rote.
http://www.java-forum.org/awt-swing-swt/131785-pixel-gif-aendern.html
1. Das Ändern funktioniert nicht wirklich richtig
So werden die schwarzen Pixel nicht immer in Rot sondern auch in Orange oder Gelb geändert.
2. Gibt es eine bessere Möglichkeit die Bilder einzulesen und zu speichern, so das es schnell und weniger Speicherintensiv geht. Gut soviel ist es nicht, es dauert aber einige Zeit bis das Spiel startet...
3. Die Bilder sind alle in einem Ordner was kann ich machen damit ein Benutzer später mal, die Bilder nicht ändern kann. Was ich meine ist bei anderen Spielen findet man doch auch keine Bilder, selbst wenn man sieht das sie welche haben. (Ich hoffe ich ihr versteht mein Problem)
Hier mal die Komplette Funktion die die Bilder lädt:
Java:
public void bildladen() {
int i,j,k;
//Einheiten laden
for(i=1;i<MAX_OBJEKTE_UND_EINHEITEN_ORDNER;i++){
for(j=0;j<MAX_BILDER_PRO_ORDNER;j++){
File weg1 =new File("Objekte"+ File.separator +i + File.separator +j+".Gif");
try {
einheitenBilder[i][j][0] = ImageIO.read(weg1);
//Alle Manschaften gleiche Bilder
for(k=1;k<MAX_MANSCHAFTEN;k++) {
einheitenBilder[i][j][k] = ImageIO.read(weg1);
//Für jede Manschaft andere Farbe
for(int x = 1; x<einheitenBilder[i][j][k].getWidth(this); x++){
for (int y = 1; y < einheitenBilder[i][j][k].getHeight(this); y++) {
if(((BufferedImage) einheitenBilder[i][j][k]).getRGB(x,y)==Color.BLACK.getRGB()){
((BufferedImage) einheitenBilder[i][j][k]).setRGB(x,y,(FARBE[k-1]).getRGB());
}
}
}
}
}
catch (IOException e) {einheitenBilder[i][j] = null;}
}
}
//Objekte und landschaft
int groesse;
for(i=0;i<2;i++){
if(i==-1)groesse=30;
else groesse=150;
for(j=0;j<MAX_OBJEKTE;j++){
File weg1 =new File("Objekte"+ File.separator +(i-1) + File.separator +j+".Gif");
try {
BufferedImage(groesse,groesse,BufferedImage.TYPE_INT_ARGB);
objektBilder[i][j] = ImageIO.read(weg1);
}
catch (IOException e) {objektBilder[i][j] = null;}
}
}
}
Ich hoffe ihr könnt mit dem aus der Mitte gerissenen Code was anfangen.
Zuletzt bearbeitet von einem Moderator: