Hallo,
ich habe ein kleines Problem bezüglich eines Spiels, was ich programmieren möchte. Ich bin noch bei den Anfängen, aber schon dort ist ein Problem aufgetreten. Im Endeffekt soll der Hintergrund permanent von oben nach unten durchlaufen während ein Bild im Vordergrund (erstmal noch) stillstehend zu sehen ist, d.h. ich will eine Art aufwärtsbewegung simulieren. Die Hintergrund-Animation funktioniert, nur das vordere Bild flackert wie verrückt. Ich hoffe mir kann jemand helfen und bedanke mich im Voraus schonmal für alle nützlichen Antworten. Hier der Code:
ich habe ein kleines Problem bezüglich eines Spiels, was ich programmieren möchte. Ich bin noch bei den Anfängen, aber schon dort ist ein Problem aufgetreten. Im Endeffekt soll der Hintergrund permanent von oben nach unten durchlaufen während ein Bild im Vordergrund (erstmal noch) stillstehend zu sehen ist, d.h. ich will eine Art aufwärtsbewegung simulieren. Die Hintergrund-Animation funktioniert, nur das vordere Bild flackert wie verrückt. Ich hoffe mir kann jemand helfen und bedanke mich im Voraus schonmal für alle nützlichen Antworten. Hier der Code:
Java:
package space.adventure.org;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class Graphic extends JFrame implements Runnable{
Thread textticker;
int a=10;
int b=0;
int c=1;
int d=-800;
int e=5;
public Graphic(){
this.setSize(800,800);
this.setLocation(100,100);
this.setTitle("Space Adventure");
this.setVisible(true);
textticker=new Thread(this);
textticker.start();
for (d=-800; d<=800;d+=2){
if(d>=799) {
d=-800;
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}}
public void run() {
while (c==1){
if (b==0){
for (a=0; a<=800;a+=2){
if(a>=799) {
a=-800;
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
b=1;
}}
else{
for (a=-800; a<=800;a+=2){
if(a>=799) {
a=-800;
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}}
}
}
public void update(Graphics g){
paint(g);
}
public void paint(Graphics g){
File f= new File("resources/space.jpg");
Image Bild=Toolkit.getDefaultToolkit().getImage(f.getAbsolutePath());
this.prepareImage(Bild, this);
if(Bild!=null){
g.drawImage(Bild, 0, a, this);
File j= new File("resources/racet.png");
Image Bild3=Toolkit.getDefaultToolkit().getImage(j.getAbsolutePath());
this.prepareImage(Bild3, this);
if(Bild3!=null){
g.drawImage(Bild3, 400, 600, this);
File n= new File("resources/space2.jpg");
Image Bild2=Toolkit.getDefaultToolkit().getImage(n.getAbsolutePath());
this.prepareImage(Bild2, this);
if(Bild2!=null){
g.drawImage(Bild2, 0, d, this);
}
}
}}
}