tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
333
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Holycrap Tutorials.de Gastzugang
    Hallo. Mein Problem ist folgendes, ich schreib gerade ein Spiel, so ne Art "Space Invaders", und es gibt bzw. soll 3 funktionierende Tasten geben. Links, rechts, schießen, also die klassische Steuerung.

    Jetzt hab ich aber folgendes Problem, dass wenn ich während dem Bewegen schießen will, dass er zwar schießt, aber aufhört sich zu bewegen, die Taste fürs bewegen bleibt aber weiterhin gedrückt.

    Wie kann ich das Problem lösen bzw. umgehen?

    MfG



    P.S. hoffe es ist im falschen forum
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    poste mal den entsprechenden Code; anderfalls ist es wohl nicht nachvollziehbar ...
    (Bitte nutze hier die Java-Tags [_JAVA] + [_/JAVA] - OHNE die Unterstriche!)

    gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    Holycrap Tutorials.de Gastzugang
    GUI
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    
     
    public class GUI
            extends JFrame {
     
        private BufferedImage background;
        private Point position_ship;
        private BufferedImage ship;
        public static byte speed = 5;
        public static ArrayList<Shot> shots = new ArrayList<Shot>();
     
        public GUI() {
     
            ... //GUI Config und Bilder laden
     
            addKeyListener(new MyMoveListener());
            addKeyListener(new MyShotListener());
     
            new Repainter(this).start();
        }
     
        /**
         * Zeichnet die Gegner, Schüsse, Hintergrund und das Schiff
         * @param g
         */
        @Override
        public void paint(Graphics g) {
            if (background != null) {
                g.drawImage(background, 0, 0, this);
            }
     
            if (position_ship != null && ship != null) {
                g.drawImage(ship, position_ship.x, position_ship.y, this);
            }
     
            g.setColor(Color.WHITE);
            for (Shot shot : shots) {
                int x = shot.getX(), y = shot.getY();
                g.drawLine(x, y, x, y + Shot.LENGTH);
            }
        }
     
        private class MyShotListener extends KeyAdapter {
     
            @Override
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() != KeyEvent.VK_SPACE) {
                    return;
                }
     
                //Neuer Schuss wird erzeugt
                Shot shot = new Shot(new Point(position_ship.x + 25, position_ship.y - Shot.LENGTH), false);
                shots.add(shot);
            }
        }
     
        private class MyMoveListener extends KeyAdapter {
     
            @Override
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() != KeyEvent.VK_SPACE) {
                    move(e.getKeyCode());
                }
            }
     
            /**
             * Setzt die Position vom Schiff um
             * @param keyCode
             */
            private void move(int keyCode) {
                ...
            }
        }
     
        /**
         * Autorepainter
         * Zeichnet 10x in der Sekunde die GUI neu
         */
        private class Repainter extends Thread {
     
            private final GUI gui;
     
            public Repainter(GUI gui) {
                this.gui = gui;
            }
     
            @Override
            public void run() {
                try {
                    Thread.sleep(100);
                } catch (InterruptedException ie) {
                }
                gui.repaint();
            }
        }
     
        public static void main(String[] args) {
            new GUI().setVisible(true);
        }
    }

    Tja...das ist mehr oder weniger der ganze Quellcode
     

  4. #4
    Holycrap Tutorials.de Gastzugang
    Ja und jetzt ist mein Problem, dass wenn ich z.B. Pfeiltaste n. L. drück bewegt sich das Schiff nach links, so soll es ja auch sein, aber sobald ich Space (Schießen) drücke, hört er auf sich zu bewegen, also im Klartext:

    Links + Space = Bewegen + Schießen
    so soll es sein bei mir ist das aber so, dass immer das letzte von den aktionen ausgeführt wird...also

    Links + Space = Schießen
    Space + Links = Bewegen

    Hoffe das reicht als erklärung
     

  5. #5
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
     

  6. #6
    Holycrap Tutorials.de Gastzugang
    ahhh.....großes THANKS!
     

Ähnliche Themen

  1. KeyEvent - Tastenausgabe
    Von hammet im Forum Java
    Antworten: 2
    Letzter Beitrag: 11.10.08, 21:36
  2. Keyevent in Textfeld
    Von Kestrel im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 03.04.08, 12:07
  3. KeyEvent für Backslash
    Von Kayser im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 30.05.06, 09:41
  4. Problem mit KeyEvent
    Von sirconflex im Forum Java
    Antworten: 11
    Letzter Beitrag: 10.07.05, 11:36
  5. KeyEvent für ESC?
    Von SG_wXistenZ im Forum .NET Archiv
    Antworten: 6
    Letzter Beitrag: 26.03.05, 01:44