嗨,我想尝试检查字符串中的某个字符以确保它不是\,=,|等,如果不是,则用“ player”字符替换空格,但函数每次都返回true,即使如果char newLoc等于''(空):

screen.get_contents返回一个充满约束的向量容器,并且
sprite.get_location返回一个带有两个数字的int数组,[0]表示X,[1]是Y。

bool check_collision(Sprite& sprite,int X, int Y, Screen& screen)
    {
    ////////////////////// check whats already there /////
        char newLoc = screen.get_contents(sprite.get_location()[0]+Y,sprite.get_location()[1]+X);
        if (newLoc == '|' || '/' || '_' || '=' || 'X' || 'x' )
            return true;
        else
            return false;
    };


问题是什么?谢谢!!

最佳答案

你需要:

if (newLoc == '|' || newLoc == '/' || ...)


您写的内容等同于:

if (newLoc == ('|' || '/' || ...))


等效于:

if (newLoc == 1)


请注意,更简洁的编写方式可能是:

switch (newLoc)
{
case '|':
case '/':
...
    return true;

default:
    return false;
}

关于c++ - if(aCHAR =='字符'||'另一个字符')问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5852046/

10-13 07:10