Menü

Oetzicool

Erfahrenes Mitglied
Hey ich will ein Applet mit einem Hauptmenü machen (ihr wisst hoffentlich was ich meine) das erstellen ist ja kein Problem von den Buttons usw. aber wie kann ich es dann machen das wenn man z.b. auf Starten drückt vom Hauptbildschirm in den "Starten"-Modus geht? Muss ich des mit einer Schleife machen oder wie kann man sowas realisieren? Ich hoffe ihr könnt mir helfen! Danke schonmal!
 
Hi, willst du eine Menüleiste machen oder ein Menü mit Schrift in der Bildmitte mit zb. Spiel starten, Highscores, optionen etc.

Für ersteres brauchst du ein JApplet und bei der zweiten Methode gibt es zwei Wege,
erstens nimmst du Button oder du nimmst einen text und nimmst den als "Button"

Wenn du einen Text nimmst geht das auch mit ganz, ganz alten Java-Versionen.

Für neuere Versionen brauchst du :einen Mouselistener, einen MouseMotionListener, ein Rectangle pro Button

Code:
        //Oben deklariert
       int mouse_x, mouse_y;
       Rectangle start_rectangle, options_rectangle...
       //Weiter unten, in dem MouseMotionListener
       public void mouseMoved(MouseEvent me){
           mouse_x=me.getX();
           mouse_y=me.getY();
       }

        //in dem MouseListener
      
        public void mousePressed(MousEvent me){
            if(start_rectangle.contains(mouse_x mouse_y){
                  System.out.println("Startbutton was pressed");
            }
        }
 
Ja genau also ich will ein Hauptmenü nach dem Prinzip (Spiel starten, Optionen usw. ...) aber mit Buttons machen! Welcher Button gedrückt wurde kann ich ja mit dem ActionListener machen aber ich grünerl darüber wie ich von einem Menüpunkt in den anderen schalten kann!
 
So, zum besseren Verständniss hab ich hier mal den Code für mein Hauptmenü:

Code:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;


public class Example2402 extends Applet
{
   private Image img;
   private Button bt_game,bt_options,bt_extra,bt_info;
   public Example2402()
   {

      //Bild laden
      img = getToolkit().getImage("test.jpg");
      MediaTracker mt = new MediaTracker(this);
      mt.addImage(img, 0);
      try {
         //Warten, bis das Image vollständig geladen ist,
         mt.waitForAll();
      } catch (InterruptedException e) {
      }

   }
   public void paint(Graphics g)
   {
      g.drawImage(img,((getSize().width) / 2),20,this);
   }
   public void init()
   {
     bt_game = new Button("Spiel starten");
     bt_options = new Button("Optionen");
     bt_extra = new Button("Extras");
     bt_info = new Button("Infos");
     this.setBackground(Color.lightGray);
     this.setLayout(null);
     bt_game.setBounds(((getSize().width) / 2),200,80,25);
     bt_game.setBackground(Color.lightGray);
     this.add(bt_game);
     bt_options.setBounds(((getSize().width) / 2),230,80,25);
     bt_options.setBackground(Color.lightGray);
     this.add(bt_options);
     bt_extra.setBounds(((getSize().width) / 2),260,80,25);
     bt_extra.setBackground(Color.lightGray);
     this.add(bt_extra);
     bt_info.setBounds(((getSize().width) / 2),290,80,25);
     bt_info.setBackground(Color.lightGray);
     this.add(bt_info);
   }

   
}

vieleicht wisst ihr jetzt was ich meine :)
 
Ja dann mach es doch so das bei jedem Klick alle Buttons vom Applet weggenommen werden und nur die Buttons für z.b Highscoreliste angezeigt werden.

also zb so

Code:
    //Oben deklariert
    public boolean running, start_screen, highscore_screen info_screen, extra_screen;
   private Button bt_game,bt_options,bt_extra,bt_info back_bt;  
    //Wird von dem ActionListener aufgerufen, vorher wurden die alten Buttons
    //entfernt
    public void addButtons(){
       if(running){
          //Keine Buttons da Spiel läuft
       }else if(start_screen){
           //Gehe von korrecktem Layout aus
           this.add(bt_game);
           this.add(bt_options);
           this.add(bt_extra);
           this.add(bt_info);
        }else if(info_screen){
           //Gehe von einer Methode zum anzeigen de Infos aus
           //hier halt showInfos();
           showInfos();
           //Wier wollen ja auch wieder zurück
           this.add(back_bt);
        }
   }

Hoffe du verstehst mich, kanns net so gut erklären

MfG bigboombang
 
Also soll ich das Menü komplett löschen wenn ich zu nem anderen Part gehe und den neuen Menüpunkt einzeichnen! Hab ich des richtig verstanden?
 
Ich möchte noch gerne eine Abfrage beim Tastendruck(also wenn die Pfeiltaste gedrückt wird soll sich eine Figur in die richtung des Pfeils verschieben) wie kann ich das einbauen ohne Konflikte mit den anderen Programmteilen...?
 
Hallo,
ich weiß jetzt zwar nicht was du mit "einfluss auf die anderen programteile" meinst,
aber ich würde es über einen KeyListener lösen.
Code:
          public void init(){
               this.addKeyListener(new KeyAdapter(){
                      public void keyPressed(KeyEvent e){
                               if(e.getKwyCode()==KeyEvent.VK_ESCAPE){
                                           System.exit(0);
                                }else if...
                        }
                 });
           }

Das wäre jetzt mein Lösungsvorschlag, MfG Jens
 
Also ich will ein Paddel haben so wie bei Breakout (wenns dir was sagt) und will, dass wenn der spieler auf den linken Pfeil drückt sich das Panel nach Links bewegt und umgekehrt bei der rechten Pfeiltaste!
 
Hi,
also guck ma hier

Da wird gezeigt wie du Spile als Applet baust von grund auf,
wenn Breakout sowas wie Pong ist also auch so paddel hat, dürftest du dort auch was finden.

Mfg bigboombang
 
Zurück