åé¡ã®èª¬æïŒ
å¯å€ååŒæ°é¢æ°ã®ãµããŒããGDScriptã«è¿œå ããŸãã
ããã¯äž»ã«æ§æç³è¡£æ§æã§ããã次ã®ããã«å€æãããŸãã
func f(args):
for x in args:
# Do something with x
f(["these", "are", "some", "arguments"])
ã®äžãžïŒ
func f(args...):
for x in args:
# Do something with x
f("these", "are", "some", "arguments")
ç§ã¯ãããæ£ããç解ããŠããã®ã§ãã«ããŒã®ã¹ãã©ããæŒç®åã®ãããªãã®ã話ããŠãã
åågdscriptã«äœããææ¡ãããšããããã¯ã·ã£ããããŠã³ãããreduzã«ãã£ãŠéåžžã«è¿ éã«åé¿ãããã®ã§ãèŠåã ãã§ãïŒç§ã¯è³æ祚ãæããŠããŸããglïŒïŒ
@ LikeLakers2ç°¡åã«èŠãŠã¿ããšãããã§ãã
@girngãŸãããã¯æ¬åœã«ææ¡ãããæ©èœã«äŸåããããšãé¡ã£ãŠããŸãã æ£çŽãªãšãããããã§ãæã£ãŠããæ¹ãçããããšãã§ããŸãããããã¯ããã€ãã®äžè¬çãªã±ãŒã¹ãå°ãè¯ãããã§ãããã
ããããããªããã®ã¢ã€ãã¢ã¯ç§ã®æ¯æãåŸãŸãã ãã®ã¹ãã©ããæŒç®åã¯ãRubyã§ã¯ããŸãã«ã䟿å©ã§ãã
é«ã¬ãã«ã®ãã«ããã¬ã€ã€ãŒrpc
é¢æ°ã¯ãã§ã«ãããè¡ã£ãŠããŸãã äœããã®æ¹æ³ã§ã¢ã¯ã»ã¹ã§ããæ¹æ³ã¯ãããŸããïŒ
ã·ã³ãã«ãªã«ã¹ã¿ã ãã®ã³ã°æ©èœãå®è£ ã§ããããã«ããããšæããŸãã
ãã§ã«æ¬¡ã®ããšãã§ããŸãã
print("Score: ", score)
ãã ãã次ã®ããšãã§ãããšäŸ¿å©ã§ãã
_log("Score: ", score)
ãã°ã®åºåãçæããå ŽæïŒ
[MyClass] Score: 500
ã·ã³ãã«ãªã«ã¹ã¿ã ãã®ã³ã°æ©èœãå®è£ ã§ããããã«ããããšæããŸãã
ãã§ã«æ¬¡ã®ããšãã§ããŸãã
print("Score: ", score)
ãã ãã次ã®ããšãã§ãããšäŸ¿å©ã§ãã
_log("Score: ", score)
ãã°ã®åºåãçæããå ŽæïŒ
[MyClass] Score: 500
ããã1ã€ãã©ã¹ã§ããŸãã...å°å·ãäžå¿«ã ãšæãã®ã§ãPythonã®ããã«éåžžã©ããã«å°å·ããå°å·é¢æ°ïŒæååãæ°åãªã©ïŒãäœæãããã®ã§ãããä»ã®äººã¯ããã奜ããããããŸãã
ããã¯gdscriptã®æ¬åœã«çŽ æŽãããæ©èœã«ãªããšæããŸãã é åãªãã§è€æ°ã®åŒæ°ãæž¡ãæ©èœããããšãã«ã¹ã¿ã ãã°é¢æ°ã®ãããªå Žåã«éåžžã«åœ¹ç«ã¡ãŸãã
ã²ãŒã ãäœãéããããåé¿ã§ãããšäž»åŒµããããšãã§ããŸããïŒãããŠããªãã¯çµ¶å¯Ÿã«æ£ããã§ãããïŒãããã¯ãå ¬éããããGodotèªäœã®ããŒã«ã¡ãŒã«ãŒã«ãšã£ãŠé©ãã¹ãæçãªæ©èœã§ãããŠãŒã¶ãŒãžã®æè»ãªAPIã
æè¡çã«ã¯ãã¹ãŠãããæå³ã§å ¬éãããŠãããããexposeã¯åŒçšç¬Šã§å²ãŸããŠããŸãã
ãã§ã«varargs
ãªã£ãŠããé¢æ°ãããã®ã§ããã®æ©èœã¯æ¬åœã«å¿
èŠã ãšæããŸããããããããªãŒããŒã©ã€ãããæ¹æ³ã¯ãããŸããã
gdscriptã®å¯å€åŒæ°ã倧奜ãã§ãã æ€èšïŒ
func rpc_game_info(node:Node, method:String, args:vararg):
for id in players:
node.rpc_id(id, method, args)
çŸåšãããå®è£
ããããšãèããããšãã§ããå¯äžã®æ¹æ³ã¯ã rpc_game_info
ãåŒã³åºããããã¹ãŠã®å Žæã«2è¡ãã³ããŒããŠè²Œãä»ããã¡ãœããargsãã³ã³ãåºåãã®ãªã¹ããšããŠæäŸããããšã§ãã
å°ãªããšããé åãå±é/å±é/å±éããæ¹æ³ã¯ãããŸããïŒ èšãæããã°ããã®ãããªãã®ãæ©èœãããæ¹æ³ã¯ãããŸããïŒïŒ
func foo(bar: String, args = []):
baz(bar, ...args)
@rosshadden Object::callv("method", [..args])
䜿çšã§ããŸã
ç§ã¯2012幎ãããŠã§ããµã€ããããã¯ãšã³ããã²ãŒã çšã«ããããã®C / C ++ / Jsã³ãŒããæžããŠããŸããã絶察ååŒæ°ã䜿çšããå¿ èŠããã£ãç¶æ³ãæãåºããŸããã ããã¯ãããã°ã¡ãã»ãŒãžããã°ã«èšé²ããããã®åªããæ©èœã§ããããã以å€ã¯å¿ èŠæ§ãããããŸããã å®éãç§ã¯Godotã²ãŒã ã1幎以äžäœæããŠãããgdscriptãå¿ èŠãªãã¹ãŠãå®è¡ããããšã«éåžžã«æºè¶³ããŠããŸãã èšèªã«è¿œå ã®ãã«ããã€ãã¹ã«ãè¿œå ããããšã«æéãè²»ãã代ããã«ãæ¢åã®æ©èœã®å¹çãæ¹åããããšã«æ祚ããããšæããŸãã ãããããé¡ãããããŸãã-ã¢ã¬ã¯ãµã³ãã«ãã«ã©ã¢ã
ç§ã¯2012幎ãããŠã§ããµã€ããããã¯ãšã³ããã²ãŒã çšã«ããããã®C / C ++ / Jsã³ãŒããæžããŠããŸããã絶察ååŒæ°ã䜿çšããå¿ èŠããã£ãç¶æ³ãæãåºããŸããã ããã¯ãããã°ã¡ãã»ãŒãžããã°ã«èšé²ããããã®åªããæ©èœã§ããããã以å€ã¯å¿ èŠæ§ãããããŸããã å®éãç§ã¯Godotã²ãŒã ã1幎以äžäœæããŠãããgdscriptãå¿ èŠãªãã¹ãŠãå®è¡ããããšã«éåžžã«æºè¶³ããŠããŸãã èšèªã«è¿œå ã®ãã«ããã€ãã¹ã«ãè¿œå ããããšã«æéãè²»ãã代ããã«ãæ¢åã®æ©èœã®å¹çãæ¹åããããšã«æ祚ããããšæããŸãã ãããããé¡ãããããŸãã-ã¢ã¬ã¯ãµã³ãã«ãã«ã©ã¢ã
ããã¯ããããšã§ããããã©ã³ãã£ã¢ãèªåã®èªç±æå¿ã§ãããå®è¡ããå¯èœæ§ãé«ãå Žåãããªãã®æ祚ã¯äœã®æå³ããªããšèšã£ãŠç³ãèš³ãããŸããã
@mitchcurtisè°è«ãããåé¡ã«é¢ä¿ã®ãªãã³ã¡ã³ãã¯æ§ããŠãã ããã ä»äººã軜èŠããããšã¯ãè°è«ã«ç©æ¥µçã«è²¢ç®ããŸããã
å€ãã®äººãããã«ãšãã€ãã¹ã«ããæ±ããŠããæ©èœããä»ã®äººã軜èŠããã®ã§ã¯ãªããã©ã®ããã«åŒãã§ããŸããïŒ ç§ã®ã³ã¡ã³ãã¯ç®åã®åé¡ã«çŽæ¥é¢ä¿ããŠããŸã-ããã¯ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã§ãããã³ãããã®å€ãã¯åœŒããåãçµã¿ãããã®ãéžæããè²¢ç®è ããã®ãã®ã§ãã
æ¯ãè¿ã£ãŠã¿ãŸããããã¢ã¬ã¯ãµã³ãã«ã®ã³ã¡ã³ãã¯è°è«ã«ç©æ¥µçã«è²¢ç®ããŠããŸããïŒ ä»ã®äººãæãã§ããæ©èœã軜èŠããã®ã§ã¯ãªãã圌ãèå³ãæã£ãŠããç¹å®ã®æ©èœãèŠã€ããŠããããµããŒãããããšã圌ã瀺ããã»ããããã£ãã®ã§ã¯ãªãã§ããããã
æ©èœã®å®è£ ã¯ãã誰ããããæãã§ããã®ãããšã誰ããããå®è£ ã§ããã®ããã ãã§ã¯ãããŸããã ãŸããå®éã«æ©èœãå¿ èŠãªãå Žåã¯æ©èœã®å®è£ ãé¿ããå¿ èŠããããããã誰ããããå¿ èŠãªããšèãããïŒããã³ãã®çç±ïŒããç¥ãããšãéèŠã§ãã ãããã¯ã³ãŒãã®ã¡ã³ããã³ã¹ãå°é£ã«ããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããæé©åã®å¯èœæ§ãæžãããªã©ã®å¯èœæ§ããããŸãïŒç¹ã«ã¹ã¯ãªããèšèªã§ïŒã
ããã§ãã @ alexkhã®ãã£ãŒãããã¯ã¯ãåæããªããŠãèå³æ·±ããã®ã§ãã 誰ããææ¥ãã®æ©èœã®å®ç§ãªPRãæã«å ¥ããããšãã§ããŸãããã³ã¢ã®è²¢ç®è ã¯ãæè¡çããã³APIèšèšã®èŠ³ç¹ããããããè¿œå ãã䟡å€ããããã©ãããèããè°è«ããã®ã«ããªãã®æéãè²»ããå¿ èŠããããŸãã
GDScriptã®ç¯å²ãå°ãããä¿å®ããããç¶æ ã«ä¿ã€ããšã¯ãééããªããã®èšèªã®ã³ã¢èšèšååã®1ã€ã§ãã ãã®ç¹å®ã®æ©èœãè¯ãè¿œå ã§ã¯ãªããšèšã£ãŠããããã§ã¯ãããŸããããè³åŠäž¡è«ãæ¯èŒæ€èšããå¿ èŠããããŸããããã¯ãææ¡ã«å察ãã人ã ã®æèŠã«è³ãåŸããããšãæå³ããŸãã
æ©èœã®å®è£ ã¯ãã誰ããããæãã§ããã®ãããšã誰ããããå®è£ ã§ããã®ããã ãã§ã¯ãããŸããã ãŸããå®éã«æ©èœãå¿ èŠãªãå Žåã¯æ©èœã®å®è£ ãé¿ããå¿ èŠããããããã誰ããããå¿ èŠãªããšèãããïŒããã³ãã®çç±ïŒããç¥ãããšãéèŠã§ãã ãããã¯ã³ãŒãã®ã¡ã³ããã³ã¹ãå°é£ã«ããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããæé©åã®å¯èœæ§ãæžãããªã©ã®å¯èœæ§ããããŸãïŒç¹ã«ã¹ã¯ãªããèšèªã§ïŒã
ããã§ãã @ alexkhã®ãã£ãŒãããã¯ã¯ãåæããªããŠãèå³æ·±ããã®ã§ãã 誰ããææ¥ãã®æ©èœã®å®ç§ãªPRãæã«å ¥ããããšãã§ããŸãããã³ã¢ã®è²¢ç®è ã¯ãæè¡çããã³APIèšèšã®èŠ³ç¹ããããããè¿œå ãã䟡å€ããããã©ãããèããè°è«ããã®ã«ããªãã®æéãè²»ããå¿ èŠããããŸãã
GDScriptã®ç¯å²ãå°ãããä¿å®ããããç¶æ ã«ä¿ã€ããšã¯ãééããªããã®èšèªã®ã³ã¢èšèšååã®1ã€ã§ãã ãã®ç¹å®ã®æ©èœãè¯ãè¿œå ã§ã¯ãªããšèšã£ãŠããããã§ã¯ãããŸããããè³åŠäž¡è«ãæ¯èŒæ€èšããå¿ èŠããããŸããããã¯ãææ¡ã«å察ãã人ã ã®æèŠã«è³ãåŸããããšãæå³ããŸãã
ãã§ã¢ãã€ã³ãã
ãã®åé¡ãžã®æ祚æ°ã¯ããèªäœãç©èªã£ãŠãããšæããŸãããä»åŸã¯ãã®ãããªã³ã¡ã³ããæ§ããããã«åªããŸãã
ç§ã¯2012幎ãããŠã§ããµã€ããããã¯ãšã³ããã²ãŒã çšã«ããããã®C / C ++ / Jsã³ãŒããæžããŠããŸããã絶察ååŒæ°ã䜿çšããå¿ èŠããã£ãç¶æ³ãæãåºããŸããã ããã¯ãããã°ã¡ãã»ãŒãžããã°ã«èšé²ããããã®åªããæ©èœã§ããããã以å€ã¯å¿ èŠæ§ãããããŸããã å®éãç§ã¯Godotã²ãŒã ã1幎以äžäœæããŠãããgdscriptãå¿ èŠãªãã¹ãŠãå®è¡ããããšã«éåžžã«æºè¶³ããŠããŸãã èšèªã«è¿œå ã®ãã«ããã€ãã¹ã«ãè¿œå ããããšã«æéãè²»ãã代ããã«ãæ¢åã®æ©èœã®å¹çãæ¹åããããšã«æ祚ããããšæããŸãã ãããããé¡ãããããŸãã-ã¢ã¬ã¯ãµã³ãã«ãã«ã©ã¢ã
ç§ã¯ããŸããŸãªã²ãŒã ãããã°ã©ã ããããŠèªå® ã§15幎以äžããã°ã©ãã³ã°ãè¡ã£ãŠããŸãããgodotã§1ãæããçµã£ãŠããªãã®ã§ãç¹ã«æ©èœãªã¯ãšã¹ããšããŠãã§ã«å ¬éãããŠããããã€ãã®æ©èœãäžè¶³ããŠãããšèšããŸãããã®æ©èœã å¯å€æ°ã®åŒæ°ãåãå ¥ããŠéä¿¡ã§ããããšã¯ãç§ãé »ç¹ã«å¿ èŠãšãããã®ã§ãããåé¿ããå¿ èŠãããå Žåã¯ã³ãŒãã®å質ãåçã«äœäžãããŸãã
äžäŸïŒ=>ç¶æ¿
class A
_init(arg0, arg1, arg2)
class B extends A
_init(arg0, arg1, arg2, arg4).(arg0, arg1, arg2)
ããã§ãã¯ã©ã¹Aã®åŒæ°ãªã¹ããå€æŽããå¿ èŠããããšæ³åããŠãã ããã ãã®ã¯ã©ã¹ãç¶æ¿ãããã¹ãŠã®ã¯ã©ã¹ãèŠã€ããå¿ èŠããããŸãããããã¯å±éºã§ãã ååä»ãã®åŒæ°ããªããšããäºå®ã«ãããããããåŒæ°ãªã¹ããæ··åããããšèªäœã¯åé¡ã§ã¯ãããŸãã
å¥ã®äŸã¯ã³ãŒã«ããã¯ã§ããç§ã¯ãããã³ãŒããªãã§è¡ããšæããŸã...
ã ããç§ã®ãã€ã³ãã¯ïŒgodotã¯ããªãããŸã å¿ èŠãšãããã¹ãŠãããããã§ã¯ãªããéèŠãªããšãã¹ãŠãããã ãã§ãïŒãŸãããããŠãã¡ãããã£ãšããªã:) ...ïŒã ãã ããæ©èœã®è¿œå ãåæ¢ããããšãæåã®ã±ãŒã¹ãšãªãæç¹ã«ã¯ãŸã è³ã£ãŠããŸããã ãã ããäœãè¿œå ãããã«ã€ããŠæ³šæããããšã¯è¯ã決æã§ãã
ç·šéïŒãã1ã€ã®è¯ãäŸãgodotsç¬èªã®Object.callïŒïŒã¡ãœããã§ããããšã«æ°ã¥ããŸãã;ïŒ
DamKoVoshãæããŠãã ãããããªãã®æ倧ã®ã²ãŒã ã¯äœè¡ã®ã³ãŒãã§ãããïŒ ã²ãŒã ãäœããã³ã«ãå¿ èŠãªã³ãŒãã£ã³ã°ãå°ãªãããšã«å€±æããŠããŸãã äœæ¥ã®å€§éšåã¯åžžã«ã³ã³ãã³ãããã¹ããã²ãŒã ãã¬ã€ã®ãã©ã³ã¹ãåãããšã§ãã æžãçŽãã¯å±éºã ãšãã£ããã£ãŠããŸãã ä»ã«äœããªããšããŠããã³ãŒããæžãçŽãããšã§ãå°æ¥ãèŠæ®ããã€ã³ã¿ãŒãã§ãŒã¹ãããŒã¿æ§é ãããäžæã«æžãããšãã§ããŸãã
ãã®ã¹ã¬ããã®æåã®ã¡ãã»ãŒãžã§è¿°ã¹ãããã«ãè°è«å šäœã¯ãå¯å€ååŒæ°é¢æ°ãå®è£ ãã代ããã«é åã䜿çšããŠãã§ã«ç°¡åã«å®è£ ã§ãããã®ã®æ§æç³è¡£ã«ã€ããŠæ£ç¢ºã«èª¬æããŠããŸãã
@alexkh
ãã®ã¹ã¬ããã®æåã®ã¡ãã»ãŒãžã§è¿°ã¹ãããã«ãè°è«å šäœã¯ãå¯å€ååŒæ°é¢æ°ãå®è£ ãã代ããã«é åã䜿çšããŠãã§ã«ç°¡åã«å®è£ ã§ãããã®ã®æ§æç³è¡£ã«ã€ããŠæ£ç¢ºã«èª¬æããŠããŸãã
Geequlimã以åã«è¿°ã¹ãããã«ãããã¯ç³è¡£æ§æã§ããã ãã§ãªãã rpc
ã emit_signal
ãªã©ã®å¯å€åŒæ°ã䜿çšããé¢æ°ããªãŒããŒã©ã€ãããæ©èœãå®éã«å£ããŸã... rpc
ãèªåã®ããŒãºã«åãããŠå€æŽããããšããŸããã
ã¯ããããã¯ã·ã³ã¿ãã¯ã¹ã·ã¥ã¬ãŒã§ãã ãã ããç³è¡£æ§æã§ããããšã¯ãããããè¯ããæªãããæå³ããããã§ã¯ãããŸããã if
ã else
ãããªå¶åŸ¡ãããŒãããã«ã¯é¢æ°ã§ãããå¿
èŠã«å¿ããŠGOTO
äžã«ç ç³ããããã ãã§ãã ããã¯ããªããããããæãŸãªããšããæå³ã§ã¯ãããŸããã
å Žåã«ãã£ãŠã¯ãç³è¡£æ§æãå°ãè¿œå ãããšãã³ãŒããèªã¿ããããªããè€éã«ãã䟡å€ããããŸãã
ãããå®éã«ã¯ãrpcãemit_signalãªã©ã®å¯å€åŒæ°ã䜿çšããé¢æ°ããªãŒããŒã©ã€ãããæ©èœãå£ããŠããŸã
äžæè°ãªããšã«ããããã®é¢æ°ã¯é åã§ã¯ãªãå¯å€åŒæ°ã䜿çšããŸãã ;-) Godot APIèªäœãããŸããŸãªå Žæã§å¯å€åŒæ°ãã©ã®ããã«äœ¿çšããŠãããã«æ³šæããŠãã ããã ããã«ã¯ããããçç±ããããŸãã
ãŸããå¯å€ååŒæ°é¢æ°ãå®è£ ããèšèªãããã€ãããã«ã€ããŠãèå³ããããŸãã ãé åã䜿ã£ãŠç°¡åã«å®è£ ãã§ãããšããŠãã圹ã«ç«ã€ã®ã§ã¯ãªãã§ããããã
GDScriptã䜿çšãããã³ã«ãããããéåžžã«äžè¶³ããŠããŸããããããCïŒã奜ãçç±ã®1ã€ã§ãã ãŸãã¯C ++ã ãŸãã¯Javaã ãŸãã¯Pythonã ãŸãã¯è¡ãã
æ£çŽãªãšãããGDScriptã¯ç§ãåããå¯äžã®èšèªã§ãããGDScriptãæã£ãŠããªããšæããŸãã ãã®äžãå€åãã«ã¢ïŒ ããã調ã¹ãŠã¿ããšãããã«ãååšããŠããããã§ãã ãããã®èšèªãæã€ãã¹ãŠã®ãã®ãGDScriptã«è¿œå ããããšãç®æãã¹ãã ãšèšã£ãŠããããã§ã¯ãããŸããããããããã¹ãŠã«å ±éã®æ©èœãããå Žåã¯ãããã«äŸ¡å€ããã
GDScriptããã¯ãšã³ãã«ã©ãã ãã®è€éããè¿œå ãããããå€æã§ããªããããè€éãã®ãã¬ãŒããªãã«ã€ããŠå€ããèªãããšã¯ã§ããŸãããããåãªãæ§æç³è¡£ãã§ããããã«ããããæžãçããããšã¯ééã£ãŠããŸããå€ãã®ããšã
ç¹°ãè¿ãã«ãªããŸãããGodotã§ãããã䜿çšããŠãããã®ãããã€ãããã«æ³šæããŠãã ããã
ã¯ããããã¯ã·ã³ã¿ãã¯ã¹ã·ã¥ã¬ãŒã§ãã ãã ããç³è¡£æ§æã§ããããšã¯ãããããè¯ããæªãããæå³ããããã§ã¯ãããŸããã
if
ãelse
ãããªå¶åŸ¡ãããŒãããã«ã¯é¢æ°ã§ãããå¿ èŠã«å¿ããŠGOTO
äžã«ç ç³ããããã ãã§ãã ããã¯ããªããããããæãŸãªããšããæå³ã§ã¯ãããŸããã
GOTOã¯ãç¡æ¡ä»¶ã®ãžã£ã³ãã§ããããã眮ãæããããŸããã ããªããããã°ã©ããŒã§ããïŒ
ãããå®éã«ã¯ãrpcãemit_signalãªã©ã®å¯å€åŒæ°ã䜿çšããé¢æ°ããªãŒããŒã©ã€ãããæ©èœãå£ããŠããŸã
幎ã«äžåºŠã誰ããrpcé¢æ°ããªãŒããŒã©ã€ãããããšæãã§ãããã æ¯æ¥äœå人ãã®äººã ãGodot4ã®ãªãªãŒã¹ãæãã§ããŸãã
ãŸããå¯å€ååŒæ°é¢æ°ãå®è£ ããèšèªãããã€ãããã«ã€ããŠãèå³ããããŸãã ãé åã䜿ã£ãŠç°¡åã«å®è£ ãã§ãããšããŠãã圹ã«ç«ã€ã®ã§ã¯ãªãã§ããããã
GDScriptã䜿çšãããã³ã«ãããããéåžžã«äžè¶³ããŠããŸããããããCïŒã奜ãçç±ã®1ã€ã§ãã ãŸãã¯C ++ã ãŸãã¯Javaã ãŸãã¯Pythonã ãŸãã¯è¡ãã
C ++ã«ã¯ãGDscriptã®ããã«ããŸããŸãªåã®å€ãæ ŒçŽã§ããæšæºã®é ååããããŸããã C ++ã¯å¯å€ååŒæ°é¢æ°ããµããŒãããŠããŸãããåãå®å šã§ã¯ãªãããããããã®äœ¿çšã¯ãå§ãããŸããã ããã¯Cã®ã¬ã¬ã·ãŒã§ãããCèªäœã§ã¯æ§æäžã®ç³è¡£æ§æã§ãããããã¯ãç¹ã«ãããã°ã®ããã«printfãé »ç¹ã«äœ¿çšãããããã§ããäžæçãªã³ãŒãããã°ããå ¥åããŠãããŒã¿ãåºåããå¿ èŠããããŸãã ããã¯åžžã«äœ¿çšãããŠããã®ã§ãããã¯å®å šã«æ£åœåãããŸãã-ãªã¢ã«ã¿ã€ã ã®ç¯çŽã«ãªããŸãïŒ ããããCãŸãã¯C ++ã§ç¬èªã®å¯å€ååŒæ°é¢æ°ãèšè¿°ããããšã¯ãããŸããïŒ
ç¹°ãè¿ãã«ãªããŸãããGodotã§ãããã䜿çšããŠãããã®ãããã€ãããã«æ³šæããŠãã ããã
ãããã°åºåçš-ãã²ïŒ ãã ããprintïŒïŒãå¯å€ååŒæ°ã§ãªãå Žåã¯ãprintïŒ "Hello"ã "WorldïŒã®ä»£ããã«printïŒ[" Hello "ã" World "]ïŒãšå ¥åããå¿ èŠããããŸãã倧ããªéãã¯ãããŸãã...
ç¡æ¡ä»¶ãžã£ã³ãã§ãããããGOTOã¯çœ®ãæããããŸãã
ããã§ããã ãã¡ãããæ¡ä»¶ä»ããžã£ã³ãã«ã€ããŠè©±ããŠããŸããã ããã¯...ããããæšæž¬ã§ããŸãã ããã§ããèŠç¹ã¯ãããã€ãã®ããšãããã¯ãªãŒã³ã«äŒããããšãã§ããããã«ãããé«ãã¬ãã«ã®æ©èœãäžã«æ§ç¯ããããšã§ãã
C ++ã«ã¯ãGDscriptã®ããã«ããŸããŸãªåã®å€ãæ ŒçŽã§ããæšæºã®é ååããããŸããã
ããŠãPythonãLuaãGoïŒãŸãã¯ä»ã®èšèªã®ãã¹ãïŒã«å察ããããããæã¡ããŸã å¯å€ååŒæ°é¢æ°ãæã£ãŠãããšäž»åŒµããŸãã
ãã ããprintïŒïŒãå¯å€ååŒæ°ã§ãªãå Žåã¯ãprintïŒ "Hello"ã "WorldïŒã®ä»£ããã«printïŒ[" Hello "ã" World "]ïŒãšå ¥åããå¿ èŠããããŸãã倧ããªéãã¯ãããŸããã
確ãã«ããã®åçŽãªãã¹ãã±ãŒã¹ã§ã¯ã ããè€éãªãã®ã§ã¯ãç¹ã«è€æ°ã®ãœãŒã¹ããã®ããŒã¿ãååŸãå§ããŠãæåã«ããããæåã§é åã«è©°ã蟌ãå¿ èŠããããšãããã¯éããªããŸãã ç§ã¯ããã倧ããªæ倱ã§ã¯ãªãããšã«åæããŸãã ããã§ããå¯å€ååŒæ°é¢æ°ã䜿çšãããšãã³ãŒããããã¯ãªãŒã³ã«ãªãå ŽåããããŸãã
ããã...
ããããCãŸãã¯C ++ã§ç¬èªã®å¯å€ååŒæ°é¢æ°ãèšè¿°ããããšã¯ãããŸããïŒ
ããªããããã°ã©ããŒã§ããïŒ
äžèšã®ããã«ãç§ã¯ããªããèª æãæã£ãŠè°è«ããŠããããã«ã¯æããŸããã ãã®å Žåãç§ã¯ããããªããšè©±ãããšã«ããŸãèå³ããªãã®ã§...ããããç§ã¯è¯ããã¹ã³ãããäœã£ãŠããã®ã§ããšã³ãžã³ã®è²¢ç®è ãšããŠãªã¹ããããŠããŸããå ã«é²ãã§ãã ããã
GOTOã¯ãç¡æ¡ä»¶ã®ãžã£ã³ãã§ããããã眮ãæããããŸããã ããªããããã°ã©ããŒã§ããïŒ
ã»ãšãã©ã®å Žåãæ¡ä»¶ã¹ããŒãã¡ã³ããç¹ã«ã«ãŒãã¯ãç¹æ®ãªãžã£ã³ãã¹ããŒãã¡ã³ãã§ãããgotoã¹ããŒãã¡ã³ããšã»ãšãã©åãã§ããå®éçãªæå³ã§ãæãåºæ¬çãªã·ãŒã±ã³ã¹å¶åŸ¡ã¹ããŒãã¡ã³ãã¯ããã®æ¡åŒµã§ãã ããã¯èªåèªèº«ããµããŒãããããã®æããªè°è«ã§ããïŒå®éã«ã¯è°è«ãè¡ããªãããã圹ã«ç«ããªãã»ãã³ãã£ã¯ã¹ã䞻匵ããã ãã§ãïŒããã®2çªç®ã®éšåã¯ç¡ç€Œã§ãã
C ++ã«ã¯ãGDscriptã®ããã«ããŸããŸãªåã®å€ãæ ŒçŽã§ããæšæºã®é ååããããŸããã C ++ã¯å¯å€ååŒæ°é¢æ°ããµããŒãããŠããŸãããåãå®å šã§ã¯ãªãããããããã®äœ¿çšã¯ãå§ãããŸããã ããã¯Cã®ã¬ã¬ã·ãŒã§ãããCèªäœã§ã¯æ§æäžã®ç³è¡£æ§æã§ãããããã¯ãç¹ã«ãããã°ã®ããã«printfãé »ç¹ã«äœ¿çšãããããã§ããäžæçãªã³ãŒãããã°ããå ¥åããŠãããŒã¿ãåºåããå¿ èŠããããŸãã ããã¯åžžã«äœ¿çšãããŠããã®ã§ãããã¯å®å šã«æ£åœåãããŸãã-ãªã¢ã«ã¿ã€ã ã®ç¯çŽã«ãªããŸãïŒ ããããCãŸãã¯C ++ã§ç¬èªã®å¯å€ååŒæ°é¢æ°ãèšè¿°ããããšã¯ãããŸããïŒ
C ++ã«ã¯å¯å€åŒæ°ïŒãŸãã¯äžè¬ã«åæå®ãããŠããªãé åïŒã®æšæºé ååããããŸãããããããåŠçããæ¹æ³ãæåã«ååšããã®ã¯çŽ10幎åã§ãïŒæè¡çã«ã¯C ++ 11ããåã§ããããè¡ãããšãã§ããŸããããéåžžã«ãã¯ããå€ãã£ãã§ãïŒãããŠããªãããããŒïŒãããŠç¬¬äºã«ãå¯å€ååŒæ°ãã³ãã¬ãŒãã䜿çšãããšãå ¥åã®åé¡ãå®å šã«ã¹ãããã§ããŸãã å¯å€ååŒæ°ãã³ãã¬ãŒãã䜿çšããŠC ++ã§å¯å€åŒæ°ãåŠçããæ¹æ³ããããŸãã C ++ã®å¯å€åŒæ°ããŸã ä¿¡ããŠãã人ã¯ãããããæè¿ãééã£ãç¹ããå§ããŠããŸãã
ç§ã¯å人çã«è°è«ãããŸãæ°ã«ããŸããïŒããã¯ãšã³ãã«åº§ã代ããã«GDScriptã«ããçš®ã®é åããŒã¹ã®varadicåŒæ°ãæã£ãŠããæ¹ãå人çã«ãããã§æŽçãããŠãããšæãããšãé€ãã°ãèšèªæ©èœã¯èšèªããã®å®è¡ã ãã§ãªããããã¯ç§ã ãã§ãïŒãããããããã®ã³ã¡ã³ãã¯ä¿®æ£ããå¿ èŠããããŸããããããŠããªãããã®å Žåããªã倱瀌ãªè¡åãããŠããããšãé€ãã°ãããªãã¯ããªããããªãã®èŽè¡ã®å¿ã®äžã§ããªãã®èŠç¹ã匷åããŸãããã®ããã«å®¢èŠ³çã«æ±ãããã¹ãå察ã«åŠå®çã«åå¿ããã
GOTOã¯ãç¡æ¡ä»¶ã®ãžã£ã³ãã§ããããã眮ãæããããŸããã ããªããããã°ã©ããŒã§ããïŒ
ã»ãšãã©ã®å Žåãæ¡ä»¶ã¹ããŒãã¡ã³ããç¹ã«ã«ãŒãã¯ãç¹æ®ãªãžã£ã³ãã¹ããŒãã¡ã³ãã§ãããgotoã¹ããŒãã¡ã³ããšã»ãšãã©åãã§ããå®éçãªæå³ã§ãæãåºæ¬çãªã·ãŒã±ã³ã¹å¶åŸ¡ã¹ããŒãã¡ã³ãã¯ããã®æ¡åŒµã§ãã ããã¯èªåèªèº«ããµããŒãããããã®æããªè°è«ã§ããïŒå®éã«ã¯è°è«ãè¡ããªãããã圹ã«ç«ããªãã»ãã³ãã£ã¯ã¹ã䞻匵ããã ãã§ãïŒããã®2çªç®ã®éšåã¯ç¡ç€Œã§ãã
Kãç§ã¯ç§ã®æéãç¡é§ã«ãã人ã ã«ç¡ç€Œã§ãã 圌ã®ãã€ã³ãã¯ãifã®ä»£ããã«GOTOã䜿çšããªãã®ã¯ãªãããšããããšã§ãããç§ã¯ãifã®ä»£ããã«GOTOã䜿çšããªããšèšããŸããã GOTOã¯æ¡ä»¶æã§ã¯ãããŸãããæ¡ä»¶æã眮ãæããå Žåã¯ã眮ãæãããã®ãæ£ç¢ºã«å ¥åããŠãã ããã ãã§ã«äŸã¯ãããŸããïŒ
C ++ã«ã¯ãGDscriptã®ããã«ããŸããŸãªåã®å€ãæ ŒçŽã§ããæšæºã®é ååããããŸããã C ++ã¯å¯å€ååŒæ°é¢æ°ããµããŒãããŠããŸãããåãå®å šã§ã¯ãªãããããããã®äœ¿çšã¯ãå§ãããŸããã ããã¯Cã®ã¬ã¬ã·ãŒã§ãããCèªäœã§ã¯æ§æäžã®ç³è¡£æ§æã§ãããããã¯ãç¹ã«ãããã°ã®ããã«printfãé »ç¹ã«äœ¿çšãããããã§ããäžæçãªã³ãŒãããã°ããå ¥åããŠãããŒã¿ãåºåããå¿ èŠããããŸãã ããã¯åžžã«äœ¿çšãããŠããã®ã§ãããã¯å®å šã«æ£åœåãããŸãã-ãªã¢ã«ã¿ã€ã ã®ç¯çŽã«ãªããŸãïŒ ããããCãŸãã¯C ++ã§ç¬èªã®å¯å€ååŒæ°é¢æ°ãèšè¿°ããããšã¯ãããŸããïŒ
C ++ã«ã¯å¯å€åŒæ°ïŒãŸãã¯äžè¬ã«åæå®ãããŠããªãé åïŒã®æšæºé ååããããŸãããããããåŠçããæ¹æ³ãæåã«ååšããã®ã¯çŽ10幎åã§ãïŒæè¡çã«ã¯C ++ 11ããåã§ããããè¡ãããšãã§ããŸããããéåžžã«ãã¯ããå€ãã£ãã§ãïŒãããŠããªãããããŒïŒãããŠç¬¬äºã«ãå¯å€ååŒæ°ãã³ãã¬ãŒãã䜿çšãããšãå ¥åã®åé¡ãå®å šã«ã¹ãããã§ããŸãã å¯å€ååŒæ°ãã³ãã¬ãŒãã䜿çšããŠC ++ã§å¯å€åŒæ°ãåŠçããæ¹æ³ããããŸãã C ++ã®å¯å€åŒæ°ããŸã ä¿¡ããŠãã人ã¯ãããããæè¿ãééã£ãç¹ããå§ããŠããŸãã
ç§ã¯å人çã«è°è«ãããŸãæ°ã«ããŸããïŒããã¯ãšã³ãã«åº§ã代ããã«GDScriptã«ããçš®ã®é åããŒã¹ã®varadicåŒæ°ãæã£ãŠããæ¹ãå人çã«ãããã§æŽçãããŠãããšæãããšãé€ãã°ãèšèªæ©èœã¯èšèªããã®å®è¡ã ãã§ãªããããã¯ç§ã ãã§ãïŒãããããããã®ã³ã¡ã³ãã¯ä¿®æ£ããå¿ èŠããããŸããããããŠããªãããã®å Žåããªã倱瀌ãªè¡åãããŠããããšãé€ãã°ãããªãã¯ããªããããªãã®èŽè¡ã®å¿ã®äžã§ããªãã®èŠç¹ã匷åããŸãããã®ããã«å®¢èŠ³çã«æ±ãããã¹ãå察ã«åŠå®çã«åå¿ããã
KããããããããŸãã«ç§ã®ãã€ã³ãã§ããGDscriptã«ã¯ãããŸããŸãªåãä¿æã§ããå埩å¯èœãªæšæºåããããããå¯å€ååŒæ°é¢æ°ãC ++ã§æ©èœãããããã«å¿ èŠãªãã¹ãŠã®ããã«ãŒããããå¿ èŠã¯ãããŸããããã®ããã§ãããããããC ++ã§ã¯å¯å€ååŒæ°ãã³ãã¬ãŒããæ£åœåãããŸãã
Kãç§ã¯ç§ã®æéãç¡é§ã«ãã人ã ã«ç¡ç€Œã§ãã
次ã«ã @ godotengineãªããžããªã§ã®å¯Ÿè©±ã30æ¥éãããã¯ãããŠãããããä»ã®ãããžã§ã¯ãã«æéã浪費ãããŸãã
ç§ãã¡ã¯è¡åèŠç¯ãæã£ãŠã誰ã«å¯ŸããŠ
Godot Engineã®æ©èœãšæ¹åã®ææ¡ã¯ãå°çšã®Godot Improvement ProposalsïŒGIPïŒ ïŒ godotengine / godot-proposals ïŒèª²é¡è¿œè·¡
ã¡ã€ã³ïŒ godotengine / godot ïŒãã©ãã«ãŒã¯ãã°ã¬ããŒããšãã«ãªã¯ãšã¹ãå°çšã«ãªããå¯çš¿è ã¯ãã°ä¿®æ£äœæ¥ã«ããéäžã§ããããã«ãªããŸããã ãã®ãããã¡ã€ã³ã®èª²é¡ãã©ãã«ãŒã§å€ãæ©èœã®ææ¡ããã¹ãŠçµäºããŸãã
ãã®æ©èœã®ææ¡ã«èå³ãããå Žåã¯ãæå®ãããåé¡ãã³ãã¬ãŒãã«åŸã£ãŠã GIPãã©ãã«ãŒã§æ°ããææ¡ã
æãåèã«ãªãã³ã¡ã³ã
ãã§ã«
varargs
ãªã£ãŠããé¢æ°ãããã®ã§ããã®æ©èœã¯æ¬åœã«å¿ èŠã ãšæããŸããããããããªãŒããŒã©ã€ãããæ¹æ³ã¯ãããŸããã