嗨,所以我试图检查字符串中的某个字符,以确保它不是\,=,|等,并替换与“玩家”角色的空间,如果它不是,但该功能返回true每次,即使焦炭newLoc等于“”(空):if(aCHAR =='character'||'another character')problems
screen.get_contents返回一个矢量容器充满strins,并
精灵.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;
};
问题是什么? 谢谢!
谢谢!但为什么IDE想出1? – Griffin 2011-05-01 23:06:23
@Griffin:'||'是*逻辑OR运算符*。如果它的任何一个参数是“真”,那么它“返回”“真”。除非是空字符''\ 0'',否则字符文字的计算结果为“TRUE”。所以表达的RHS等同于“TRUE”。当解释为整数值时,这反过来评估为'1'。 – 2011-05-01 23:08:59