我正在创建类并在内部创建了这个方法 的 Input.cpp:
bool Input::CheckKeyPress(char key)
{
SDL_Event ev;
while (SDL_PollEvent(&ev))
{
keyState = SDL_GetKeyboardState(NULL);
if (ev.type == SDL_KEYDOWN)
{
switch (key)
{
case 'w' :
if (keyState[SDL_SCANCODE_W])
{
return 1;
}
else
{
return 0;
}
case 'a' :
if (keyState[SDL_SCANCODE_A])
{
return 1;
}
else
{
return 0;
}
case 's' :
if (keyState[SDL_SCANCODE_S])
{
return 1;
}
else
{
return 0;
}
case 'd' :
if (keyState[SDL_SCANCODE_D])
{
return 1;
}
else
{
return 0;
}
}
}
}
}
我尝试在我的主类中的if语句中使用它,如下所示:
if (bool Input::CheckKeyPress(w))
{
//do stuff
}
然而,正如预期的那样,我收到错误消息:" 此处不允许使用功能类型"那我该怎么办?
答案 0 :(得分:0)
只需写下:
if (CheckKeyPress(w))
{
//do stuff
}
您已经告诉编译器CheckKeyPress()
方法返回bool
。在这里,您只是调用该函数,因此您不需要再次提及返回类型。当控件调用函数CheckKeyPress()
时,它将返回bool
值,该值将在if
语句中检查其真实性。
注意:有两种可能性:
Instance
是一个不同的类:如果Instance
完全是另一个类,CheckKeyPress()
是
它包含的方法之一,那么你首先需要创建一个Instance
类的对象,如下所示:
Instance it = new Instance(); //or just Instance it;
然后通过以下方式访问该功能:
it.CheckKeyPress();
static
:在这种情况下,您需要将方法调用为:
Input::CheckKeyPress(w)
没有返回类型(bool
)。
希望这有帮助。感谢您的投入,@ user4581301。