Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

1

10.10.2004, 22:36

WasButtonPressed Methode?!

Hi,

ich hab für die Tastaturabfrage die WasButtonPressed Methode aus Galactica genommen. Nur hab ich jetzt das problem wenn ich eine abfrage einer Taste hab z.B.:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
    if(WasButtonPressed(TB_KEY_RIGHT))
    {
        bChange     = TRUE;
        iFrom       = iMenuSite;
        iTo         = (iMenuSite + 1);
        iMenuSite++;
        fNothingDone    = 0;

        if (iMenuSite == 3)
            iMenuSite = 0;

        return TB_OK;
    }


und diese Taste dann drücke, gibt das Makro immer den wert TRUE zurück. Auch wenn ich die Taste nur einmal drücke.

Ist das gewollt? Ich hab gedacht das Makro verhindert nur das ein Tastendruck zu oft registriert wird.

Wie mach ich das das ein Tastendruck als ein Tastendruck registriert wird???
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

Heiko Kalista

Treue Seele

Beiträge: 99

Wohnort: Hessen

  • Private Nachricht senden

2

10.10.2004, 22:50

Hi!

Ich kenn die Tribase zwar fast gar nicht, aber ich würde mal drauf wetten, dass die Meldung fehlt, die diesen State wieder zurücksetzt. Also einfach gesagt sowas:

Quellcode

1
2
3
4
5
6
if(WasButtonPressed(TB_KEY_RIGHT))
  // merken, dass "rechts" gedrückt wurde


if(!WasButtonPressed(TB_KEY_RIGHT))
  // flag zurücksetzen


mfg,
Heiko

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

3

11.10.2004, 12:42

Da hab ich doch das gleiche problem:

C-/C++-Quelltext

1
2
3
4
5
6
7
if(WasButtonPressed(RIGHT))
    RechtsGedrückt =  TRUE;

Funktion(RechtsGedrückt);

if(WasButtonReleased(RIGHT))
    RechtsGedrückt =  FALSE;


Wenn ich diesen Code(Pseudo) in meine Move schleife einfüge, dann wird ja in jedem Aufruf RechtsGedrückt auf TRUE und dann wieder auf FALSE gesetzt. Weil irgendwann wurde der Button mal gedrückt und wieder losgelassen.


Frage:
Wie funktioniert die Rücksetzung der Button Arrays? Ist die nicht integriert? Muss ich die bei jedem ButtonReleased die Buttons wieder zurücksetzen? Wenn ja wie mach ich das, wie finde ich heraus welchen Speicher z.B. RIGHT_KEY besitz?
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

bassdscho

Alter Hase

  • »bassdscho« ist der Autor dieses Themas

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

4

14.10.2004, 12:18

Ich hate nen Fehler in der Scleife wo die Flags verarbeitet wurden.
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

Werbeanzeige