我学着官网文档中的小游戏一点点练习,现在发现了这个问题,点击开始后游戏中断了,浏览器报错(附截图),原因是在Game.js中无法引用到 Player.js中自定义的方法。名称拼写绝对没有问题,类型引用也是完全照搬,不会出错的。我引用Player中的其他方法也是如此报错。求前辈们解惑。感激不尽。

我学着官网文档中的小游戏一点点练习,现在发现了这个问题,点击开始后游戏中断了,浏览器报错(附截图),原因是在Game.js中无法引用到 Player.js中自定义的方法。名称拼写绝对没有问题,类型引用也是完全照搬,不会出错的。我引用Player中的其他方法也是如此报错。求前辈们解惑。感激不尽。

检查一下你的 player 对象是不是设置错了
不是很明白,设置错了是指什么?拼写没有问题,是指的类型么?
你属性面板中拖拽的“Player”节点有没有挂载你定义的Player.js脚本?
哦,我看错了,应该是挂载了,不然属性面板就不会显示类型为“Player”了。
按照楼下jare大大说的,下个断点,调试一下吧~
或者你 Player.js 脚本里可能没有定义 startMoveAt 方法…… 总之调试下吧
this.player这个是null,没有挂载或者获取的时候没有对
谢谢大家,是getComponent的问题,在game.js里面需要用到getComponent(‘Player’)才行
天哪,这么多年只有我第二次遇到这个奇葩问题么?
我也是把基本版的抓星星写完了,在写高阶版时也遇到这位兄嘚一样的问题,卡了1天了,我都快放弃解决这个问题了。
我用的是2.4.4版本,
也在是Game.js中运行
this.player.startMoveAt(cc.v2(0, this.groundY));
时报错 this.player.startMoveAt is not a function,
引用 this.player.x 之类的都能获得数值,
把官网教程 start_polished_project 导入2.4.4版保存后,再把Game.js,Star.js,Player.js 原代码拷过来用,依然报错,极度有挫败感。
Player.js文件中有startMoveAt ()这个功能的
结果把语句
this.player.startMoveAt(cc.v2(0, this.groundY));
改为
this.player.getComponent(‘Player’).startMoveAt(cc.v2(0, this.groundY));
就成功了,真的还在凌乱中