Announcement

Collapse
No announcement yet.

2D Barriere Programmieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2D Barriere Programmieren

    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.

    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 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

  • #2
    Debugge dein Programm und schaue dir den Inhalt der Variablen an, warum deine Bedingungen nicht zutreffen


    Im übrigen hat JAVA nichts mit JAVASCRIPT zu tun!! Das Doppelpost wurde da gelöscht.
    Christian

    Comment

    Working...
    X