Achtung, die Kurve! - Klon

Status
Nicht offen für weitere Antworten.

H2SO4

Bekanntes Mitglied
Vielleicht kenn jemand das Spiel (s. Titel).

Mein Problem besteht nur darin, eine sich ständig geradeausbewegene, 3px breite Linie zu zeichnen, die sich auf Tastendruck (es gibt zwei, Pfeil.rechts, und Pfeil.links) nach links, bzw. rechts dreht.

Wie realisiere ich das? MIr geht es hauptsächlich um das Drehen. Den Rest kriege ich hin.

Hier das Spiel:

AchtungdieKurve.zip
 

KSG9|sebastian

Top Contributor
Die Linie zeichnest du in der Paint-Methode, z.B. so:

Code:
public void paint(Graphics g){
  g.drawLine(startX, startY, endX, endY);
}
Dann hast du nen Listener der auf Pfeil rechts bzw. Pfeil Links reagiert:
Code:
public void keyReleased(KeyEvent e){
   if(e.getKeyCode() == KeyEvent.VK_LEFT){
      startX += 3;
      startY +=3;
      endX -= 3;
      endY -=3;
   } else if(e.getKeyCode() == KeyEvent.VK_RIGHT){
      startX += 3;
      startY -=3;
      endX -= 3;
      endY +=3;
   }
   repaint();
}
 

H2SO4

Bekanntes Mitglied
Sorry, aber ich muss nochmal stören.

Leider klappt das noch nicht ganz.


Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PaintPanel extends WindowPanel
{
  static PaintPanel panel;
  private int startX, startY, endX, endY;
  static boolean an = true;
  
  public PaintPanel()
  {
    super();
    
    this.setBackground(Color.black);
    
    startX = 10;
    startY = 10;
    endX = 10;
    endY = 10;
  }
  
  public void paint(Graphics g)
  {
    g.drawLine(startX, startY, endX, endY);
  }
  
  public void keyPressed(KeyEvent e) {
    if(e.getKeyCode() == KeyEvent.VK_LEFT){
      startX += 3;
      startY +=3;
      endX -= 3;
      endY -=3;
    } else if(e.getKeyCode() == KeyEvent.VK_RIGHT){
      startX += 3;
      startY -=3;
      endX -= 3;
      endY +=3;
    }
    repaint();
  }
}

Zur Info:

WindowPanel

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class WindowPanel extends JPanel implements KeyListener
{
  public WindowPanel()
  {
    super();
    this.setLayout(null);
  }
  
  protected void addButtonListener(JButton pButton)
  {
    pButton.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent ae)
      {
        input(ae.getActionCommand());
      }
    });
  }

  protected void addMenuListener(JMenuItem pMenu)
  {
    pMenu.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent ae)
      {
        menuInput(ae.getActionCommand());
      }
    });
  }
  
  public void keyReleased(KeyEvent e) {
    ;
  }
  
  public void keyPressed(KeyEvent e) {
    ;
  }
  
  public void keyTyped(KeyEvent e) {
    ;
  }

  //Bearbeiter für die Buttonereignisse
  protected void input(String l)
  {
    ;
  }

  //Bearbeiter für die Menuereignisse
  protected void menuInput(String l)
  {
    ;
  }
  
  //Erzeugung der Komponenten
  protected void createComponents()
  {
    ;
  }
  
  //Erzeugung der Buttons
  protected void createButtons()
  {
    ;
  }
}
 

H2SO4

Bekanntes Mitglied
Steht ja so schon oben. Jetzt soll sich auf Tastendruck erstmal die Linie nach rechts bzw. links verändern. In einem Thread soll sie sich dann später immer gerade aus bewegen und nur auf Tastendruck drehen.

Siehe Spielanhang
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben