gpt4 book ai didi

c# - 在继续之前需要循环检查 2 个条件

转载 作者:太空狗 更新时间:2023-10-29 23:58:59 24 4
gpt4 key购买 nike

我目前正在开发一款非常基础的“推箱子”游戏。我正在尝试制作这个 for 循环,但似乎无法完成它。我的目标是执行下面的移动代码示例,我觉得我的语法在添加另一个条件时是错误的,它说“(diamondlist.Count)&(Playerlist.Count)。我得到的错误是“Operator '&' 不能应用于 'bool' 和 'int' 类型的操作数。我试图添加双“&&”,但这并没有解决它,任何帮助表示赞赏 - 谢谢:D

    protected override void Update(GameTime gameTime)
{
for (int i = 0; i < (diamondlist.Count) & (Playerlist.Count); i++)
{
if ((Playerlist[i].Position == diamondlist[i].Position) && kb_old.IsKeyDown(Keys.W))
{
if (currentMap.isWalkable(new Point(diamondlist[i].m_position.X, diamondlist[i].m_position.Y - 1)))
diamondlist[i].m_position.Y--;
}

最佳答案

有几个问题。

  1. 表达式i < (diamondlist.Count) & (Playerlist.Count)被评估为:

    (i < diamondlist.Count) & Playerlist.Count

    表达式的第一部分 ( i < diamondlist.Count ) 是 bool , 但第二部分 ( Playerlist.Count ) 是一个 int .它提示是因为 &不接受这样的两种不同类型。

  2. 然后您正在尝试申请 &其中(对于整数)是 bitwise AND operator .如果两种类型相同,这会起作用,但它会导致花费不必要的 CPU 周期,并且通常不用于 bool 表达式。您可能想使用 && -- logical or conditional and operator .

试试这个:

for (int i = 0; i < diamondlist.Count && i < Playerlist.Count; i++)
{
...
}

关于c# - 在继续之前需要循环检查 2 个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16324654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com