Godot-StartUP

创建于:2018-07-28

创建人: Justus

44 信息 150 成员
讨论基于Godot以及Unity引擎的游戏开发经验,理论和最佳实践。共享一些通用思路以启发另一种生产工具中的实践。独立开发群QQ: 122017359

一种GDScript语言符号的命名策略

Justus 2018-07-29

一种GDScript语言符号的命名策略

GDScript介绍

GDScript是一种godot游戏引擎所支持的自制的python-like脚本语言,学习成本低,与引擎的功能结合完美,是godot引擎本身“All-in-one”理念所不必可少的组成部分。 在godot项目工程中,由GDScript脚本的后缀名为.gd

GDScript的几个设计决策

gdscript设计之初便融合于面向对象设计。一个.gd脚本文件即为一个class,如果这个文件依附于某个godot节点,那它便是继承自那个节点类型的派生类。这种设计方式也比较完美的避开了oop程序设计的初学者滥用global变量的风险。Godot依旧设计了Autoload这种方式来的提供那些生命周期与程序一样长的对象实例的访问。

即使是Autoload也无法阻止任何人破坏封装性

然而,gdscript语言不设置任何access modifier(or access specifier). 在这里,我们无法从语言语法规则上指定成员的是否公开还是私有,是否受保护。 类的设计者创建了诸多私有成员,只是因为其中的某些没有设置setter/getter就被其他人(或者几个月后的自己)随意访问的情况几乎无法避免。对于成员函数而言,更是毫无任何办法进行保护。这个小节的标题也正是其中一个后果。

利用命名来表征自己的设计意图

因此,在我的项目中,采用了如下的命名方式来表现设计语义。在语法上没有约束力,只是为了表达更多的语义信息。

  • _
    godot内置函数的前缀,如果在你的类中出现了这样的函数,便是进行了一次overwrite,相当于c++中的virtual关键字,java中的默认函数覆写(overwrite)。
  • __
    双下划线,表明私有,变量与成员方法均适用。
  • 变量名全大写常数。
  • 所有export变量均不以 __ 开头

后续效果观察

TBD

参考

[GodotDocs] GDScript

(转发自:原日志地址
 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册