ähnliche funktionen wie if(keyPressed)?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Welche Umgebung benutzt du denn überhaupt? Was für eine Methode ist keyCode, oder was ist keyCode überhaupt und was genau stellt "RIGHT" dar?

Zeig uns mal, was der Compiler sagt, was für Fehlermeldungen da sind.

Am wahrscheinlichsten halte ich folgende Probleme für die Ursache:

  • keyCode und keyPressed sind Methoden, aber du hast keine Parameterklammern eingefügt. Auch kann es sein, dass du noch zusätzliche Klassen für die Methoden aufrufen musst.
  • RIGHT sieht nach einer Klassenkonstante aus. Wenn es nicht die der eigene Klasse ist, musst du diese per Punktnotation mit er richtigen Klasse referenzieren.
  • keyCode() liefert wahrscheinlich einen String zurück. Die Konstante "RIGHT" ist wahrscheinlich auch ein String. Zwei Strings vergleichst du bitte IMMER mit .equals. Der "==" Operator prüft nämlich nur auf Referenz. Das bedeutet, du kannst zwei verschiedene gleiche Strings haben, die aber verschiedene Strings sind, obwohl sie den gleichen Inhalt haben, darauf spuckt "==" false aus. .equals liefert dir aber immer true, wen sie den gleichen Inhalt haben, auch wenn es 2 verschiedene Strings sind. (Dies ist wohl am wahrscheinlichsten)

Er schreibt doch, dass er mit Processing arbeitet.

Bis auf schussx sind alle Bezeichner von Processing so vorgegeben, es handelt sich in jedem Fall um Variablen.

keyCode und RIGHT beschreiben typischerweise keinen String, sondern einen Integer. Genauso wie Keys in Java ebenso als Integer definiert werden.

Vom Compiler wird kein Fehler zurückkommen, denn nach der Aussage des FS konnte er sein Programm lauffähig testen, auch wenn es nicht das tut, was es tun soll.

0

Füge doch einfach mal Log-Nachrichten für die Konsole ein, die dir zur Laufzeit Aufschluss darüber geben, ob deine Bedingungen überhaupt erfüllt werden.

Für ein Beispiel zu keyCode, schau in die Dokumentation: https://processing.org/reference/keyCode.html

Wahrscheinlich ist deine 1. Abfrage nicht einmal notwendig.

der abschnitt scheint mir auf den ersten blick richtig zu sein, poste mal den kompletten code..

Was muss ich in diesem Satz ausbessern?

Ich habe mir ein Tutorial zu Java angeschaut. Jetzt habe ich bisher alles richtig gemacht und jetzt kommt so ein Satz, der mir als falsch angezeigt wird. Was muss ich da ausbessern?

package pack1;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class KeyHandler implements KeyListener {
  @Override
  public void keyPressed(KeyEvent arg0) {
  }

  @Override
  public void keyReleased(KeyEvent arg0) {
    if (e.getKeyCode() = KeyEvent.VK_UP) // hier ist der Fehler
  }

  @Override
  public void keyTyped(KeyEvent arg0) {
  }
}

Was tun?

...zur Frage

Wie Kann man in Java Events nach unten weitergeben?

Hallo! Wie lassen sich in java den Events von einem objekt nach unten weiterleiten? Ich möchte NICHT in der obersten ebene einen listener hinzufügen.

Hier ein Beispiel-code: package play2B;

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

@SuppressWarnings("serial") public class Test1 extends JFrame implements KeyListener{

private JButton Knopf;

public Test1() {
    super("Test");

    addKeyListener(this);
    
    System.out.println("add key listener");

    JPanel Platte = new JPanel();
    Platte.setLayout(new FlowLayout());
    Platte.setBackground(Color.WHITE);

    Knopf = new JButton("Test");
    Knopf.setFont(new Font("Arial", Font.BOLD, 20));
    
    Platte.add(Knopf);

    setContentPane(Platte);

    System.out.println("snake1 fertig");
}

public void keyPressed(KeyEvent Taste) {

    System.out.println("keyPressed");
    
}

public void keyReleased(KeyEvent Taste) {
    System.out.println("keyReleased");
}

public void keyTyped(KeyEvent Taste) {
    System.out.println("keyTyped");
}

public static void main(String[] args) {
    System.out.println("main start");
    
    Test1 Spiel = new Test1();
    Spiel.setSize(900, 600);
    Spiel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Spiel.setVisible(true);

}}

sobald ich die "Platte.add(Knopf);" -Zeile lösche funktioniert alles perfekt. Ich nehme an, der Knopf fängt die Events ab, deshalb möchte ich wissen wie ich sie zu menem fenster, der hintersten Ebene weiterleiten kann.


Wer Rechtschreibfehler findet, der kann sie behalten.

...zur Frage

Wie überprüfe ich in Java ob es Objekte einer Klasse gibt?

Hallo, ich habe folgendes Problem beim Programmieren (ich arbeite mit Greenfoot): Ich möchte überprüfen ob es Objekte einer bestimmen Klasse gibt und falls das so ist, das dann der darauffolgende Quellcode ausgeführt wird.

if (...gibt es ein Objekt der Klasse Ball?...) {

Game game = new Game(); addObject(game, 320, 240); }

...zur Frage

Eine einfache Kollision in Processing Java zB Schuss und spieler?

Hallo,
Ich versuche die ganze Zeit eine Kollision zu progammieren aber es funktioniert nicht wie ich es möchte.
Schussx = 25;
Schussy + 2.5;

Spielerx = 20;
Wenn ich Pfeiltaste rechts drücke passiert {
Spielery +1
}
Ich hab es mit einem boolean ausprobiert:
Siehe Bild

...zur Frage

Warum funktioniert dieser Java-Code nicht, wenn ich ihn ausführe?

package love;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import love.Var;

public class KeyHandler implements KeyListener {
  
  static int tempKeyHandler = 0;

  static int escape = 0, escape2 = 0;

  @Override
  public void keyPressed(KeyEvent f) {
    if (f.getKeyCode() == KeyEvent.VK_ESCAPE) {
      if (escape == 0) {
        Var.pause = true;
        Var.imSpiel = false;
        Var.nimSpiel = false;
        Var.himSpiel = false;
        escape--;
        escape2++;
      }

      if (escape2 >= 1) {
        Var.pause = false;
        Var.imSpiel = true;
        Var.nimSpiel = false;
        Var.himSpiel = false;
        escape = 0;
      }

      System.out.println(KeyHandler.escape);
      System.out.println(Var.imSpiel + " + " + Var.himSpiel + " + " + Var.nimSpiel + " + " + Var.pause);
    }
  }
}
...zur Frage

Kollision zweier Objekte progammieren in Java Processing?

Hallo,
Habe diese Frage schon oft gestellt aber keiner antwortet.
Ich hab es folgend versucht:
If((schussx1 == balkenx)&&(schussy ==Balkens){
while(true);
}

...zur Frage

Was möchtest Du wissen?