gpt4 book ai didi

c# - for 循环总是只执行一次

转载 作者:行者123 更新时间:2023-11-30 13:43:51 25 4
gpt4 key购买 nike

简要信息图片,我的代码做什么: enter image description here

这是我的代码:

private void CheckObjectAttackPoints(Point AttackPoint){
Point ObjectAttackPoint = AttackPoint;
ObjectAttackPoint.X -= 1;
int count=0; //This variable for reading how many tiles are false
//Check tiles active and ObjectAttackPoint is exist in List
for (int i=0; i < 1;i++) {
if (GameManager.AllPoints.Contains (ObjectAttackPoint)) {
if (!GameManager.TileColliders [ObjectAttackPoint.X, ObjectAttackPoint.Y].activeSelf) {
count++;
ObjectAttackPoints [i] = ObjectAttackPoint;
Debug.Log (ObjectAttackPoints [i].X +", " + ObjectAttackPoints [i].Y);
}
}
if (i == 1) {
break;
}
ObjectAttackPoint.X += 2;
}

if (count > 0) {
Debug.Log ("Object can attack " + count + " points");
}

}

因此,此方法需要 AttackPoint 已经有 AttackPoint.Y-1 值,我们只需要检查 AttackPoint.X 是否存在在 List 中并检查此时的对象是否处于事件状态。在方法开始时,AttackPoint.X 将其值减 1。

我的问题是,即使有两个图 block 未激活,控制台也只返回一个点(示例图像:0,0 和 0,2 个图 block 未激活,控制台仅返回计数 = 1 和点为 0,0 的图 block ),这意味着该方法只检查一个图 block ,而我的代码有一个错误,但我不明白它在哪里。有人可以帮助我吗?

最佳答案

您的 for 循环总是只执行一次,您的方法代码等同于:

private void CheckObjectAttackPoints(Point AttackPoint) {
Point ObjectAttackPoint = AttackPoint;
ObjectAttackPoint.X -= 1;
int count = 0; //This variable for reading how many tiles are false
//Check tiles active and ObjectAttackPoint is exist in List
if (GameManager.AllPoints.Contains(ObjectAttackPoint)) {
if (!GameManager.TileColliders[ObjectAttackPoint.X, ObjectAttackPoint.Y].activeSelf) {
count++;
ObjectAttackPoints[0] = ObjectAttackPoint;
Debug.Log(ObjectAttackPoints[0].X + ", " + ObjectAttackPoints[0].Y);
}
}
ObjectAttackPoint.X += 2;

if (count > 0) {
Debug.Log("Object can attack " + count + " points");
}
}

如果你想遍历 ObjectAttackPoint 的所有元素,你应该使用

如果它是一个List:

for (int i=0; i < ObjectAttackPoint.Count;i++)

如果是数组:

for (int i=0; i < ObjectAttackPoint.Length;i++)

编辑:当 i==1 时,break 条件有什么用?即使您扩展了 for 循环,if 也会在两次循环后恰好中断循环(即在为 i == 0i == 1 执行后)。您应该更深入地解释什么是 ObjectAttackPoints

关于c# - for 循环总是只执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49294664/

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