我想对不同数量的项目(向量)进行大小写切换,但此方法需要常量。我正在使用 SDL2 读取所有输入,并且我使用的方法需要大小写切换。我需要按下所有输入并将它们添加到某种字符串或向量中。
while (SDL_PollEvent(&e) != 0){
switch (e.type){
for (int i = 0; i < currentbinds.size(); i++){
case currentbinds[i]:
keyspressed += currentbinds[i];
}
case SDL_QUIT:
iskillready = true;
break;
}
}
}
currentbinds 是一个向量,包含我可能使用的所有可能的按键绑定。 keypressed 是一个字符串,返回所有按下的按键绑定。 我正在使用大小写开关来遍历所有按键绑定,检查是否按下了该按键绑定,如果是,则将它们添加到按键字符串中。
有没有其他方法可以在没有常量的情况下做到这一点?
您不能使用 switch-case 来实现此目的,因为它需要常量表达式。但是,您可以修改代码以使用 if 和 for 循环,例如:
while (SDL_PollEvent(&e) != 0) {
if (e.type == SDL_QUIT) {
iskillready = true;
break;
}
for (int i = 0; i < currentbinds.size(); i++) {
if (e.type == currentbinds[i]) {
keyspressed += currentbinds[i];
}
}
}