į´1åš´åãGDScriptīŧīŧ9469īŧãŽæŗ¨éãčŋŊå ããPRããããžããã ä¸ģãĢį´æĨäŊŋį¨ãããĒããŖããããĢæåĻãããžããīŧč§ŖæããĒãŧãĢããŧãŋããĒãããĩãŧãããŧããŖãŽããŧãĢãŽãŋãäŊŋį¨ããĻããžããīŧã
ããŽææĄã¯ãããå¤ããŽããŧã¯ãŧããããããŗã°ãããã¨ãĒãGDScriptãããæĄåŧĩå¯čŊãĢããæšæŗã§ãæŗ¨éãŽį¨éãčŋŊå ãããã¨ã§ãã
ãŠãŽãããĒæŗ¨éãäŊŋį¨ã§ããžããīŧ
export
ããŗãã įžå¨ããŋã¤ããã¨ãĢãĢãšãŋã æ§æãäŊŋį¨ããĻããžãã ãĸãããŧãˇã§ãŗãäŊŋį¨ããã¨ãPropertyInfoãŽäŊŋį¨æŗã¨ããŗããį´æĨč¨åŽã§ããGDScriptããŧãĩãŧã§æ°ããæ§æãããã¯ãããã¨ãĒããã¤ãŗãšãã¯ãŋãŧã¸ãŽæ°ããčŋŊå ãããæåšãĢæ´ģį¨ã§ããžããexport
ããŧã¯ãŧããæŽããããŗãã ããæŗ¨éãĢį§ģåããžãã ãŋã¤ãã¯ãŋã¤ãããŗãã§åŽįžŠã§ããžããexport
ãĢãã´ãĒãåĢãžããžãīŧīŧ4378ãīŧ10303īŧãonready
ããŧã¯ãŧããæŗ¨éãĢįŊŽãæããžããsetget
īŧã˛ããŋãŧã ããåŋ
čĻãĒå ´åã¯åĨåĻãĒæ§æã§ãīŧãmaster
ã slave
ã sync
ã remote
īŧãtool
īŧãžãã¯ãããã°ãĸãŧãīŧīŧ12837ãĢéĸéŖīŧã§ãŽãŋãŗãŗãã¤ãĢãããĒãŠãŽæ°ããããĒãããģããĩãŧåŊäģ¤ãåŠįš
æ°ããããŧã¯ãŧããčŋŊå ãããããŗãĢããããåĻįãããããĢGDScriptããŧã¯ãã¤ãļãŧã¨ããŧãĩãŧãå¤æ´ããåŋ
čĻããããžãã įšãĢã export
æ§æč§Ŗæã¯é常ãĢč¤éã§ãããäģãŽã¯ãŠãšéĸéŖãŽæ§æč§Ŗæã¨æˇˇåãããĻããžãã
ãĸãããŧãˇã§ãŗãäŊŋį¨ããã¨ãįšåŽãŽåąæ§īŧexportãsetgetãonreadyãĒãŠīŧãčŋŊå ãããããĢčĄãããäŊæĨãå°ãĒããĒããäģŖãããĢããŠãŽãĸãããŧãˇã§ãŗãåå¨ããããįĸēčĒããã ãã§æ¸ãŋãžãã
įæ
ãĸãããŧãˇã§ãŗãŽãĩããŧããčŋŊå ãããĢã¯ãããŧã¯ãŧãã ããŽå ´åãããããŧãĩãŧãĢå¤ããŽå¤æ´ãå ããåŋ
čĻããããžãã ãžãããåãĒãæŗ¨éãã¨ããĻæ°ããæŠčŊãææĄãããããĢäēēã
ãĢåŊąéŋãä¸ããå¯čŊæ§ããããžãã
æ§æ
æ§æãĢã¤ããĻã¯įšãĢåĨŊãŋã¯ãããžããããPythonããŗãŦãŧãŋãŽãããĒããŽãæŗåããĻããžãã ãã ãããĸãããŧãˇã§ãŗã¯ããŗãŦãŧãŋã¨åãã§ã¯ãĒããããPythonãĻãŧãļãŧãĢã¨ãŖãĻã¯æˇˇäšąãæãå¯čŊæ§ããããžãã
<strong i="41">@onready</strong>
var my_sprite = $Sprite
åŧæ°ãæ¸ĄããããĢãããã¯éĸæ°ãŽãããĢåããã¨ãã§ããžãīŧ
@export_hint(ENUM)
@export_hint_string("Attack,Defense")
export var my_enum : int = 0
å¤åæŦåŧ§ãĒãīŧ
<strong i="48">@export_hint</strong> ENUM
<strong i="49">@export_hint_string</strong> "Attack,Defense"
export var my_enum : int = 0
ãžãã¯ãååäģãããŠãĄãŧãŋãŧãäŊŋį¨ããīŧãããĻããŧã¯ãŧããéŋããīŧīŧ
<strong i="53">@export</strong> type=String hint=MULTILINE
var my_text = ""
ãžãã¯ãäģãŽäŊãã
ãĢãšãŋã æŗ¨é
ä¸æãĒæŗ¨éã¯åãĢįĄčĻãããžãīŧããããčĻåäģãīŧã ããŽããããĩãŧãããŧããŖãŽããŧãĢã¯æŗ¨éãč§ŖæããĻããããĨãĄãŗããŽįæãĒãŠãŽäģãŽæŠčŊãæäžã§ããžãã
ã¤ãŗãããšãã¯ãˇã§ãŗAPIãčŋŊå ãããã¨ãã§ããžãīŧ get_method_annotations()
ã get_property_annotations()
ãĒãŠã ããŽãããĢããĻããã¨ãã°ãšã¯ãĒãããäēæããããŠã°ã¤ãŗã¯ãããŧããŗãŧããããååãäŊŋį¨ããäģŖãããĢããĸãããŧãˇã§ãŗãäŊŋį¨ããĻåŧãŗåēããĄãŊãããæąēåŽã§ããžãã
ãĢãšãŋã ãĸãããŧãˇã§ãŗãæŖããįč§ŖããĻãããŽã§ãæŦĄãŽãããĒããŽããããžãã
<strong i="6">@description</strong> "Adds two numbers and returns the result."
<strong i="7">@parameter</strong> name=num1 type=float description="The first number"
<strong i="8">@parameter</strong> name=num2 type=float description="The second number"
<strong i="9">@returns</strong> type=float description="num1 and num2 added together"
func add(num1, num2):
return num1 + num2
ãããĻãããããŽãĸãããŧãˇã§ãŗãčŋãéĸæ°ããã¨ãã°get_annotations("add")
åŧãŗåēããã¨ãã§ããžããīŧ ããããŽãĸãããŧãˇã§ãŗãGodotãĢããŖãĻįĩãŋčžŧãŋãŽããŧã¯ãŧã/ãĸãããŧãˇã§ãŗã¨ããĻčĒčãããĒãå ´åã§ãã
@ LikeLakers2ã¯ãããããããŽčĻįšã§ãã
į§ã¯ãããåĨŊãã§ããį§ã¯čåžãĢããåŽčŖ ãĢã¤ããĻã¯įĨããžããããGDscriptãŗãŧãã§ã¯ããã¯įžå¨ãŽãããĢčĻãããããããŖã¨ããããĢčĻããã§ãããã įšãĢsetgetãŽäžã§ã¯ã
ããã¯é常ãĢäžŋåŠã§ãããčĒãŋããããããããĢ1čĄãŽãšããŧããĄãŗãã訹å¯ããåŋ
čĻããããžãã äžãã°ã
<strong i="6">@onready</strong> var a = $A
ã訹å¯ããåŋ
čĻããããžãã ããã§ãĒããã°ãããã¯å¤§éãŽæščĄãčŋŊå ããããŽå ´åãonreadyãŽæį¨æ§ãįĄé§ãĢããžãã
äŊããŽãããĒããŽ
<strong i="10">@onready</strong>
var a = $A
var b = $B
var c = $C
åãæŗ¨éãč¤æ°ãŽãšããŧããĄãŗããĢéŠį¨ããã¨äžŋåŠã§ãã
ãžãããŗããŗãäŊŋį¨ããĻãæŗ¨éãįĩäēããå ´æã¨åŊąéŋãåãããšããŧããĄãŗããéå§ããå ´æãį¤ēããGDScriptãŽæŽããŽé¨åã¨ä¸č´ããããã¨ãã§ããžãã
æŗ¨éãæįĸēãĒéå§ã¨įĩäēã§č§Ŗæã§ããå ´åã¯ããģããŗããŗã¯ä¸čĻã§ãããåŋ čĻãĢåŋããĻåãčĄãĢé įŊŽã§ããžãīŧãã¨ãã°ããīŧīŧããäŊŋį¨ããå ´åããžãã¯åŧæ°ããĒãå ´åīŧã
vnenã¯å¤ããˇã§ãŧããĢããããŧã¯ãŧããåé¤ããã¤ããã¯ãĒãã¨æããžããīŧ
ãžããčå ããŗã§ããããåĻįãããã¨ãåŊšįĢãĄãžãã
ããã§ãŽããŧããŖãŧãĢé ããžãããããããã¨ã¯ãšããŧãå¤æ°ãŽãĢãã´ãĒãæäžããããŧãĢ/ãããã°ãšã¯ãĒãããŽåå˛ãäŊæããæšæŗãĢé常ãĢčåŗããããžããīŧ
æĢåŽįãĢ3.2ããŧãããããäŊæããžãããã¨ããŖãŋãŧãĢäŊŋãããããŽåä¸ãæäžãããããĢããããé ããæŠããåŽčŖ ããããã¨ãæŦåŊãĢæãã§ããžãã
####ä¸čŠãĒæčĻãå¯ããããĻããžãīŧ
gdscriptãŽæ§æãå¤§åš ãĢå¤æ´ãããĻãããŽã¯ãĒãã§ããīŧ ãã¨ãã¨ã¯ããˇãŗããĢã§ãįŋåžãããããį´æįãĢãĒããããĢč¨č¨ãããĻããžããã ãããããšãĻãŽæ°ããčŋŊå īŧå Ĩåãããgdsãæŗ¨éīŧãĢãããæ°ããéįēč ãĢã¨ãŖãĻé常ãĢæˇˇäšąãããã¨ãĢãĒããŽã§ã¯ãĒããã¨åŋé ããĻããžãã ãã¨ãã°ãgodotãŽæ°ããäēēãããĨãŧããĒãĸãĢãčĻãĻãLikeLakers2ãŽæį¨ŋãĢãããŗãŧããčĻãã¨ããããé ãįįēããã ããã¨æããžãã ãŠãĄããã¨ããã°ãåŊŧãã¯ãããĢã¤ããĻ/ããããŠãŽãããĢæŠčŊããããĒãŠãĢã¤ããĻãããããŽčŗĒåãããĒããã°ãĒããĒãã§ãããã
ãŋããĒãŽgdsã¸ãŽææ ããč˛ĸįŽč ããŠãŽãããĢãããæšåããããŽããĒãŠãåŽå ¨ãĢįč§ŖããĻããžããåŽéãŽã˛ãŧã éįēč ã¨č˛ĸįŽč ãŽéãĢæįĩļããããããããĒãã¨æããĻããžãīŧč˛ĸįŽč ãã˛ãŧã éįēč ã§ã¯ãĒãã¨č¨ãŖãĻãããŽã§ã¯ãĒããæŠčŊã¯åŽéãĢã¯åŋ čĻãããžããīŧã čĒ°ããããããŽæŠčŊãåŠį¨ããåŋ čĻã¯ãããžããã gdsãããŽåį´ããããŠããŠãéĸããĻãããŽã§ã¯ãĒããã¨åŋé ããĻããžããããã ãã§ãã ããã¯æĸãĢåäēåã§ã...
ãžããexportããŧã¯ãŧããĢ3čĄãæåŽãããã¨ã¯ãããšãĻã1čĄã§æåŽããå ´åãĢæ¯ãšãĻé常ãĢéĸåã§ãã äžīŧ onready var my_sprite = $Sprite
ã¯ã¯ãããĢã¯ãĒãŧãŗã§ãīŧã¨ãĢããį§ãĢã¨ãŖãĻīŧ
ãã¤ãŗã4ãĢéĸããĻã¯ãããã¯ã¨ããŖãŋãŧAFAIKã§åŽčĄã§ããžãã ãžããimoã¯ããįšåŽãŽčĻåãįĄåšãĢããããããĢãŗãŧããŽãããã¨ãããĢæŗ¨éãäģããã¨ãé常ãĢåäģãĒãŗãŧããĢãĒãå¯čŊæ§ããããžãã
gdscriptãŽæ§æãå¤§åš ãĢå¤æ´ãããĻãããŽã¯ãĒãã§ããīŧ ãã¨ãã¨ã¯ããˇãŗããĢã§ãįŋåžãããããį´æįãĢãĒããããĢč¨č¨ãããĻããžããã ãããããšãĻãŽæ°ããčŋŊå īŧå Ĩåãããgdsãæŗ¨éīŧãĢãããæ°ããéįēč ãĢã¨ãŖãĻé常ãĢæˇˇäšąãããã¨ãĢãĒããŽã§ã¯ãĒããã¨åŋé ããĻããžãã
ãģã¨ããŠãŽīŧããšãĻã§ã¯ãĒããĢããĻãīŧGDScriptæ§æãŽå¤æ´ã¯ãå¤ããŗãŧãã¨äēææ§ããããžãã ä¸ģãĒįŽæ¨ã¯ãGDScriptãäŊŋį¨ããéįēč ãŽįįŖæ§ãåä¸ããããã¨ã§ããäžīŧ
match
ãšããŧããĄãŗãã¯ãswitch-caseãšããŧããĄãŗãīŧé常ãĢčĻæąãããīŧãå¯čŊãĢããäēēã
ãé
åã¨čžæ¸ãį°ĄåãĢį
§åã§ãããããĢãããã¨ã§ãããããããĢæšåããžããonready
å¤æ°īŧ2.xã§æ°ããčŋŊå ãããīŧã¯ãé ģįšãĢäŊŋį¨ãããããŋãŧãŗãå
ˇäŊåããžããã¤ãžãã _ready
å¤æ°ãåæåããžããåŽéãŽã˛ãŧã éįēč ã¨č˛ĸįŽč ãŽéãĢæįĩļããããããããĒãã¨æããĻããžãã
ããã¯ãĒãŧããŗãŗããĨãããŖã§ãã ã˛ãŧã éįēč ã¯ãããĒãã¨åããããĢãæĨãĻæčĻã襨æãããã¨ãæčŋããžãã ããããĢããããĸãããŧãˇã§ãŗãįžåŽãĢãĒããžã§ãĢã¯ããĒããŽæéãããããžãã
[...] gdsãããŽåį´ããããŠããŠãéĸããĻãããŽã§ã¯ãĒããã¨åŋé ããĻããžããããã ãã§ãã ãã§ãĢååããããģãŠã§ã...
ãã§ãĢååãĢč¯ããã°ãæŠčŊãĒã¯ã¨ãšããåãåããã¨ã¯ã§ããžããã
ãžããexportããŧã¯ãŧããĢ3čĄãæåŽãããã¨ã¯ãããšãĻã1čĄã§æåŽããå ´åãĢæ¯ãšãĻé常ãĢéĸåã§ãã äžīŧonready var my_sprite = $ Spriteã¯ã¯ãããĢã¯ãĒãŧãŗã§ã
æ§æã¯ãžã åŽæããĻããžããã onready
ãããŗexport
ããŧã¯ãŧãããããĢįŊŽãæããããĒãå¯čŊæ§ããããžãã
į§ã¯ããŽãĸã¤ããĸãæŦåŊãĢåĨŊãã§ãCīŧãŽåąæ§ãã¨ãĻãåĨŊãã§ãã
ã¯ãŠãšã¨ãˇã°ããĢãŽãĸãããŧãˇã§ãŗãčåŗæˇąããããããžããã
ãããããŖããĄãŊããããžãã¯ã¯ãŠãšãĢįšåŽãŽãĢãšãŋã ãĸãããŧãˇã§ãŗãããããŠãããĢéĸäŋãĒããčĒåįãĢåäŊããã¤ãŗãšãã¯ãŋãŧããŠã°ã¤ãŗã¯į°Ąåã§ãã
æ§æãĢéĸããĻã¯ããĒããˇã§ãŗã§1čĄãĢč¨čŋ°ã§ããããŽãåĨŊãŋãžããããããģãŠéčĻã§ã¯ãããžããã
ãĢãšãŋã ãĸãããŧãˇã§ãŗãåŽįžŠãããããģãšã¯ãŠãŽãããĢãĒããžããīŧ ãŗãŧãå ã§æ¯åčĒįąãĢåŽįžŠããããŽã§ã¯ãĒããã¯ãŠãšã¨åããããĢããĻãŧãļãŧãä¸įžŠįãĒåŽįžŠã§äŊæãããã¨ããå§ãããžãã
ãããĢã¯ããŖã¨čĒŋæģãåŋ čĻã ã¨æããžããåŽå ¨ãĒååŋč ãéŖãŗčžŧããã¨ããĻãããã¨ãæˇˇäšąãããĒããããĢãč¨čĒãĢīŧãĒããˇã§ãŗãŽæ§æãĒãŠã¨ããĻīŧčŋŊå ãããŽã¯į´ æ´ããããã¨ã ã¨æããžãã
æŦĄãŽæ§æãčĻãĻã大ä¸å¤Ģã ã¨æããžãã
<strong i="7">@export</strong> type=String, hint=MULTILINE
ãããŠãĄãŧãŋããŽéãĢãŗãŗããčŋŊå ããã¨ãæŦĄãŽãããĢįžå¨ãŽæ§æã¨ãŽæ´åæ§ãå°ãåä¸ããã¨æããžãã
export (String, MULTILINE) var my_var
æåãŽããŧã¸ã§ãŗã¯ããå°ãåéˇã§ãããããã¯ãžããããããæįĸēãĢãããĒãŧããŗãŗããĒãŧããäŊŋį¨ããã°ãããģãŠåŽŗã¯ãĒãã¯ãã§ã:)
äģåžãæ§æãĢéĸããč°čĢããããĢåĸããã¯ãã§ãã å ¨äŊįãĢį§ã¯ããŽčããåĨŊãã§ãã
ãĸãããŧãˇã§ãŗã¯ãæ§æãæŋå ĨãããããŽč¯ãæšæŗã§ãã ãã ããæ§æã¨ãŗãŧããåéĸããæšããIMOãŽããã¯ãĒãŧãŗãĒãĸãããŧããĢãĒãå¯čŊæ§ããããžãã ããããŧããĄã¤ãĢãããåŊšįĢã¤ãããĢããããčŋŊå ããĻããå¯čŊæ§ããããžãã
@ bojidar-bgãŽãŗãĄãŗããã...
ããããĢããããĸãããŧãˇã§ãŗãįžåŽãĢãĒããžã§ãĢã¯ããĒããŽæéãããããžãã
čĒ°ããããŽåŽčŖ ãé ãããããããããŗã°ããŽåéĄãäŊã§ããããčĒŦæã§ããžããīŧ GDScript / manpowerãĢį˛žéããĻããã ãã§ãããããã¨ããĸãããŧãˇã§ãŗããĩããŧããããããĢäēåãĢåŽčŖ ããåŋ čĻãããįšåŽãŽæŠčŊããããžããīŧ
ããĻãį§ãŽãŗãĄãŗãããããĒããŽæéãįĩéãããŽã§ãããã¯ãã§ãĢãããč¨ŧæããĻããã¨æããžããīŧ
ãĸãããŧãˇã§ãŗãĩããŧããŽä¸ģãĒããããĢãŧã¯ããŗãĸéįēč ãĢæ§æã¨ãģããŗããŖã¯ãšãĢã¤ããĻåæããããã¨ã§ãã ããŽåžãåŽčŖ ã¯æ¯čŧįį°ĄåãĢãĒãã¯ãã§ãã
ãĸãããŧãˇã§ãŗã¯ãĄãŋããŧãŋå°į¨ã§ããããšã¯ãĒãããã¨ããŖãŋãŧãŽåäŊãĢåŊąéŋãä¸ããĒããã¨ãæãã§ããããã @ reduzã¨ãããĢã¤ããĻ芹ãåãåŋ čĻããããžãã ããã¯į§ãŽæåãŽææĄãå ¨ãįĄæåŗãĢããã§ãããã
įšãĢåä¸ãŽããŧã¯ãŧãīŧ onready
ã master
ã puppet
ãĒãŠīŧãįŊŽãæããå ´åã¯ãæŗ¨éãååãĢæįĸēã§ããã¨æããžãã ããããããã§ããŗãŗãģãŗãĩãšãĢéããåŋ
čĻããããžãã
čĒŦæãããããĢãããã¯GDScriptã¸ãŽį´ æ´ãããčŋŊå ãĢãĒãã¨æããžãã ãĄãŋããŧãŋãĢéåŽããšãã§ã¯ãĒãã¨æããžããå¤æ°ãĢäŊŋį¨ãããããŧã¯ãŧããŽå¤ããįšãĢå ´åãĢããŖãĻã¯å°ãčĒãŋãĨãããĒãå¯čŊæ§ãŽããexport
ãįĸēåŽãĢčŋŊãæãåŋ
čĻããããžãã ãããč¤æ°ãŽãšããŧããĄãŗããĢåå˛ãããã¨ã¯ãįč§ŖãĢåŊšįĢã¤ã¨æããžãã
ãžããããŽ3åš´åãŽåéĄīŧ6204ãã¨ãŦãŦãŗããĒæšæŗã§č§ŖæąēãããããĢãäŊŋį¨ã§ããžãã
<strong i="8">@export</strong>
<strong i="9">@export_tooltip</strong> "The name used when displaying this item in the inventory and in shops."
var display_name := ""
ãžãããĄãŋããŧãŋäģĨä¸ãŽããŽããĩããŧãããåŋ čĻããããã¨ãĢãåæããžãã ãããĢãããå¤ããŽãã¸ãã¯ãį°Ąį´ åãããčĒãŋããããåä¸ããžãã
@willnationsdevãĢåæãããĸãããŧãˇã§ãŗãäŊŋį¨ããĻãŗãŧãã§ãˇã°ããĢãæĨįļãããã¨æããžããããŽãããĒããŽã¯ããŗãŧããŽå¯čĒæ§ãæŦåŊãĢåä¸ããããã¨ãã§ããžãã
@connect("timeout")
func _on_Timer_timeout():
...
@rludersã¯ããšã¯ãĒãããTimer
ããŧãä¸ãĢããã¨æŗåŽããĻããžãã
ããĄãã@Zylann ã į°ĄåãĒäžã§ãã ããŋãŧã˛ãããããŠãĄãŧãŋããĩããŧãããčĒåˇąæĨįļãŽãããĢįįĨã§ããžãã ãã¨ãã°ããšã¯ãĒãããTimer
å¤é¨ã§åŽčĄãããĻããå ´åīŧ
@connect("timeout", $Timer)
func _on_Timer_timeout():
...
ããããŠãŽãããĢåŽčŖ ã§ãããããããžããããįšãĢããŧã¯ãŧããĢã¤ããĻã¯ãgdsã§æŗ¨éãįĸēčĒãããã¨æãŖãĻããžãã ãžããč¨é˛ã¨ããĻã¯ãæŗ¨éãåēåããããĢãģããŗããŗãæščĄãŽäģŖãããĢãīŧīŧããäŊŋį¨ãããã¨ããå§ãããžãã
įŦčĒãŽæŗ¨é+æŦæ ŧįãĒæŗ¨éãããģããĩãäŊæã§ããã°ãããĢč¯ãã§ãããã
ããĄãã@Zylann ã į°ĄåãĒäžã§ãã ããŋãŧã˛ãããããŠãĄãŧãŋããĩããŧãããčĒåˇąæĨįļãŽãããĢįįĨã§ããžãã ãã¨ãã°ããšã¯ãĒããã
Timer
å¤é¨ã§åŽčĄãããĻããå ´åīŧ@connect("timeout", $Timer) func _on_Timer_timeout(): ...
ããã¯äŊãããŽæšæŗã§ããŠã°ã¤ãŗãĢããŖãĻãĩããŧããããå¯čŊæ§ããããžããį§ã¯ããããŗãĸæŠčŊãĢããžããã
ããŠã°ã¤ãŗã¯ãããĢåŧˇåãĢãĒãå¯čŊæ§ããããžãã
į§ãč¨ãããŽã¯ãããããŽããŽãåŽčŖ ãããåãĢgdscriptãåĻãã ãã¨ãããããæãã¨ãããã¨ã ãã§ãã
@export_hint(ENUM)
@export_hint_string("Attack,Defense")
export var my_enum : int = 0
ååŋč ã¨ããĻãį§ãĢã¨ãŖãĻã¯é常ãĢå°éŖã§č§Ŗæãå°éŖã ãŖãã§ããã
@sleepcircleããšãĻãŽå ´åãĢãããĻGDScriptããˇãŗããĢãĢäŋã¤ãããĢåĒããžãã ããããŖãĻãããã§įŽčãč¨ãåŋ čĻã¯ãããžãããåŧį¨ãããŗãŧãã¯åãĒãææĄã§ãããå°æĨãŽæ§æã§ã¯ãããžããã
ããŋãžãããįŽčãč¨ãã¤ããã¯ãããžããã§ããã 大å¤æ°ãããããŽčŋŊå ãæŋčĒããĻãããããĢčĻãããŽã§ãį§ã¯ãĄãããŠããããéŋããããĒãã¨æãŖãĻããžããã
ã˛ãŧã éįēã¤ãŗãšããŠã¯ãŋãŧã¨ããĻ$ 0.02ãæããããŖãã ãã§ãã čĻåīŧããžãč˛ĸįŽããĒãä¸åŋ čĻãĢéˇããŗãĄãŗããæ°ããéįēč ãããããŠãŽãããĢčĒčããããĢã¤ããĻãããã°ãŠããŗã°ã5åš´éæããį§ãŽįĩé¨ã ãã§ãã
æŗ¨éãŽãããĒæ°ããč¨čĒã¤ããŖãĒã ãčãåēãã¨ãã¯ãã§ããéããŽãĸããŠãŧããŗãšãäžŋäšããããã¨ãéčĻã ã¨æããžãã ãã¨ãã°ã connect
å ´åãæ°ããéįēč
ãĢã¨ãŖãĻãããŠãĄãŧãŋãŧãåãčžŧãã§ããã¤ããŽå¯äŊį¨ãããéĸæ°ãæŠčŊãã
@
ããĄãŋããŧãŋå°į¨ãĢäŊŋį¨ãããå ´åãæ°ããéįēč
ã@
ãčĻãã¨ããŗãŧããã¸ãã¯ãĢåŊąéŋãä¸ããĒããĄãŋããŧãŋã¨ããĻčĒčããžãã ãã¸ãã¯ãĢåŊąéŋãä¸ããå ´åã¯ã xã¨ããĻäŊŋį¨ããããã¨ãããã°ã yã¨ããĻäŊŋį¨ããããã¨ãããæ°ããã¤ããŖãĒã ãčŋŊå ããĒããã¨ãéčĻã§ãã
įžå¨ãå¤æ°ãå¤æ´ãããĢã¯ãvarãŽæĨé čžãæĨå°žčžããããŗäģŖæŋããããžãã åŋ ããããå¤æ°äŋŽéŖžåãã§ã¯ãĒãããŽãããã¤ããĒãšãããžãããæ°ããéįēč ã¯ããããããŽãããĢčĻãå¯čŊæ§ããããžã
onready
ã export(...)
onready
ã¯åŽčĄæå¤æ°ãŽããŧããĢåŊąéŋããžãã export
ã¯ä¸į¨ŽãŽã¨ããŖãŋãŧããŗã/ãĄãŋããŧãŋã§ãã ããããåãå ´æã§äŊŋį¨ãããã¨ã¯ãåŽéãĢã¯ããã§ã¯ãĒããŽãĢãåŊŧããŽčĄåã¯äŊãããŽåŊĸã§éĸéŖããĻãããšãã ã¨æããžãclass_name
ã extends
ã signal
ã enum
ã const
ã func
setget
export
ãĢäŧŧãĻããžãã ããã§ã¯æčĻãŽéãäēēãããžããvar x : int = 5
å
Ĩåããconst
ã¯ãã˛ãŧã ãã¸ãã¯čĒäŊãŽããŧãĢãããéįēč
ãŽã¨ã¯ãšããĒã¨ãŗãšãå¤æ´ããã¨ããįšã§ãsetgetãĢäŧŧãĻããã¨ããč°čĢã¯ééããããžãããããã§ã¯ãæŗ¨éãŽčŋŊå ãčĻãĻãŋãžãããã
æŗ¨éã¯ãæ°ããéįēč ãĢæããåŋ čĻããããžãŖããæ°ããæĻåŋĩ/ã¤ããŖãĒã ãĢãĒããžãã įæŗįãĢã¯ãæ°ããéįēč ã¯ãæ°ããã¤ããŖãĒã ãåŊšįĢã¤ãããĢãĒãŖãã¨ããĢææŠįãĢæžãä¸ãããã¨ãã§ãããããĢã
Tier3-4ããĸãããŧãˇã§ãŗãŽä¸ģčĻãĒãŋãŧã˛ããã§ãããããĢæããžãã 2ã¤ãŽį°ãĒãåŽčŖ ãŽãããĢįåžãĢä¸ãã2ã¤ãŽã¨ãŦããŧãŋãŧãããããããžãã
į§ã¯å¤ããŽéįēč
ãĢGodotãæããĻããžããããæŗ¨éãäģãããĢã¯å°ãĒãã¨ãTier 3ãĒããˇã§ãŗãå¤ããĻãTier 4ãäŊŋį¨ããã¨æããžããæŗ¨éã襨į¤ēããããžã§ã @
č¨åˇã襨į¤ēããåŋ
čĻã¯ãããžãããå
¨äŊįã§ããĒãč¤éãĒã˛ãŧã ãæ§į¯ããããŽãããģãšãæšåãããã¨ããĻã
ã¤ãžããããããĨãĄãŗããåŋ čĻãĒ大čĻæ¨ĄãĒããã¸ã§ã¯ããæ§į¯ããããĸãããŧãˇã§ãŗãåĻãļãã¨äēēã ãĢäŧãããŽã¯į°ĄåãĒãŽã§ãã˛ãŧã ãŽæŠčŊãĢã¨ãŖãĻéčĻã§ã¯ãĒã/äģŖæŋãŽåŽčŖ ãããããžãã¯į´į˛ãĢãããĨãĄãŗãį¨ãŽéįēįĨč¨å°į¨ãŽãĸãããŧãˇã§ãŗãäŊŋį¨ãããã¨ãĢį§ãŽæčĻããããžãã
ãšãŦãããããŽįšåŽãŽãã¤ãŗãīŧ
_ready
ã§éå§ãããã¨ããå§ãããã¨ãã§ããããšãããããĸãããŧãˇã§ãŗãŽå¯čŊæ§ã¯onready
æ¸ãåæ°ãã¯ãããĢå°ãĒããã¨ãæåŗãããããåŋ
čĻãããžããã@type(const int)
@type(enum)
ãããã¯ãããããšãĻãéįēč
æåãŽį įŗã¨ããĻįĩąåããžãįš°ãčŋããĢãĒããžããã大ããĒč˛ĸįŽã§ã¯ãããžããããæŗ¨éãŽä¸ã§ãŠãŽæŠčŊãå æŦããåŋ čĻãããããčããã¨ããŽčãã§ãã ãããã¯į´ æ´ããããĸã¤ããĸã ã¨æããžããããŠããĢåãžããŽãæŖįĸēãĢã¯ããããžãããéˇããĢã¤ããĻįŗãč¨ŗãããžããããį§ã¯ãã¤ãå°ãåéˇãããžãã
į§ã¯ãããåĢãã§ãã
ããšãĻãŽããŖãŧãĢãããããããŖããĄãŊãããĢ大éãŽãĸãããŧãˇã§ãŗãäģããããããžãã
ããŖã¨ããŧã¯ãŧããæŦ˛ãã
大éãŽããŧã¯ãŧããæ°ãĢå ĨããĒãå ´åã¯ãä¸é¨ãåé¤ã§ããžã
export MyClass : Node2D # export replaces class_name, : replaces extends
signal mySignal #signal is kept
group(MyHeader, "res://icon.png" )
export var my_property : Array(int) setget _set_my_property, _get_my_property # : replaces export type
var test = 0 # no need for onready. variables declared outside of _ready automatically try to be onready vars
#others are kept
į§ã¯å ãŽææĄãĢåŽå ¨ãĢåæããžãã
į§ã¯ä¸č¨ãŽãŗãĄãŗããĢåæããžããããéˇæã¯įæãå¤§åš ãĢä¸åãŖãĻããžãã
@ Shadowblitz16ããããŽææĄãŽå¤ãã¯ãæŦĄãŽįįąã§ããããŽäēēã ãæˇˇäšąãããĻããžã...
export MyClass : Node2D # export replaces class_name, : replaces extends
export
ã class_name
ã :
ããããŗextends
ãããã4ã¤ãŽåŽå
¨ãĢåĨåãŽããŧãŋãã¤ãŗãã¨ãˇãšãã ãæ§æããžãã äģãŽããŽãĢå垊ä¸čŊãĒåŊąéŋãä¸ãããã¨ãĒããåãĢããããåãæŋãããã¨ã¯ã§ããžããã
export
ã¯ãã¨ããŖãŋãŧGUIãæ§į¯ãããããĢã¤ãŗãšãã¯ãŋãŧãĢéäŋĄãããįæãããPropertyInfoãĒãã¸ã§ã¯ããæ§æããžããclass_name
ã¯ããšã¯ãĒãããã°ããŧããĢã¯ãŠãšã¨ããĻScriptServerãĢįģé˛ããžãã æčĄįãĢã¯åãˇãšãã ã¨ã¯äŊãŽéĸäŋããããžããã ããã¯ãåŽčĄæã§ã¯ãĒãč§ŖææãĢãšã¯ãĒãããŽã°ããŧããĢã¤ãŗãšãŋãŗãšãäŊæããå ´åãĢéããGDScriptãŽãéįåäģãããŽä¸é¨ã§ãã:
ã¯ããĒããˇã§ãŗãŽåããŗããĢäŊŋį¨ããextends
ã¯ãįļæŋãããã¯ãŠãšãĢäŊŋį¨ãããžãīŧãåįĨãŽã¨ããīŧã ããã¯äģãŽč¨čĒã§ã¯ããĒãä¸čŦįãĒæ§æã§ãããããšãĻãŽãããĨãĄãŗãã¨ããĨãŧããĒãĸãĢã¯ãã§ãĢããŽæšæŗãĢåžãŖãĻããžãã ããããéĸããĻãį´į˛ãĢ襨éĸįãĒįįąã§ããå¤ããŽäŊåãäŊæããåŧˇãã¤ãŗãģãŗããŖãã¯ãããžãããgroup(MyHeader, "res://icon.png")
ãããäŊããããŽãį§ãĢã¯ããããžããã ã¤ãžããããŧãã¯ãMyHeaderãã°ãĢãŧããĢčŋŊå ãããããã§ãīŧããã¯įãĢããĒãŖãĻããå¯čŊæ§ããããžãīŧãããĸã¤ãŗãŗã¯äŊã§ããīŧ ã°ãĢãŧããĢã¯ãĸã¤ãŗãŗãéĸéŖäģããããĻããžããã
export var my_property : Array(int) setget _set_my_property, _get_my_property # : replaces export type
åãĢčŋ°ãšããããĢããããã¯ããšãĻãåããˇãšãã ã§ã¯ãĒããį°ãĒããˇãšãã ãĢåŊąéŋãåãŧããžãã ãããĢãå¤ãŽãŋã¤ããžãã¯ããŽåæåãæčģãĢãããå ´åããããžãã ãã¨ãã°ãåįGDScriptã§ã¯ãæŦĄãŽãããĒãã¨ãã§ããžãã
onready export(NodePath) var the_node = get_node(the_node)
var test = 0 # no need for onready. variables declared outside of _ready automatically try to be onready vars
æēååŽäēéįĨãŽåãĢããŧãŋãåæåããĻãæåŗããããžããã ãšã¯ãĒããã¯ãNodeã¯ãŠãšã§ã¯ãĒããObjectã¯ãŠãšãĢéĸéŖäģããããĻããžãã ãšã¯ãĒãããŽãããããŖã¯ãæ§į¯ä¸ãĢåæåãããžãã Nodeã¯ãŠãšãŽãŗãŗãšããŠã¯ãŋãŧãĢå°éããĻããããã¯å¤ãããžããã _ready()
éįĨã¯ãã¤ãŗãšãŋãŗãšåãŽããĒãåžãĢįēįããžãã å¤æ°ãŽåæåãŽãããŠãĢããŽãŋã¤ããŗã°ããĒãã¸ã§ã¯ãã¨ããŧãéã§į°ãĒãã¨ãé常ãĢæˇˇäšąããGodotãåĻįŋããĻäŊŋį¨ããäēēãĢã¨ãŖãĻã¯å¤ããŽäēæ¸Ŧã§ããĒãåäŊãĢã¤ãĒãããžãã
į§ã¯ããĒããŽææĄãæãĄåãã¤ããã¯ãããžãããããããäēēã ãããããŽææĄãããå¤æ´ãŽæŖåŊæ§ãčĻãĻããĒãįįąãčĒŦæããã ãã§ãã
@willnationsdevããŽå¤§ä¸å¤Ģį§ã¯įč§ŖããĻããžã
æŗ¨éã¨čŋŊå ãŽããŧã¯ãŧããŽä¸ĄæšãčĄããŽã¯ãŠãã§ãã
ããŽãããĢããĻããĻãŧãļãŧã¯åŋ
čĻãĢåŋããĻæŗ¨éãäŊŋį¨ã§ããããŖãŧãĢããã¨ãĢæ°åãŽæŗ¨éãäģããããĒãå ´åã¯ããŧã¯ãŧããäŊŋį¨ã§ããžãã
įˇ¨éīŧCīŧããããŽãããĢįĩãŋåããããã¨ãã§ããåąæ§ã¨ããĻæŗ¨æããĻãã ããã
[Attribute1(), Attribute2()]
ãã ããããã¯čĄæ°ãæ¸ãããŽãĢåŊšįĢã¤ãããããžããããããã§ãå°ãéãã§ã
@ Shadowblitz16å¯čŊã§ããã°ãįŠäēãčĄããããŽæįŊãĒæšæŗã1ã¤ã ããĢãããã 2ã¤ãŽį°ãĒãæ§æãæã¤ãã¨ã¯ãããŽįŽæ¨ãĢåããžãã
@Calinouäēēã
ãåĻĨåã§ããĒããŽã§ããã°ãgdscriptã¯ããŽãžãžãĢããĻãããšãã ã¨æããžãã
1-ä¸äŊäēææ§ãä¸åŋ
čĻãĢåŖããžã
2-ããã¯ãã大ããĒããĄã¤ãĢã¨čĒãŋãĢãããŗãŧããäŊæããžã
3-ããã¯äēēã
ãĢåŊŧããæ
ŖããĻããĒãæ°ãããˇãšãã ã¸ãŽå¤æ´ãåŧˇåļããžãã
4-ããã¯äēēã
ãĢåŊŧããæãžãĒããããããĒããˇãšãã ãäŊŋį¨ãããã¨ãåŧˇåļããžã
1-ä¸äŊäēææ§ãä¸åŋ čĻãĢåŖããžã
2-ããã¯ãã大ããĒããĄã¤ãĢã¨čĒãŋãĢãããŗãŧããäŊæããžã
3-ããã¯äēēã ãĢåŊŧããæ ŖããĻããĒãæ°ãããˇãšãã ã¸ãŽå¤æ´ãåŧˇåļããžãã
4-ããã¯äēēã ãĢåŊŧããæãžãĒããããããĒããˇãšãã ãäŊŋį¨ãããã¨ãåŧˇåļããžã
æŖį´ãĒã¨ããããããã¯ããĒãæĒãč°čĢã§ãã ããããŽ4ã¤ãŽãã¤ãŗããŽããĄ3ã¤ã¯ãAPIãŽå¤§ããĒå¤æ´ãĢåēæãŽããŽã§ãããæåãŽãã¤ãŗãã¯ãå¤ãããŧã¯ãŧãããŧãšãŽãˇãšãã ã¨ãŽäēææ§ããã°ããįļæãããã¨ã§åéŋã§ããžãīŧéæ¨åĨ¨ãŽčĻåãããå¯čŊæ§ããããžãīŧã
_įˇ¨éīŧį§ãæ¨æ¸ŦããčĒåå¤æããŧãĢãæäžãããã¨ãã§ããžãã_
ãã¤ãŗã2ãĢã¤ããĻã¯ããĸãããŧãˇã§ãŗãããå¤ããŽčĄãåĢãããĄã¤ãĢãĢã¤ãĒããå¯čŊæ§ãããã¨ããäēåŽãĢčĒ°ããåæããã¨æããžããããããŽãģã¨ããŠãŽäēēã¯ããããčĒãŋãĢãããŗãŧããäŊæããã¨ããäēåŽãĢåæããžããã
@groudããã¯ä¸čĻãĒããŽãĢãĸãããŧãˇã§ãŗãäŊŋį¨ããĻããžã
1-æŠčŊããããŽãéæ¨åĨ¨ãĢããåŋ
čĻããããŽã¯ãĒãã§ããīŧ
2-ããŖãŧãĢãã襨į¤ēãããããĢ5čĄä¸ãĢãšã¯ããŧãĢããåŋ
čĻãããå ´åã¯čĒãŋãĢãããĒããžã
ãŠãĄããæŗ¨éãĢã¯éŠããĻããžãã
ãĄãŗããŧåŽįžŠã¯ããããč¯ããã¨ãį§ãæŦåŊãĢčĻããã¨ãã§ããå¯ä¸ãŽããŽã§ãããããŽå ´åããããã¯æããããåŋ čĻããããžãã
@groudããã¯ä¸čĻãĒããŽãĢãĸãããŧãˇã§ãŗãäŊŋį¨ããĻããžã
ããŽãšãŦããã§ã¯ãå¤ããŽãĻãŧãšãąãŧãšãæį¤ēãããĻããžãã ãããĨãĄãŗããã¤ãŗãããšãã¯ãˇã§ãŗãããč¤éãĒããŠã°ã¤ãŗãĒãŠãããŧã¯ãŧãã§ãĢããŧã§ããĒããĸãããŧãˇã§ãŗãŽãĻãŧãšãąãŧãšã¯ãããããããžãã
1-æŠčŊããããŽãéæ¨åĨ¨ãĢããåŋ čĻããããŽã¯ãĒãã§ããīŧ
ããŽãããĒãã¨ãããįįąã¯ãããããããžãã ããã¯ãĒãŧãŗãĒAPIãæčģæ§ãĒãŠãåŽįžãããããĢãæŠčŊãé˛åãããåŋ čĻããããããããžãããæ°ããããŧã¸ã§ãŗãåēãäŊŋį¨ãããããå¯čŊãĒå ´åã¯äģĨåãŽããŧã¸ã§ãŗã¨ãŽäēææ§ãåé¤ãããã¨ããå§ãããžãããããĢã¯ééããĒããĄãŗãããŗãšãŗãšãããããããã§ãã
2-ããŖãŧãĢãã襨į¤ēãããããĢ5čĄä¸ãĢãšã¯ããŧãĢããåŋ čĻãããå ´åã¯čĒãŋãĢãããĒããžã
čĒåŧĩããåŋ čĻã¯ãããžããã ããŽãããĒææĄãč°čĢããįŽįã¯ãããŽãããĒåéĄãåéŋãããŽãĢååãšããŧããĒæ§æãå¯čŊãĢãããã¨ã§ãã į§čĻã§ãããã¨ã¯ãšããŧããŽããŗãã¯ãã¨ã¯ãšããŧããŽæŗ¨éã¸ãŽåŧæ°ã¨ããĻįĩąåã§ããžãīŧååäģããŽåŧæ°ãˇãšãã ãããã°īŧã ããŽãããĒįļæŗã§ã¯ããˇãšãã ã¯äģĨåããããããĢå°ãĒããšããŧãšã§æ¸ãŋãžãã
ãžããããŖãŧãĢãã¨åãčĄãĢæŗ¨éããããã¨ãæŗåã§ããžãã ããã§åéĄãįēįãããã¨ã¯ãĒãã¨æããžãã
ã¨ã¯ãšããŧãã¯åēæŦįãĢįˇ¨éč ã¸ãŽå Ŧéããŧã¯ãŧãã§ã
onreadyã¯åēæŦįãĢããšã¯ãĒãããåŽčĄãããåãŽvaråŽŖč¨ã§ãã
ãŠãĄããæŗ¨éãĢã¯éŠããĻããžãã
ããĻãããĒãã¯ããããæŗ¨éãäŊãŽãããĢãããŽããĢã¤ããĻå å ĨčĻŗãæãŖãĻããã§ãããã ããããŽãĻãŧãšãąãŧãšã¯æŗ¨éãˇãšãã ãĢåŽå ¨ãĢéŠåããĻããã¨æããžãīŧãããĻå¤ããŽäēēãããããĻãããããĢčĻããžãīŧã ããããįĸēããĢãį§ã¯ãããããŽįļæŗããąãŧãšãã¤ãąãŧãšã§č°čĢããããšãã ã¨æããžãã
ãįˇããŽč°čĢãįšãĢč¯ãã¨ã¯æããĒãã æŗ¨éã§1čĄãĢč¤æ°ãŽãšããŧããĄãŗãīŧãžãã¯ãããŦããŖãã¯ãšãããŠãŧã īŧãį´æĨ訹å¯ããĒãå ´åã§ããåēåãæåã¨ããĻ;
ãäŊŋį¨ã§ããžãã
<strong i="7">@onready</strong> var my_sprite = $Sprite
@onready; var my_sprite = $Sprite
@export_hint_string("Attack,Defense")
@export_hint(ENUM) export var my_enum : int = 0
@export_hint_string("Attack,Defense")
@export_hint(ENUM); export var my_enum : int = 0
<strong i="8">@export_hint_string</strong> "Attack,Defense";
<strong i="9">@export_hint</strong> ENUM export var my_enum : int = 0
<strong i="10">@export_hint_string</strong> "Attack,Defense"
<strong i="11">@export_hint</strong> ENUM; export var my_enum : int = 0
<strong i="12">@export</strong> type=String hint=MULTILINE; var my_text = ""
# more options
@export(type = String, hint = MULTILINE) var my_text = ""
@export(type = String, hint = MULTILINE); var my_text = ""
@export(String, hint = MULTILINE) var my_text = ""
# I personally prefer this one (positional and named args supported, default/optional args too)
@export(String, MULTILINE) var my_text = ""
@export(String, hint = MULTILINE) var my_text = ""
@export(type = String, hint = MULTILINE) var my_text = ""
@export(int, ENUM, "Attack,Defense") var my_enum:= 0
įˇ¨éīŧãããį§ã¯é ãããžããã @ groudã¯ãã§ãĢčĄãŽč°čĢãĢåãįĩãã§ããžãã ãžããå°ãĒãã¨ãããããŽããã¤ããŽãŗãŧãäžã¯ãããŽãšãŦãããĢäŊããčŋŊå ããžããã
ããã¯ããĒãããĄãŽæčĻã§ãã
åäēēįãĢã¯@ã¯éãã¨æããžã
įˇ¨éīŧ
ã§ã¯ããĄãŗããŧåŽŖč¨ã¯ãŠãŽãããĢæŠčŊããžããīŧ
ãããããã¨ã¯æãããã§ããã
<strong i="10">@description</strong> "Adds two numbers and returns the result."
<strong i="11">@parameter</strong> name=num1 type=float description="The first number"
<strong i="12">@parameter</strong> name=num2 type=float description="The second number"
<strong i="13">@returns</strong> type=float description="num1 and num2 added together"
func add(num1, num2):
return num1 + num2
@description
ãŽæåããfunc
ãŽæåãžã§æãããããã¨ãã§ããĒããŖãå ´åãé¤ããžã
ãĸãããŧãˇã§ãŗã¯ãŋã¤ããįŊŽãæãããã¨ãæåŗããããŽã§ã¯ãĒãã¨æããžãīŧããĒããŽäžãŽãããĢīŧã ãããĨãĄãŗããŽæŗ¨éãåŋ čĻãĒãå ´åã¯ãããããäŊŋį¨ããåŋ čĻã¯ãããžããã
func add(num1: float, num2: float) -> float: return num1 + num2
ããŽæˇˇäšąã¯ãį§ãįĨãéããåŽéãŽåãäŊŋį¨ã§ããĒãã¨ã¯ãšããŧãããŗããŽįæŗįã¨ã¯č¨ããĒãįļæŗãĢčĩˇå ããĻããå¯čŊæ§ããããžãīŧãããĻãéŠããšããã¨ãĢãé åãĒãŠãŽä¸é¨ãŽåãŽãĩããŧããéŠããģãŠã¨ã¯ãšããŧãããã¸ã§ããĒãã¯åããĒãã¨ããåéĄīŧã
åäēēįãĢã¯@ã¯éãã¨æããžã
ã§ã¯ããĄãŗããŧåŽŖč¨ã¯ãŠãŽãããĢæŠčŊããžããīŧ
ãããããã¨ã¯æãããã§ããã
äģãŽč¨čĒã§ã¯ãããŽįŽįã¯é常ãæŗ¨éã§ã¯ãĒããŗãĄãŗããæäžããé常ãææĄãããããŽã¨åįãããäģĨä¸ãĢåéˇã§ãã Cč¨čĒããĄããĒãŧīŧæãäēēæ°ãŽããč¨čĒīŧã§ã¯ã @
ã¯ãĸãããŧãˇã§ãŗãĢããĒãä¸čŦįã§ãīŧãã¨ãã°ãJavaãJavaScriptãTypeScriptãScalaããããĻį§ãPythonãčĒãã ããŽãããīŧã
TypeScriptīŧãããĨãĄãŗããŽåã¯åŋ é ã§ã¯ãĒããããŧãĢã¯åŽéãŽåãäŊŋį¨ã§ããã¨æããžãīŧīŧ
/** Adds two numbers and returns the result.
* <strong i="16">@param</strong> num1 {float} The first number
* <strong i="17">@param</strong> num2 {float} The second number
* <strong i="18">@return</strong> {float} num1 and num2 added together
**/
const add = (num1: number, num2: number): number => num1 + num2;
ããĄãŗã¯ãŽãããĒåŗīŧ
@description("Adds two numbers and returns the result.")
@parameter(num1, "The first number", type=float)
@parameter(num2, "The second number", type=float)
@returns("num1 and num2 added together", type=float)
func add(num1: float, num2: float) -> float:
return num1 + num2
éč¤ãŋã¤ããĒãīŧ
@description("Adds two numbers and returns the result.")
@parameter(num1, "The first number")
@parameter(num2, "The second number")
@returns("num1 and num2 added together")
func add(num1: float, num2: float) -> float:
return num1 + num2
ããŦãŗãŦãšããŦãŧããŧīŧ
<strong i="28">@description</strong> "Adds two numbers and returns the result."
<strong i="29">@parameter</strong> num1 "The first number"
<strong i="30">@parameter</strong> num2 "The second number"
<strong i="31">@returns</strong> "num1 and num2 added together"
func add(num1: float, num2: float) -> float:
return num1 + num2
į§ã¯ããŽæ§æããããĨãĄãŗããŗãĄãŗããĢæéŠã§ãã ãããĨãĄãŗãäģĨå¤ãŽãĸãããŧãˇã§ãŗãĢã¯funcãŽãããĒæ§æãäŊŋį¨ããããŽã§ããããĨãĄãŗãåãŽįŽįã§ãĸãããŧãˇã§ãŗãäŊŋį¨ãããã¨ãĢã¤ããĻã¯ãžã įĸēäŋĄãæãĻãžããã
åãŽäžãŽæŗ¨éåãäŊŋį¨ããžããã @parameter
ã¯äģãŽč¨čĒã¨åããããĢåį´ãĢ@param
ã @description
ã¯@desc
ã @descr
ãžãã¯@func
ã
GodoDocã§ã¯ãTypeScriptīŧããčĒäŊã¯JSDocã¨JavadocãĢåēãĨãTypeDocīŧãĢåēãĨãæ§æãäŊŋį¨ããĻããžãããį§ãŽæčĻã§ã¯ãé常ãĢããžãæŠčŊããĻããããã§ãã
## Same as [[bool_]], but `on_false`/`on_true` are functions.
## Only selected function will be called and its return value will be returned from `bool_lazy`.
## <strong i="44">@typeparam</strong> T {any} Return type
## <strong i="45">@param</strong> cond {bool} Condition
## <strong i="46">@param</strong> on_false {FuncLike<T>} Function to call and return its result when `cond` is `false`
## <strong i="47">@param</strong> on_true {FuncLike<T>} Function to call and return its result when `cond` is `true`
## <strong i="48">@return</strong> {T}
func bool_lazy_(cond: bool, on_false, on_true): return GGI.bool_lazy_(cond, on_false, on_true)
var bool_lazy = funcref(self, "bool_lazy_")
@descriptionãŽå é ããfuncãŽå é ãžã§
ã¯ããä¸čŦįãĢæãįŗãŋã¨ãããŠãĢããŽæãįŗãŋãŽãĒããˇã§ãŗã¯ã¨ããŖãŋãŧã¸ãŽį´ æ´ãããčŋŊå ã§ãīŧãã¨ãã°ãå é¨ã¯ãŠãšããããŠãĢãã§æããããžããč¨åŽã§æåšãĢã§ãããĒãŠããããã¯ãŽãŋã¤ããĢåēãĨããĻæãįŗãŋãžãīŧã
æŗ¨éãåãžãã¯ä¸ãĢé
įŊŽããæŠčŊãåĨŊãã§ããããŽããã @annotation(a, b)
ã¯äžŋåŠã§ãããŠãĄãŧãŋãæåŽãããĻããĒãå ´åã¯č§ããŖãã¯ãĒããˇã§ãŗã§ãã export
ã¨onready
ããããããŖã§é常ãĢä¸čŦįã§ãããã¨ãčããã¨ãåãĢįŊŽããã¨ãã§ãããŽã§ãäģæĨãŽããŧã¯ãŧãã¨åãéåēĻã§æ¸ããã¨ãã§ããžãã
ãã ããäŊŋį¨æŗãĢéĸããĻã¯ããããĨãĄãŗããåĢãã§ãã į§ã¯ããã°ãŠã ãĢåŊąéŋãä¸ããæŗ¨éãĢæ
ŖããĻããžããīŧéæĨįã§ããŖãĻãīŧããããĨãĄãŗãã¯ãŗãĄãŗããŽãããĢäŊŋį¨ãããããĢããŽéã3åãĢãããã¨ãå¤ããããŽåžãŠããĢã§ã襨į¤ēãããæŠčŊįãĒæŗ¨éã¨åããããĢåŧˇčĒŋ襨į¤ēãããžã...ããã¯äŊããĢéŠåããžããããŽãĻãããŋãšã åēæŦįãĢãį§ã¯Cīŧã§čĻããããŽã¨åãæŗ¨éãŽäŊŋį¨æŗãåĨŊãã§ãããããĢããããĄãŗããŧãŽä¸ãĢæŗ¨éãæ¸ãčžŧãåŋ
čĻãã¯ãããĢå°ãĒããĒããžãīŧé常ãæŗ¨éã¯é常ãĢãžãã§ãããããã¤ããŽäžãį¤ēããããĢãå
¨åĄã5čĄãæ¸ãčžŧãåŋ
čĻã¯ãããžããīŧã ã č°čĢããšã¯ãĒãããããĨãĄãŗããæåŽãããããŽAPIãæããĒãGodotãĢéĸããããŽã§ããå ´åãããã¯åéĄã§ãããæŗ¨éIMOã ãã§č§Ŗæąēãããã¨ã¯ã§ããžããã å°ãĒãã¨ããããããĒããˇã§ãŗã§äŊŋį¨ã§ããã¨æããžãããããŽãããĢåŧˇåļããããã¯ãããžãããããã¯ãæŦæ ŧįãĒãããĨãĄãŗããĢã¯ä¸äžŋã§ãã īŧãããĢããšã¯ãĒããã¯GDScriptã ãã§ã¯ãĒãã _get_property_list
ãäŊŋį¨ããã¨ãã¸ãąãŧãšã¯ããããããĢåäģãĢããžãīŧ
į§ã¯ããĒããŽZylannãĢåŽå ¨ãĢåæããã¨æããžãã į§ã¯åäēēįãĢãããŧã¯ãŧããŽãããĒã¨ã¯ãšããŧãīŧãžãã¯ãĒãŗãŦããŖīŧãŽãããĢããŽãããĒæ§æã訹å¯ããžãīŧ
# No parenthesis when there are no parameters
<strong i="6">@export</strong> var myvar
# With parenthesis for parameters
@export(ENUM, "Up,Down,Left,Right") var myvar2
# Being able to write the annoation on the line before
@export(ENUM, "Up,Down,Left,Right")
var myvar2
ãããĨãĄãŗããŽé¨åãĢéĸããĻã¯ãæ§æããããĢåį´åããžãīŧ @mnnãŽäžã
<strong i="11">@description</strong> "Adds two numbers and returns the result."
<strong i="12">@parameter</strong> "The first number" # No need to name the args if they are ordered
<strong i="13">@parameter</strong> "The second number"
<strong i="14">@returns</strong> "num1 and num2 added together"
func add(num1: float, num2: float) -> float:
return num1 + num2
ãã ãããããĨãĄãŗããäģãŽå ´æãĢæ¸ãčžŧããã¨ãã§ãããããĢãåĨãŽãˇãšãã ãéįēãããã¨ãåŋ é ã§ãããã¨ãĢåæããžãã jsonã§ã¯ãXMLãžãã¯æåãŽããĄã¤ãĢã¨č¨ããžãã ãŗãŧãå ãŽãããĨãĄãŗãã¯ããšãĻãŽããã¸ã§ã¯ããĢéŠåããããã§ã¯ãããžããããããĨãĄãŗããŽããã ããĢå¤ããŽæŗ¨éãčŋŊå ããã¨ãį ŠããããĒããå ´åãĢããŖãĻã¯ãŗãŧããčĒãŋãĢãããĒãå¯čŊæ§ããããã¨ãĢåæããžãã
éĸéŖæ§ãŽãããŽãĒãŗã¯īŧgodotengine / godot-proposalsīŧ177
ããŧããŖãŧãĢã¯ããĒãé ããžããããããŠã°ã¤ãŗãŽéįēãĢãĄãŋããŧãŋã¨ãĒããŦã¯ãˇã§ãŗãĢ大ããäžåããĻããéįēč ã¨ããĻããĸãããŧãˇã§ãŗãgodotãŽããŽãĢãĒããã¨ãæŦåŊãĢæãã§ããžãã
ããã¤ããŽããŽīŧã¨ã¯ãšããŧãããĒãŗãŦããŖãŽããŽãĒãŠīŧãããįžãããĒãã¨æããžãããį§ãŽä¸ģãĒč°čĢã¯ãæŗ¨éãæ大éãĢæ´ģį¨ã§ãããĢãšãŋã ããŠã°ã¤ãŗãĢã¤ããĻã§ãã
onready
ããŧã¯ãŧãã¨ããŽåļéãĢã¤ããĻã
ãģã¨ããŠãŽäēēã¯ãããŧãåį
§ãæŠãæŽĩéã§åæåãããããĢonready
ãäŊŋį¨ããĻããã¨č¨ãŖãĻãéč¨ã§ã¯ãããžããã _ready
äžåããããã¤ããŽãˇãŧãŗãã¤ãŗãšãŋãŗãšåããã¨ã null
åį
§ãŽåéĄãĢééããå¯čŊæ§ããããããéˇæįãĢã¯åéĄããĒããã°åŽįžã§ããĒãå¯čŊæ§ããããã¨ãé¤ããĻīŧ
func explode():
var bomb = preload("res://explosion.tscn").instance()
# Oops, forgot to `add_child(bomb)` earlier
bomb.fuse.wait_time = 5.0 # ERROR: fuse is `null`
add_child(bomb)
# ... because `fuse` is a $Timer node
# which is only initialized once added to the scene tree.
ããĄããã fuse
ãč¨åŽããåãĢãã¤ãŗãšãŋãŗãšåããããˇãŧãŗãadd_child()
ããåŋ
čĻããããžããããˇãŧãŗããˇãŧãŗããĒãŧãĢčŋŊå ãããåãĢãäģãŽããŧã/ãĒãã¸ã§ã¯ããæŖįĸēãĒããĨãŧãēãčĒčããåŋ
čĻãããå ´åã¯ãŠãã§ããããã īŧ
ãã°ããããĻã httpsīŧ //github.com/godotengine/godot/issues/33620#issuecomment-559999681ã§čĒŦæãããĻããč§ŖæąēįãčĻã¤ããžããã ãæ°ãĨããããããžãããã onready
ã¯NOTIFICATION_READY
ãåŽéãĢåŋ
čĻãĒãŽã¯NOTIFICATION_INSTANCED
ã§ãåį
§ããããĢæŠãåæåããžãã å¯ä¸ãŽåéĄã¯ã oninstanced
ããŧã¯ãŧãããĒããã¨ã§ãããããĻãį§ãäŊãĢã¤ãĒããŖãĻãããŽãįč§Ŗã§ããã¨æããžãã đ
ããããŖãĻããšã¯ãĒããč¨čĒãčĨ大åããããã¨ãĒãã @oninstanced
æŠčŊãåããäģãŽããã¤ããŽãŗãŧããŧãąãŧãšīŧãã¤ããŽãããĢīŧīŧããĩããŧãããĒããã onready
ããŧã¯ãŧããæŗ¨éã¨ããĻåŽéãĢäŊãį´ããŽã¯č¯ããã¨ã ã¨æããžãããããŗåæåãĢéĸéŖããäģãŽéįĨãŽãĩããŧããčŋŊå ããžãīŧ _init
ã _enter_tree
ãĒãŠīŧã
éĸéŖããææĄīŧgodotengine / godot-proposalsīŧ260ã
ããå ˇäŊįãĒčŠŗį´°ãåĢãææĄãéããžããīŧ https īŧ
ä¸č¨ãŽææĄãĢåãŖãĻäģŖããããžããã
æãåčãĢãĒããŗãĄãŗã
ãģã¨ããŠãŽīŧããšãĻã§ã¯ãĒããĢããĻãīŧGDScriptæ§æãŽå¤æ´ã¯ãå¤ããŗãŧãã¨äēææ§ããããžãã ä¸ģãĒįŽæ¨ã¯ãGDScriptãäŊŋį¨ããéįēč ãŽįįŖæ§ãåä¸ããããã¨ã§ããäžīŧ
match
ãšããŧããĄãŗãã¯ãswitch-caseãšããŧããĄãŗãīŧé常ãĢčĻæąãããīŧãå¯čŊãĢããäēēã ãé åã¨čžæ¸ãį°ĄåãĢį §åã§ãããããĢãããã¨ã§ãããããããĢæšåããžããonready
å¤æ°īŧ2.xã§æ°ããčŋŊå ãããīŧã¯ãé ģįšãĢäŊŋį¨ãããããŋãŧãŗãå ˇäŊåããžããã¤ãžãã_ready
å¤æ°ãåæåããžããããã¯ãĒãŧããŗãŗããĨãããŖã§ãã ã˛ãŧã éįēč ã¯ãããĒãã¨åããããĢãæĨãĻæčĻã襨æãããã¨ãæčŋããžãã ããããĢããããĸãããŧãˇã§ãŗãįžåŽãĢãĒããžã§ãĢã¯ããĒããŽæéãããããžãã
ãã§ãĢååãĢč¯ããã°ãæŠčŊãĒã¯ã¨ãšããåãåããã¨ã¯ã§ããžããã
æ§æã¯ãžã åŽæããĻããžããã
onready
ãããŗexport
ããŧã¯ãŧãããããĢįŊŽãæããããĒãå¯čŊæ§ããããžãã