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

baba_melone

Frischling

  • »baba_melone« ist der Autor dieses Themas

Beiträge: 62

Wohnort: 66879 Obermohr

Beruf: Schüler

  • Private Nachricht senden

1

01.04.2006, 15:13

Fehlermeldung beim Abfragen der Steuerung

Hallo,
als ich mit der Methode tbDirectInputt::GetState() den Status der digitalen Knöpfe abfragen wollte, spuckte mir der Compiler folgenden Fehler aus:
error C2664: 'GetState' : cannot convert parameter 2 from 'bool *' to 'int *'. Komisch, da der zweite Parameter ja eigentlich vom Typ BOOL * ist.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Gescheiterter Versuch, diesen Fehler zu umgehen

#ifdef BOOL
#undef BOOL
#define BOOL bool
#endif
// Damit hatte es(wen wunderts) nichts zu tun


bool ** ppbButtons;
ppbButtons = new bool*[2];
ppbButtons[0] = new bool[tbDirctInput::GetNumButtons()];
ppbButtons[1] = new bool[tbDirctInput::GetNumButtons()];
float pfButtons = new float[tbDirectInput::GetNumButtons()];

// Funktioniert komischerweise nicht

if(tbDirectInput::GetState(pfButtons, ppbButtons[0]))
{
     //...

}

// Funktioniert

if(tbDirectInput::GetState(pfButtons, (int*)(ppbButtons[0]))
{
       //...

}

dbGAMES

Treue Seele

Beiträge: 323

Wohnort: Frankfurt

Beruf: Student

  • Private Nachricht senden

2

01.04.2006, 16:01

ich mach das immer so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
float* g_pfButtons = NULL;          //Buttons, analog

BOOL* g_pbButtons = NULL;           //Buttons, digital


//Speicher für Buttons reservieren

g_pfButtons = new float[tbDirectInput::Instance().GetNumButtons()];
g_pbButtons = new BOOL[tbDirectInput::Instance().GetNumButtons()];

//Buttons abfragen in der Move Funktion

tbDirectInput::Instance().GetState(g_pfButtons, g_pbButtons);