设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

求助!写脚本遇到cannot read property 'X' of undefined的报错

查看数: 3022 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-12-31 02:47

正文摘要:

前两天询问了站里大佬们,开始尝试用脚本来编写明雷遇敌。我自己的想法是用脚本读取了player 和event的坐标值再用if判断他们相减的绝对值从而达到玩家与敌群在不同的范围内做出不同的反应(从随机移动改为靠近玩家之 ...

回复

钇圣道 发表于 2022-1-2 03:05:05
感谢楼上各位大佬的解答!现在代码的编译修正后是没问题了!的确是要把var去掉以及一些小错误改完后就游戏可以运行了!谢谢!!
开关关 发表于 2022-1-1 15:40:21
我赞成3楼的回答。估计你要用6号事件,但$gameMap.events()返回的数组是从0号开始计数的,所以应该取$gameMap.events()[5]的x、y。
如果我猜对了的话,你的地图中应该只有6个事件,因此$gameMap.events()只有6个元素,不存在$gameMap.events()[6],所以会报无法读取undefined的属性的错误。

另外顺带提有几处可能的问题:
1. 分支条件里的eventY写成evenrY了;
2. 包含战斗处理的那个分支,条件语句的意思是当怪位于玩家上下两格的同一行,或左右两格的同一列这个井字形区域时进入战斗。你可能是故意这样设计的,不过如果是我,应该会设计成当怪在上下左右一格时才进入战斗,因为这样更符合“遇敌”的直觉。
3. 正如2、4楼所说,想要在分支条件里用playerX之类的新定义的变量,就要把它定义成全局变量。这个问题直接去掉所有的var就能解决。
钇圣道 发表于 2022-1-1 14:37:40
qq983378065 发表于 2021-12-31 10:39
var是临时定义,只会在定义的函数里面使用,你通过脚本定义变量之后在使用别的方法调用的话要使用全局变量 ...

好像还是不成功诶orz。。。
还是没定义到

点评

按原贴改回来后,按我说的试试?  发表于 2022-1-1 15:00
qq983378065 发表于 2021-12-31 10:39:56
var是临时定义,只会在定义的函数里面使用,你通过脚本定义变量之后在使用别的方法调用的话要使用全局变量,改成这样window.PlayerX = $gamePlayer.X
Fan723 发表于 2021-12-31 09:57:00
报错是“.x”之前的对象未定义,你这脚本有“.x”的地方就两处,一处是$gamePlayer,这个你只要是运行游戏有角色就不会报这个错,另一处是$gameMap.events()[6],问题应该是出在这里,确认一下这个6号事件是否存在吧。
任小雪 发表于 2021-12-31 03:20:59
把var都去掉试试?因为var是临时声明
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 17:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表