Coin3D: Mouse abfragen und Keyboard-Delay ausschalten

  • Ich habe ein kleines Breakout Spiel für ein Praktikum programmiert und die Abgabe nähert sich. Das Spiel ist soweit fast fertig, aber wir ärgern uns über das Paddle. Aktuell benutzen wir dafür die links/rechts Pfeiltasten über den KeyboardEvent. Aber damit bekommen wir die dumme Anschlagsverzögerung rein, das Paddle bewegt sich also erstmal einen Schritt nach rechts, wartet 500ms und rennt dann weiter. Für reaktionskritische Aktionen ist das natürlich unbrauchbar.

    Besser wäre eine Steuerung mit der Mouse, aber in Coin3D gibts wohl keine MouseEvents. Mein Kollege meinte, es müsste aber über Qt gehen, aber wir wissen bloss nicht wie das aussehen soll. Hat da jemand Erfahrung mit?

  • Keine Ahnung, was Coin3D ist, aber normalerweise arbeitet man bei Spielen nicht mit "Zeichen einlesen", sondern mit "Keydown" und "Keyup", da gibts doch sicher was.
    Ansonsten vielleicht einfach die Tasten pollen..

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Coin3D ist praktisch OpenInventor, also Szenengraphen-Verwaltung. Das mit dem Zeicheneinlesen hast Du gut gesagt, das bringt mich auf eine Idee. Denn die Anschlagsverzögerung resultiert ja aus dem "Zeicheneinlesen", wohingegen "KeyDown" ein diskreter Zustand ist, ohne Verzögerung. Danke, ich forsche mal in diese Richtung weiter...

  • Bleibt aber noch ein Problem: Selbst wenn ich KeyPress abfange, ich muss trotzdem wissen welche Taste gedrückt wurde. Ist dann diese Abfrage nicht wieder ein Zeichenauslesen (zusammen mit der Anschlagsverzögerung?) Wie wird das denn sonst bei der Spieleprogrammierung gemacht?

  • Zitat von JPSelter

    Selbst wenn ich KeyPress abfange, ich muss trotzdem wissen welche Taste gedrückt wurde. Ist dann diese Abfrage nicht wieder ein Zeichenauslesen


    Taste != Zeichen. Also nein. Z.B.: Die Taste mit der 3 kann ja die Zeichen 3, § und ³ erzeugen. Wenn du das mit KeyPress machst, solltest du eigentlich immer '3' oder ein anderes Symbol für eben diese Taste wo auslesen können.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!