嗯,确实是比较新手的问题,这些问题其实都代表比较基础的操作(其实新手的话推荐先跟着视频教程完成一些小项目,再来尝试制作自己的项目,可以提前了解很多基础操作)接下来是按顺序答题:
1、访问不同脚本里的变量和数据的方法:使用全局变量(自动加载单例)或者成员变量(在函数外声明的变量)来储存变量的值或引用。
2、获取Sprite2D的frame属性:$“Sprite2D”.frame或者get_node(“Sprite2D”).frame。其实美元符号$就是get_node()的简写,我曾在置顶的教程里提到过这个建议:希望更多的新手教程能够提及这一点。
3、把所有的游戏的数据集合到一个脚本里:方法有很多,包括前面提到的全局变量(自动加载)还可以使用共同的父节点,然后使用get_parent()获得父节点的引用。
4、把来自“player”的frame变量实时储存到脚本里:通过脚本类new()出来的脚本对象的引用.变量标识符 = player对象的引用.frame(如果脚本附加在节点上,那么这个节点是脚本的对象,而不是类)。
5、把代表贴图序号的数字转换成代表方向的数字:可以用算法或者逻辑判断实现,对于新手来说算法可能比较复杂(除非年轻时参加过算法竞赛)一般新手简单粗暴的用if判断就行。
6、如果frame大于等于0小于4,变量orientation等于1:if frame >= 0 && frame < 4: orientation = 1。在这段代码中,&&表示“并且”的意思,orientation变量在函数外声明或定义(类的成员变量)。
7、在其它脚本有需要时能够读取这个变量:把所有需要的变量先储存在全局节点里,自然可以在任何脚本里调用,前提是先获取节点的引用。
8、写extend会报错:缺少字母s,完整的写法是extends(不要漏了最后的字母s,自动补全应该会提示完整的写法)而且extends后面需要加类名,表示继承的类。
以上这些概念都可以在一些视频教程或者官方文档里接触到,新手的话推荐先跟着现有的教程过一遍。1楼提到的边学边做确实是一种方法,但是先学会一些基本概念的话,效率会更快一些