Ich habe keine Feheler im Quellcode aber die Figur will eine einfach nicht springe
Für hilfe danke im vorraus
Für hilfe danke im vorraus
Java:
package frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
import javax.swing.Timer;
public class gui extends JPanel implements ActionListener{
Timer time;
Image img;
Image img2;
int X_Bild;
int nx,nx2;
int anzahl = 0;
int anzahl2 = 0;
int key;
int lauf;
int left = -200;
int right = -200;
int figur_y = 20;
public gui(){
addKeyListener(new AL());
nx = 0;
nx2 = 480;
key = 0;
lauf = 0;
setFocusable(true);
ImageIcon u = new ImageIcon((getClass().getResource("Background.jpg")));
img = u.getImage();
ImageIcon c1 = new ImageIcon((getClass().getResource("Character 1.png")));
img2 = c1.getImage();
time = new Timer(5,this);
time.start();
Sprung sprung = new Sprung();
}
public void actionPerformed(ActionEvent e){
bewegen();
figur_y = Sprung.sprungposition;
repaint();
}
public void paint(Graphics g){
super.paint(g);
Graphics2D f2 = (Graphics2D)g;
if(getX_Bild() == 0 + (anzahl *50)){
anzahl += 1;
nx = 500;
}
if(getX_Bild() == 100 + (anzahl2 *100)){
anzahl2 += 1;
nx2 = 0;
}
if(getX_Bild() >= 100){
f2.drawImage(img,200+nx,0,null);
}
f2.drawImage(img,480-nx2,0,null);
f2.drawImage(img2,left,figur_y,null);
}
private int getX_Bild() {
return X_Bild;
}
public void bewegen(){
if(lauf != -1){
if(left + lauf <=40000){
left += lauf;
}else {
X_Bild += lauf;
nx += lauf;
nx2 += lauf;
}
}else {
if(left + lauf > -340){
left += lauf;
lauf = -1;
}
}
if(lauf != -1){
if(left - lauf > 700){
lauf = -1;
}
}
}
private class AL extends KeyAdapter{
public AL(){
}
public void keyPressed(KeyEvent e){
key = e.getKeyCode();
if(key == KeyEvent.VK_RIGHT){
lauf = 1;
}
if(key == KeyEvent.VK_LEFT){
lauf = -1;
if(key == KeyEvent.VK_SPACE){
Sprung();
}
}
}
public void keyReleased(KeyEvent e){
key = e.getKeyCode();
if(key == KeyEvent.VK_LEFT || key == KeyEvent.VK_RIGHT){
lauf = 0;
}
}
}
public void Sprung(){
Sprung SprungAnimation = new Sprung();
SprungAnimation.start();
}
}
Java:
package frame;
public class Sprung extends Thread {
static boolean fertig = true;
static boolean hochpunkt = false;
int sprunghöhe = 85;
static int ursprungY = 0;
static int sprungposition = ursprungY;
public Sprung(){
}
public void run(){
fertig = false;
int verzögerung = 3;
while(fertig == false){
Sprung();
try{
Thread.sleep(verzögerung);
}catch (Exception e){
}
}
hochpunkt = false;
}
public void Sprung(){
if(hochpunkt == false){
sprungposition--;
}
if(sprungposition == (ursprungY-sprunghöhe)){
hochpunkt = true;
}
if(hochpunkt == true && sprungposition <= ursprungY){
sprungposition ++;
if(sprungposition == ursprungY){
fertig = true;
}
}
}
}
Zuletzt bearbeitet: