Hallo,
wie erstellt man eine saubere Laufanimation einer aus mehreren Einzelbildern bestehenden Animation? Ich habe bereits mit einem Timer rumexperimentiert allerdings ohne zufriedenstellendes Ergebnis. Auch das Youtube Video von LionLek der die Interpolation beschreibt konnte mir nicht helfen.
Hier mal meine Player Klasse:
Wäre für Hilfe dankbar.
wie erstellt man eine saubere Laufanimation einer aus mehreren Einzelbildern bestehenden Animation? Ich habe bereits mit einem Timer rumexperimentiert allerdings ohne zufriedenstellendes Ergebnis. Auch das Youtube Video von LionLek der die Interpolation beschreibt konnte mir nicht helfen.
Hier mal meine Player Klasse:
Java:
package game;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.Timer;
public class Robin {
public int x = 200;
public int y = 100;
public int speed = 2;
public boolean down;
public int counter;
Timer timer;
public int imgcounter;
BufferedImage[] robinimg;
public Robin(){
robinimg = new BufferedImage[9];
try {
//down
robinimg[0] = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/Hood.png")).getSubimage(7,14,18,18);
robinimg[1] = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/Hood.png")).getSubimage(28,14,18,18);
robinimg[2] = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/Hood.png")).getSubimage(50,14,18,18);
//right
robinimg[3] = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/Hood.png")).getSubimage(7,37,17,20);
robinimg[4] = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/Hood.png")).getSubimage(26,36,17,20);
robinimg[5] = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/Hood.png")).getSubimage(46,36,16,20);
//up
robinimg[6] = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/Hood.png")).getSubimage(5,61,19,19);
robinimg[7] = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/Hood.png")).getSubimage(27,60,17,20);
robinimg[8] = ImageIO.read(getClass().getClassLoader().getResourceAsStream("pics/Hood.png")).getSubimage(50,61,18,19);
} catch (IOException e) {e.printStackTrace();}
}
public void update(){
if(Keys.up){
y -= speed;
imgcounter = 6;
imgcounter++;
if(imgcounter==8){
imgcounter = 6;
}
}
if(Keys.down){
y += speed;
imgcounter = 0;
}
if(Keys.left){
x -= speed;
}
if(Keys.right){
x += speed;
imgcounter = 3;
}
}
public void render(Graphics g){
g.drawImage(robinimg[imgcounter], x, y,null);
}
}
Wäre für Hilfe dankbar.