分析以下代码://怪物4移动 if (arme_x[3] == 150 && arme_y[3] < 11 * 30) //向下移动 { if (armespeed[3] < 10) armespeed[3]++; if (armespeed[3] == 10) { armespeed[3] = 0; if (map[arme_x[3] / 10 + 1][(arme_y[3] + armehig) / 10] != 3) arme_y[3]++; } } else if (arme_y[3] == 11 * 30 && arme_x[3] < 11 * 30) //向右移动 { if (armespeed[3] < 10) armespeed[3]++; if (armespeed[3] == 10) { armespeed[3] = 0; if (map[(arme_x[3] + armewid) / 10][arme_y[3] / 10 + 1] != 3 && map[(arme_x[3] + armewid) / 10][arme_y[3] / 10 + 2] != 3) arme_x[3]++; } } else if (arme_x[3] == 11 * 30 && arme_y[3] > 7 * 30) //向上移动 { if (armespeed[3] < 10) armespeed[3]++; if (armespeed[3] == 10) { armespeed[3] = 0; if (map[arme_x[3] / 10 + 1][arme_y[3] / 10] != 3) arme_y[3]--; } } else if (arme_y[3] == 7 * 30 && arme_x[3] > 150) //向左移动 { if (armespeed[3] < 10) armespeed[3]++; if (armespeed[3] == 10) { armespeed[3] = 0; if (map[arme_x[3] / 10][arme_y[3] / 10 + 1] != 3 && map[arme_x[3] / 10][arme_y[3] / 10 + 2] != 3) arme_x[3]--; } } }
时间: 2023-11-25 21:08:29 浏览: 97
这段代码是用于控制怪物4移动的逻辑。
代码的流程如下:
1. 首先判断怪物4的位置,如果怪物4的横坐标 `arme_x[3]` 等于150且纵坐标 `arme_y[3]` 小于11 * 30,则怪物4向下移动。
2. 在向下移动的情况下,判断当前的移动速度 `armespeed[3]` 是否小于10,如果小于10,则增加移动速度。
3. 如果移动速度等于10,则重置移动速度为0,并检查下一个位置是否为可移动的地图元素(不为3表示可移动),如果是,则怪物4的纵坐标加1。
4. 如果怪物4的纵坐标等于11 * 30且横坐标小于11 * 30,则怪物4向右移动。
5. 在向右移动的情况下,判断当前的移动速度 `armespeed[3]` 是否小于10,如果小于10,则增加移动速度。
6. 如果移动速度等于10,则重置移动速度为0,并检查下一个位置是否为可移动的地图元素,如果是,则怪物4的横坐标加1。
7. 如果怪物4的横坐标等于11 * 30且纵坐标大于7 * 30,则怪物4向上移动。
8. 在向上移动的情况下,判断当前的移动速度 `armespeed[3]` 是否小于10,如果小于10,则增加移动速度。
9. 如果移动速度等于10,则重置移动速度为0,并检查下一个位置是否为可移动的地图元素,如果是,则怪物4的纵坐标减1。
10. 如果怪物4的纵坐标等于7 * 30且横坐标大于150,则怪物4向左移动。
11. 在向左移动的情况下,判断当前的移动速度 `armespeed[3]` 是否小于10,如果小于10,则增加移动速度。
12. 如果移动速度等于10,则重置移动速度为0,并检查下一个位置是否为可移动的地图元素,如果是,则怪物4的横坐标减1。
需要注意的是,这段代码中使用了一些数组变量和地图元素判断,具体的实现细节可能需要结合其他代码来理解。另外,这段代码中只控制了怪物4的移动,可能需要结合其他代码来控制其他怪物的移动。
阅读全文