真气我!

     晕死了啊,才居然又写了一次,哎!!! 我要疯了,不多说了,今儿的事就是帮杨SIR咨询,效果不错,不过被城管把大伞给拿

走了,郁闷我!!!

<think>根据错误信息,问题在于尝试访问一个不存在的对象成员“姓名”。在易语言中,这通常是因为没有正确定义该对象(或自定义数据类型)的成员。 解决方案: 1. 确保已经定义了包含这些成员的自定义数据类型(如“角色”类型)。 2. 在使用该类型之前,先声明一个该类型的变量(如“角色”变量)。 3. 然后通过该变量访问其成员(如“角色.姓名”)。 以下是如何定义角色数据类型并正确使用的示例代码:</think>### 解决"找不到指定的对象成员名称'姓名'"错误 在易语言中,当出现"找不到指定的对象成员名称'姓名'"错误时,通常是因为未正确定义自定义数据类型或未正确初始化变量。以下是完整的解决方案: ```easy .版本 2 ; 解决方案1:正确定义自定义数据类型 .数据类型 角色类型 .成员 姓名, 文本型 .成员 境界, 文本型 .成员 修为, 整数型 .成员 气血, 整数型 .成员 真气, 整数型 .成员 攻击, 整数型 .成员 防御, 整数型 .成员 功法, 文本型, , "3" ; 定义3个元素的功法数组 .成员 法宝, 文本型, , "5" ; 定义5个元素的法宝数组 .成员 灵石, 整数型 ; 解决方案2:正确初始化角色变量 .程序集 游戏核心 .程序集变量 角色, 角色类型 ; 声明角色变量 .子程序 初始化角色 ; 正确设置角色属性 角色.姓名 = "修真者" 角色.境界 = "练气期" 角色.修为 = 0 角色.气血 = 100 角色.真气 = 100 角色.攻击 = 20 角色.防御 = 10 ; 初始化功法数组 角色.功法[1] = "基础吐纳" 角色.功法[2] = "" 角色.功法[3] = "" ; 初始化法宝数组 角色.法宝[1] = "木剑" 角色.法宝[2] = "" 角色.法宝[3] = "" 角色.法宝[4] = "" 角色.法宝[5] = "" 角色.灵石 = 100 ; 解决方案3:使用数组函数操作列表 .子程序 添加功法 .参数 功法名称, 文本型 .局部变量 i, 整数型 ; 查找空位添加功法 .计次循环首 (取数组成员数(角色.功法), i) .如果真 (角色.功法[i] == "") 角色.功法[i] = 功法名称 返回 .如果真结束 .计次循环尾() ; 如果没有空位,扩展数组 .局部变量 新大小, 整数型 新大小 = 取数组成员数(角色.功法) + 1 重定义数组(角色.功法, 假, 新大小) 角色.功法[新大小] = 功法名称 .子程序 添加法宝 .参数 法宝名称, 文本型 .局部变量 i, 整数型 ; 查找空位添加法宝 .计次循环首 (取数组成员数(角色.法宝), i) .如果真 (角色.法宝[i] == "") 角色.法宝[i] = 法宝名称 返回 .如果真结束 .计次循环尾() ; 如果没有空位,扩展数组 .局部变量 新大小, 整数型 新大小 = 取数组成员数(角色.法宝) + 1 重定义数组(角色.法宝, 假, 新大小) 角色.法宝[新大小] = 法宝名称 ``` ### 列表操作完整实现 ```easy .版本 2 ; === 角色管理系统 === .数据类型 角色类型 .成员 姓名, 文本型 .成员 境界, 文本型 .成员 修为, 整数型 .成员 气血, 整数型 .成员 真气, 整数型 .成员 攻击, 整数型 .成员 防御, 整数型 .成员 功法, 文本型, , "0" ; 动态数组 .成员 法宝, 文本型, , "0" ; 动态数组 .成员 灵石, 整数型 .程序集 角色管理器 .程序集变量 角色列表, 角色类型, , "0" ; 角色列表 ; === 初始化角色 === .子程序 创建角色 .参数 姓名, 文本型 .局部变量 新角色, 角色类型 新角色.姓名 = 姓名 新角色.境界 = "练气期" 新角色.修为 = 0 新角色.气血 = 100 新角色.真气 = 100 新角色.攻击 = 20 新角色.防御 = 10 新角色.灵石 = 100 ; 初始化空数组 重定义数组(新角色.功法, 假, 0) 重定义数组(新角色.法宝, 假, 0) 加入成员(角色列表, 新角色) 返回 取数组成员数(角色列表) ; 返回角色ID ; === 功法管理 === .子程序 添加功法 .参数 角色ID, 整数型 .参数 功法名称, 文本型 .如果真 (角色ID > 0 且 角色ID <= 取数组成员数(角色列表)) 加入成员(角色列表[角色ID].功法, 功法名称) .如果真结束 .子程序 移除功法 .参数 角色ID, 整数型 .参数 功法名称, 文本型 .局部变量 i, 整数型 .如果真 (角色ID > 0 且 角色ID <= 取数组成员数(角色列表)) .计次循环首 (取数组成员数(角色列表[角色ID].功法), i) .如果真 (角色列表[角色ID].功法[i] == 功法名称) 删除成员(角色列表[角色ID].功法, i, 1) 返回 .如果真结束 .计次循环尾() .如果真结束 .子程序 获取功法列表, 文本型, , "0" .参数 角色ID, 整数型 .如果真 (角色ID > 0 且 角色ID <= 取数组成员数(角色列表)) 返回 角色列表[角色ID].功法 .如果真结束 返回 {} ; 返回空数组 ; === 法宝管理 === .子程序 添加法宝 .参数 角色ID, 整数型 .参数 法宝名称, 文本型 .如果真 (角色ID > 0 且 角色ID <= 取数组成员数(角色列表)) 加入成员(角色列表[角色ID].法宝, 法宝名称) .如果真结束 .子程序 移除法宝 .参数 角色ID, 整数型 .参数 法宝名称, 文本型 .局部变量 i, 整数型 .如果真 (角色ID > 0 且 角色ID <= 取数组成员数(角色列表)) .计次循环首 (取数组成员数(角色列表[角色ID].法宝), i) .如果真 (角色列表[角色ID].法宝[i] == 法宝名称) 删除成员(角色列表[角色ID].法宝, i, 1) 返回 .如果真结束 .计次循环尾() .如果真结束 .子程序 获取法宝列表, 文本型, , "0" .参数 角色ID, 整数型 .如果真 (角色ID > 0 且 角色ID <= 取数组成员数(角色列表)) 返回 角色列表[角色ID].法宝 .如果真结束 返回 {} ; 返回空数组 ; === 角色信息显示 === .子程序 显示角色信息 .参数 角色ID, 整数型 .局部变量 信息, 文本型 .如果真 (角色ID > 0 且 角色ID <= 取数组成员数(角色列表)) .局部变量 角色 = 角色列表[角色ID] 信息 = "===== 角色信息 =====" + #换行符 信息 = 信息 + "姓名:" + 角色.姓名 + #换行符 信息 = 信息 + "境界:" + 角色.境界 + #换行符 信息 = 信息 + "修为:" + 到文本(角色.修为) + #换行符 信息 = 信息 + "气血:" + 到文本(角色.气血) + #换行符 信息 = 信息 + "真气:" + 到文本(角色.真气) + #换行符 信息 = 信息 + "攻击:" + 到文本(角色.攻击) + #换行符 信息 = 信息 + "防御:" + 到文本(角色.防御) + #换行符 信息 = 信息 + "灵石:" + 到文本(角色.灵石) + #换行符 ; 显示功法列表 信息 = 信息 + #换行符 + "功法列表:" + #换行符 .计次循环首 (取数组成员数(角色.功法), i) 信息 = 信息 + " " + 到文本(i) + ". " + 角色.功法[i] + #换行符 .计次循环尾() ; 显示法宝列表 信息 = 信息 + #换行符 + "法宝列表:" + #换行符 .计次循环首 (取数组成员数(角色.法宝), i) 信息 = 信息 + " " + 到文本(i) + ". " + 角色.法宝[i] + #换行符 .计次循环尾() 信息框(信息, 0, "角色信息", ) .如果真结束 ``` ### 在编辑框中显示列表的完整示例 ```easy .版本 2 .支持库 iext ; === 界面设计 === .程序集 窗口程序集_主窗口 .程序集变量 角色, 角色类型 ; 使用之前定义的"角色类型" ; 窗口组件: ; 编辑框_角色信息 ; 列表框_功法列表 ; 列表框_法宝列表 ; 按钮_添加功法 ; 按钮_添加法宝 .子程序 __启动窗口_创建完毕 初始化角色() 刷新界面() .子程序 初始化角色 角色.姓名 = "修真者" 角色.境界 = "练气期" 角色.修为 = 0 角色.气血 = 100 角色.真气 = 100 角色.攻击 = 20 角色.防御 = 10 ; 初始化功法数组 重定义数组(角色.功法, 假, 3) 角色.功法[1] = "基础吐纳" 角色.功法[2] = "" 角色.功法[3] = "" ; 初始化法宝数组 重定义数组(角色.法宝, 假, 5) 角色.法宝[1] = "木剑" 角色.法宝[2] = "" 角色.法宝[3] = "" 角色.法宝[4] = "" 角色.法宝[5] = "" 角色.灵石 = 100 .子程序 刷新界面 ; 显示角色基本信息 .局部变量 信息, 文本型 信息 = "姓名:" + 角色.姓名 + #换行符 信息 = 信息 + "境界:" + 角色.境界 + #换行符 信息 = 信息 + "修为:" + 到文本(角色.修为) + #换行符 信息 = 信息 + "气血:" + 到文本(角色.气血) + #换行符 信息 = 信息 + "真气:" + 到文本(角色.真气) + #换行符 信息 = 信息 + "攻击:" + 到文本(角色.攻击) + #换行符 信息 = 信息 + "防御:" + 到文本(角色.防御) + #换行符 信息 = 信息 + "灵石:" + 到文本(角色.灵石) + #换行符 编辑框_角色信息.内容 = 信息 ; 刷新功法列表框 列表框_功法列表.清空() .计次循环首 (取数组成员数(角色.功法), i) .如果真 (角色.功法[i] != "") 列表框_功法列表.加入项目(角色.功法[i], ) .如果真结束 .计次循环尾() ; 刷新法宝列表框 列表框_法宝列表.清空() .计次循环首 (取数组成员数(角色.法宝), i) .如果真 (角色.法宝[i] != "") 列表框_法宝列表.加入项目(角色.法宝[i], ) .如果真结束 .计次循环尾() .子程序 _按钮_添加功法_被单击 .局部变量 功法名, 文本型 功法名 = 输入框("请输入功法名称:", "添加功法", "") .如果真 (功法名 != "") ; 添加到角色功法数组 .局部变量 i, 整数型 .计次循环首 (取数组成员数(角色.功法), i) .如果真 (角色.功法[i] == "") 角色.功法[i] = 功法名 刷新界面() 返回 .如果真结束 .计次循环尾() ; 如果没有空位,扩展数组 .局部变量 新大小, 整数型 新大小 = 取数组成员数(角色.功法) + 1 重定义数组(角色.功法, 假, 新大小) 角色.功法[新大小] = 功法名 刷新界面() .如果真结束 .子程序 _按钮_添加法宝_被单击 .局部变量 法宝名, 文本型 法宝名 = 输入框("请输入法宝名称:", "添加法宝", "") .如果真 (法宝名 != "") ; 添加到角色法宝数组 .局部变量 i, 整数型 .计次循环首 (取数组成员数(角色.法宝), i) .如果真 (角色.法宝[i] == "") 角色.法宝[i] = 法宝名 刷新界面() 返回 .如果真结束 .计次循环尾() ; 如果没有空位,扩展数组 .局部变量 新大小, 整数型 新大小 = 取数组成员数(角色.法宝) + 1 重定义数组(角色.法宝, 假, 新大小) 角色.法宝[新大小] = 法宝名 刷新界面() .如果真结束 .子程序 _列表框_功法列表_列表项被选择 .局部变量 索引, 整数型 索引 = 列表框_功法列表.现行选中项 + 1 .如果真 (索引 > 0 且 索引 <= 取数组成员数(角色.功法)) .局部变量 功法名 = 角色.功法[索引] 信息框("已选择功法:" + 功法名, 0, "功法信息", ) .如果真结束 .子程序 _列表框_法宝列表_列表项被选择 .局部变量 索引, 整数型 索引 = 列表框_法宝列表.现行选中项 + 1 .如果真 (索引 > 0 且 索引 <= 取数组成员数(角色.法宝)) .局部变量 法宝名 = 角色.法宝[索引] 信息框("已选择法宝:" + 法宝名, 0, "法宝信息", ) .如果真结束 ``` ### 高级列表管理技巧 1. **使用列表类封装操作** ```easy .程序集类 功法列表类 .成员变量 功法数组, 文本型, , "0" .子程序 添加功法, , 公开 .参数 功法名, 文本型 加入成员(功法数组, 功法名) .子程序 移除功法, , 公开 .参数 索引, 整数型 .如果真 (索引 > 0 且 索引 <= 取数组成员数(功法数组)) 删除成员(功法数组, 索引, 1) .如果真结束 .子程序 获取功法列表, 文本型, , "0", 公开 返回 功法数组 .子程序 功法数量, 整数型, 公开 返回 取数组成员数(功法数组) ; 在角色类型中使用 .数据类型 角色类型 .成员 功法列表, 功法列表类 ``` 2. **带过滤功能的列表** ```easy .子程序 获取有效功法, 文本型, , "0" .局部变量 结果, 文本型, , "0" .局部变量 i, 整数型 .计次循环首 (取数组成员数(角色.功法), i) .如果真 (角色.功法[i] != "") 加入成员(结果, 角色.功法[i]) .如果真结束 .计次循环尾() 返回 结果 ``` 3. **列表排序功能** ```easy .子程序 功法排序 .局部变量 i, 整数型 .局部变量 j, 整数型 .局部变量 临时, 文本型 .局部变量 数量 = 取数组成员数(角色.功法) .计次循环首 (数量 - 1, i) .计次循环首 (数量 - i, j) .如果真 (角色.功法[j] > 角色.功法[j + 1]) 临时 = 角色.功法[j] 角色.功法[j] = 角色.功法[j + 1] 角色.功法[j + 1] = 临时 .如果真结束 .计次循环尾() .计次循环尾() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值