public Boolean DetectPlayerAndGround1Collision2(/*snip*/)
{
if (/*snip*/)
{
if (/*snip*/) { return true; }
else if (/*snip*/) { return true; }
else if ((/*snip*/) { return true; }
}
}
答案 0 :(得分:5)
您在else案例中未能返回值:
public Boolean DetectPlayerAndGround1Collision2(/*snip*/)
{
if (/*snip*/)
{
if (/*snip*/) { return true; }
else if (/*snip*/) { return true; }
else if ((/*snip*/) { return true; }
else{return false;}
}
else
{
return false;
}
}
答案 1 :(得分:3)
我建议您执行以下操作:
public Boolean DetectPlayerAndGround1Collision2(/*snip*/)
{
bool result = false;
if (/*snip*/)
{
if (/*snip*/) { result = true; }
else if (/*snip*/) { result = true; }
else if (/*snip*/) { result =true; }
}
return result;
}
使用单个return语句可以更简单地跟踪正在发生的事情,并确保它不在任何条件语句之外,并在声明时初始化,确保您始终返回值。
答案 2 :(得分:3)
以下内容:
if (A)
{
if (B) { return true; }
else if (C) { return true; }
else if (D) { return true; }
}
相当于:
return A && (B || C || D);
(假设以前没有返回任何值的任何情况意味着返回false。)
答案 3 :(得分:2)
如果没有else
作为其余条件的全部内容,则需要在逻辑检查后添加return false;
。
public Boolean DetectPlayerAndGround1Collision2(/*snip*/)
{
if (/*snip*/)
{
if (/*snip*/) { return true; }
else if (/*snip*/) { return true; }
else if (/*snip*/) { return true; }
}
return false;
}
答案 4 :(得分:2)
您并不总是返回值:
if (playerPositionM.Y <= groundPositionM.Y + groundM.Height && playerPositionM.Y > groundPositionM.Y)
{
if (playerPositionM.X < groundPositionM.X && (playerPositionM.X + playerM.Width < groundPositionM.X + groundM.Width && playerPositionM.X + playerM.Width > groundPositionM.X))
{
return true;
}
else if (playerPositionM.X + playerM.Width > groundPositionM.X + groundM.Width && (playerPositionM.X < groundPositionM.X + groundM.Width && playerPositionM.X > groundPositionM.X))
{
return true;
}
else if ((playerPositionM.X > groundPositionM.X && playerPositionM.X < groundPositionM.X + groundM.Width) && (playerPositionM.X + playerM.Width < groundPositionM.X + groundM.Width && playerPositionM.X + playerM.Width > groundPositionM.X))
{
return true;
}
else
{
// You need to return a value here:
}
}
else
{
// You need to return a value here:
}
etc!