Ich versuche jetzt seit 3 Tagen mein erstes Spiel zu Programmieren komme aber jetzt nach mehreren Stunden Ausprobierens nicht weiter.
Ich möchte das die Figur in diesem Fall "img2" genannt an der Rechten Seite des Spiels nicht weiterkommt. Aber ich schaffe es nicht da sie immer durch den Rand maschiert. Auf der Linken Seite habe ich es geschafft zu blocken doch ich kriege es wie gesagt auf der Rechten Seite nicht auf die Kette.
Ich weiß ich habe vielleicht viel Müll produziert, aber habt Gnade mit mir ich mache dies erst seit 3 Tagen
Ich würde mich über hilfe sehr freuen
Ich möchte das die Figur in diesem Fall "img2" genannt an der Rechten Seite des Spiels nicht weiterkommt. Aber ich schaffe es nicht da sie immer durch den Rand maschiert. Auf der Linken Seite habe ich es geschafft zu blocken doch ich kriege es wie gesagt auf der Rechten Seite nicht auf die Kette.
Code:
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; 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(); } public void actionPerformed(ActionEvent e){ bewegen(); 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,0,null); } private int getX_Bild() { return X_Bild; } public void bewegen(){ if(lauf != -1){ if(left + lauf <=5000){ left += lauf; }else { X_Bild += lauf; nx += lauf; nx2 += lauf; } }else { if(left + lauf > -250){ //LINKE BARRIERE left += lauf; } } } private class AL extends KeyAdapter{ public AL(){ } public void keyReleased(KeyEvent e){ key = e.getKeyCode(); if(key == KeyEvent.VK_LEFT || key == KeyEvent.VK_RIGHT){ lauf = 0; } } public void keyPressed(KeyEvent e){ key = e.getKeyCode(); if(key == KeyEvent.VK_RIGHT){ lauf = 1; } if(key == KeyEvent.VK_LEFT){ lauf = -1; } } } }
Ich würde mich über hilfe sehr freuen
Comment