天涯沦落人 发表于 2021-7-4 21:16:52

数组成员引用下标超出定义范围



数组只能分开一个提示如图 .版本 2
.支持库 spec

..版本 2
.支持库 spec

.子程序 取目标坐标
.参数 目标x坐标, 整数型, 参考
.参数 目标Y坐标, 整数型, 参考
.局部变量 x
.局部变量 y
.局部变量 文本返回, 文本型
.局部变量 文本数组, 文本型, "0"
.局部变量 i, 整数型
.局部变量 x1, 整数型
.局部变量 y1, 整数型
.局部变量 坐标返回, 文本型
.局部变量 物品坐标, 文本型, , "0"


.判断循环首 (1 = 1)
    文本返回 = 大漠.找字Ex (0, 35, 1277, 766, “红色小晶块”, “68d4eb-202020|498a97-202020|3f6361-202020|57a9b9-202020”, 0.8)
    调试输出 (文本返回)
    文本数组 = 分割文本 (文本返回, “|”, )
    .如果 (文本返回 ≠ “”)
      文本数组 = 分割文本 (文本返回, “|”, )
      .计次循环首 (取数组成员数 (文本数组), i)
            文本数组 = 分割文本 (文本返回, “|”, )
            取人物坐标 (x1, y1)
            坐标返回 = 大漠.Ex找最近坐标 (文本返回, 0, x1, y1)
            物品坐标 = 分割文本 (坐标返回, “,”, )
            调试输出 (物品坐标)
            人物移动方向判断移动 (x1, y1, 到整数 (物品坐标 ), 到整数 (物品坐标 ))
            大漠.键盘_按键 (#X键)
      .计次循环尾 ()

    .否则
      跳出循环 ()
    .如果结束
    辅助延时 (100)
.判断循环尾 ()
请问是哪里出了问题

易辅 发表于 2021-7-4 22:10:06

数组错误 就是你数组超标了,比如你的数组只有2个成员,你调用了物品坐标.这就是超标. 调用前先判断数组成员数是不是3个

天涯沦落人 发表于 2021-7-5 21:24:24

请指出应该怎么改   我按照你的方法试过了可是还是同样的问题
物品坐标是指数组里的第三个坐标吗?我更改了其他的数字还是不对

易辅 发表于 2021-7-5 23:10:17

去学习易语言基础数组的课程去已经告诉你 数组超标了要加判断 还不懂,说明 不了解什么是数组

253303920 发表于 2022-10-6 00:53:33

i那里出了问题

chenlf 发表于 2023-4-28 14:40:19

你这段逻辑写得太乱了,还是重构吧。

chenlf 发表于 2023-4-28 14:42:43

而且你用的不是原版大漠,里面的函数逻辑看不到,相帮也不好帮啊

shijialin99 发表于 2023-12-11 00:19:05

调试输出(取数组成员数(物品坐标)) 看下是不是3个 坐标不是2个吗 为何用到了成员3
页: [1]
查看完整版本: 数组成员引用下标超出定义范围