C# 如何检查两件事是否属实
我是编程新手。目前,我正在尝试使一些简单的东西,所以我正在重新创建经典游戏乒乓球学习。然而,我遇到了这个问题。玩家控制器工作正常,但按W和S时,我不希望玩家移动。请帮忙C# 如何检查两件事是否属实,c#,game-development,C#,Game Development,我是编程新手。目前,我正在尝试使一些简单的东西,所以我正在重新创建经典游戏乒乓球学习。然而,我遇到了这个问题。玩家控制器工作正常,但按W和S时,我不希望玩家移动。请帮忙 if(Input.GetKey(KeyCode.W)) & Input.GetKey(KeyCode.S){ player_one.GetComponent<Rigidbody2D>().velocity = new Vector2(0f, 0f); } if(Input.GetK
if(Input.GetKey(KeyCode.W)) & Input.GetKey(KeyCode.S){
player_one.GetComponent<Rigidbody2D>().velocity = new Vector2(0f, 0f);
}
if(Input.GetKey(KeyCode.W))&Input.GetKey(KeyCode.S){
player_one.GetComponent().velocity=新向量2(0f,0f);
}
逻辑运算符与决策语句中使用的不同。您需要&&
这:
if(Input.GetKey(KeyCode.W))&Input.GetKey(KeyCode.S){
player_one.GetComponent().velocity=新向量2(0f,0f);
}
应该是这样的:
if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.S)){
player_one.GetComponent<Rigidbody2D>().velocity = new Vector2(0f, 0f);
}
if(Input.GetKey(KeyCode.W)和&Input.GetKey(KeyCode.S)){
player_one.GetComponent().velocity=新向量2(0f,0f);
}
在您的示例中,您在包含第二个条件之前关闭了决策括号。and逻辑运算符为
&
非&
&
非&
。他们做不同的事情。当写&&I时,除了错误的运算符(&&&
是正确的)之外,还会出现一个错误,说“无效的表达式项”&&&&',你把if
表达式中的偏执搞乱了。。。这就是为什么编译器不理解“表达式项”…@sammieeee“我得到一个错误,说“无效的表达式项”&&“…这是因为您在错误的位置有一个)
。您过早地关闭了if
语句if(Input.GetKey(KeyCode.W))
-最后一个)
这里是if
的结尾。需要在{
这样一切都是if
的一部分。您的IDE应该能够向您显示哪些左括号和右括号是成对的……请密切注意。操作符不是问题所在,括号是。与&
和&
之间的区别在于&
将计算正确的ide,即使左侧的计算结果为false
,而&&
是一个“短路”操作符,如果右侧的计算结果不会改变(即左侧为false
),它也会忽略右侧。
if(Input.GetKey(KeyCode.W) && Input.GetKey(KeyCode.S)){
player_one.GetComponent<Rigidbody2D>().velocity = new Vector2(0f, 0f);
}