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

XelVair

Frischling

  • »XelVair« ist der Autor dieses Themas

Beiträge: 46

Beruf: Student

  • Private Nachricht senden

1

13.03.2010, 19:32

Zwei kleine Probleme mit Funktionen

Guten Aben, ich bins wieder, Xel

Hab mich heute mal an KeyboardInput gewagt, klappt soweit aucgh ganz gut, allerdings funktionieren bei mir die einfachsten sachen aufeimal nichtmehr, und die Gründe sind mir schleierhaft.

Naja, bekanntlich sagt ja ein Code mehr als tausend Worte :roll:

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
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
#include <iostream>
#include <conio.h>
#include <windows.h>

using std::cout;
using std::endl;

struct PlayerPos //Beinhaltet Spielereigenschaften

{
int XPos;
int YPos;

//Konstruktor und Desktuktor

~PlayerPos(){}
PlayerPos(int X, int Y) {XPos = X; YPos = Y;}
};

//FUNKTIONSPROTOTYPEN

void getKBEvent();
bool endGame();

int main()
{
//Spieler initialisieren

PlayerPos Player(4,3);

//Game Loop

do{

          getKBEvent(&Player);

          if(endGame)
               return 0;

    }while(1);

getch();
}

void getKBEvent(PlayerPos *pPlayerID)
{
if (GetAsyncKeyState(VK_LEFT))
    pPlayerID->XPos--;

if (GetAsyncKeyState(VK_RIGHT))
    pPlayerID->XPos++;

if (GetAsyncKeyState(VK_UP))
    pPlayerID->YPos++;

if (GetAsyncKeyState(VK_DOWN))
    pPlayerID->YPos--;
}

bool endGame()
{
if (GetAsyncKeyState(VK_ESCAPE))
    return true;

else
    return false;
}


Jetzt will mir C++ allerdings erzählen, dass getKBEvent(PlayerPos *pPlayerID) "keine 1 Argumente" akzeptiert, wieso das?

Zweitens habe ich das gefühl, dass endGame in seiner jetzigen Benutzung nicht funktionieren wird, da mir C++ eine Warnung an der Stelle gibt.

Vielen Dank im Voraus, XelVair

PS: Der Code ist gekürzt, sorry für eventuelle Fehler die daraus resultieren könnten
Ich bin eine Siegnatur, ihr kriegt mich nicht unter!

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

2

13.03.2010, 19:39

Die Deklaration deiner Funktion hat keine Parameter, die "definition" die eig. dadurch ein Überladen ist, ist allerdings beim Aufruf noch nicht im Gültigkeitsbereich.
Also:

C-/C++-Quelltext

1
void getKBEvent(); 

durch

C-/C++-Quelltext

1
void getKBEvent(PlayerPos *pPlayerID) 

ersetzen

Zitat

Zweitens habe ich das gefühl, dass endGame in seiner jetzigen Benutzung nicht funktionieren wird, da mir C++ eine Warnung an der Stelle gibt.

Welche Warnung? Ich wüsste nicht, dass hier jemand hellsehen kann...
Signaturen werden überbewertet

XelVair

Frischling

  • »XelVair« ist der Autor dieses Themas

Beiträge: 46

Beruf: Student

  • Private Nachricht senden

3

13.03.2010, 19:56

Zitat von »"GR-PA"«

Die Deklaration deiner Funktion hat keine Parameter, die "definition" die eig. dadurch ein Überladen ist, ist allerdings beim Aufruf noch nicht im Gültigkeitsbereich.
Also:

C-/C++-Quelltext

1
void getKBEvent(); 

durch

C-/C++-Quelltext

1
void getKBEvent(PlayerPos *pPlayerID) 

ersetzen


Das war der Fehler, Danke ;)



Zitat von »"GR-PA"«


Zitat

Zweitens habe ich das gefühl, dass endGame in seiner jetzigen Benutzung nicht funktionieren wird, da mir C++ eine Warnung an der Stelle gibt.

Welche Warnung? Ich wüsste nicht, dass hier jemand hellsehen kann...

Hat sich gelöst, ich musste

C-/C++-Quelltext

1
if(endGame)

mit

C-/C++-Quelltext

1
if(endGame())

ersetzen und die warnung war weg :)
Ich bin eine Siegnatur, ihr kriegt mich nicht unter!

Werbeanzeige