{"id":4534,"date":"2020-02-12T16:57:20","date_gmt":"2020-02-12T15:57:20","guid":{"rendered":"http:\/\/godotengine.eu\/?p=4534"},"modified":"2020-11-13T12:09:09","modified_gmt":"2020-11-13T11:09:09","slug":"gra-air-combat-dane-globalne-w-autoladowaniu-5","status":"publish","type":"post","link":"https:\/\/godotengine.eu\/?p=4534","title":{"rendered":"Gra Air Combat \u2013 Dane globalne w Auto\u0142adowaniu \u2013 5"},"content":{"rendered":"\n<p class=\"has-background\" style=\"background-color:#b4c4d9\">Cz\u0119sto jest tak, \u017ce chcemy by niekt\u00f3re dane by\u0142y dost\u0119pne w ca\u0142ej grze. Domy\u015blnie, wi\u0119kszo\u015b\u0107 danych jest do\u0142\u0105czona do danej sceny wi\u0119c kasuje si\u0119 gdy scena zostaje zlikwidowana. Wi\u0119c, w jaki spos\u00f3b stworzy\u0107 dane, kt\u00f3re b\u0119d\u0105 dost\u0119pne przez ca\u0142y cykl \u017cycia naszej gry? Odpowiedzi\u0105 na to pytanie jest Autoload.<\/p>\n\n\n\n<p>Najpierw musimy stworzy\u0107 plik skryptu <strong>GDScript<\/strong>. Prze\u0142\u0105czamy si\u0119 na kart\u0119 Script, a nast\u0119pnie wybieramy <strong>Plik-&gt;Nowy skrypt (File-&gt;New Script)<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=async  width=\"1024\" height=\"313\" src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-t28yaDfA\/w:1024\/h:313\/q:auto\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/001.png\" alt=\"\" class=\"wp-image-4537\"\/><\/figure>\n\n\n\n<p>W okienku Utw\u00f3rz <strong>Skrypt<\/strong> w polu <strong>\u015acie\u017cka (Path)<\/strong> wpisujemy nazw\u0119 pliku. Plik nazwijmy <strong>globals.gd<\/strong> (albo inaczej, jak sam wolisz, plik musi mie\u0107 tylko rozszerzenie .gd). Klikamy<strong> Utw\u00f3rz (Create)<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=async  src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-t5N-0AMl\/w:auto\/h:auto\/q:auto\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/002.png\" alt=\"\" class=\"wp-image-4538\" width=\"370\" height=\"318\"\/><\/figure><\/div>\n\n\n\n<p>Teraz wpisz poni\u017cszy kod:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nextends Node\n\nvar currentStage = 1\nvar kills = 0\n<\/pre><\/div>\n\n\n<p>Ten kod jest prost\u0105 deklaracj\u0105 dw\u00f3ch zmiennych globalnych, <strong>CurrentStage <\/strong>oraz <strong>kills<\/strong>. Skrypt <strong>MUSI <\/strong>rozszerza\u0107 <strong>Node <\/strong>inaczej nie za\u0142aduje si\u0119. M\u00f3wi\u0105c o za\u0142adowaniu, chcemy powiedzie\u0107 Godotowi by za\u0142adowa\u0142 skrypt gdy tylko nasza gra wystartuje. Wr\u00f3\u0107 teraz do menu <strong>Projekt-&gt;Ustawienia Projektu (Project-&gt;Settings)<\/strong>, a nast\u0119pnie wybierz kart\u0119 <strong>Auto\u0142adowanie (AutoLoad)<\/strong>.<\/p>\n\n\n\n<p>Kliknij ikon\u0119 po prawej stronie pola <strong>\u015acie\u017cka (Path)<\/strong> i wybierz nasz nowo utworzony plik <strong>globals.gd<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=async  width=\"1024\" height=\"164\" src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-rtsW1yVc\/w:1024\/h:164\/q:auto\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/003.png\" alt=\"\" class=\"wp-image-4539\"\/><\/figure>\n\n\n\n<p>Na koniec, kliknij przycisk <strong>Dodaj (Add)<\/strong> i powiniene\u015b zobaczy\u0107 taki oto widok:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=async  data-opt-src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-3dtU9gZi\/w:1024\/h:191\/q:auto\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/004.png\"  width=\"1024\" height=\"191\" src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-3dtU9gZi\/w:1024\/h:191\/q:eco\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/004.png\" alt=\"\" class=\"wp-image-4540\"\/><noscript><img decoding=async  width=\"1024\" height=\"191\" src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-3dtU9gZi\/w:1024\/h:191\/q:auto\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/004.png\" alt=\"\" class=\"wp-image-4540\"\/></noscript><\/figure>\n\n\n\n<p>Teraz kiedy mamy dost\u0119pnych kilka zmiennych globalnych, zresetujmy ich warto\u015bci przy \u0142adowaniu sceny tytu\u0142owej. Jest to przydatne, gdy\u017c resetuje nasz\u0105 gr\u0119 za ka\u017cdym razem gdy wracamy na ekran tytu\u0142owy. Otw\u00f3rz scen\u0119 <strong>TitleScene <\/strong>w widoku 2D je\u015bli nie jest otwarta. Teraz dodamy skrypt do w\u0119z\u0142a kontrolnego naszej sceny. Wybierz W\u0119ze\u0142 <strong>Control<\/strong>, nast\u0119pnie kliknij ikon\u0119 <strong>skryptu ze znakiem +<\/strong> znajduj\u0105c\u0105 si\u0119 po prawej stronie by stworzy\u0107 nowy skrypt.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=async  data-opt-src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-P7FO9-1L\/w:auto\/h:auto\/q:auto\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/005.png\"  src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-P7FO9-1L\/w:auto\/h:auto\/q:eco\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/005.png\" alt=\"\" class=\"wp-image-4541\" width=\"262\" height=\"208\"\/><noscript><img decoding=async  src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-P7FO9-1L\/w:auto\/h:auto\/q:auto\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/005.png\" alt=\"\" class=\"wp-image-4541\" width=\"262\" height=\"208\"\/></noscript><\/figure><\/div>\n\n\n\n<p>Wszystkie domy\u015blnie warto\u015bci s\u0105 w\u0142a\u015bciwe, wi\u0119c klikamy <strong>Utw\u00f3rz (Create).<\/strong><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=async  data-opt-src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-0ik5Wckm\/w:auto\/h:auto\/q:auto\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/006.png\"  src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-0ik5Wckm\/w:auto\/h:auto\/q:eco\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/006.png\" alt=\"\" class=\"wp-image-4542\" width=\"315\" height=\"273\"\/><noscript><img decoding=async  src=\"https:\/\/ml8gqeyap2f3.i.optimole.com\/1Syg-7E-0ik5Wckm\/w:auto\/h:auto\/q:auto\/https:\/\/godotengine.eu\/wp-content\/uploads\/2020\/02\/006.png\" alt=\"\" class=\"wp-image-4542\" width=\"315\" height=\"273\"\/></noscript><\/figure><\/div>\n\n\n\n<p>Edytor kodu powinien otworzy\u0107 si\u0119 automatycznie (je\u015bli nie, mo\u017cesz otworzy\u0107 go klikaj\u0105c ikon\u0119 zwoju po prawej stronie w\u0119z\u0142a <strong>Control<\/strong>). Popraw kod by wygl\u0105da\u0142 tak jak poni\u017cszy:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nextends Control\n\nfunc _ready():\n  globals.kills = 0\n  globals.currentStage = 0\n<\/pre><\/div>\n\n\n<p>Jak widzisz mo\u017cemy uzyska\u0107 dost\u0119p do stworzonych przez nas zmiennych globalnych podaj\u0105c <strong>Nazw\u0119 w\u0119z\u0142a (Node Name)<\/strong>, kt\u00f3r\u0105 podali\u015bmy w ustawieniach <strong>Auto\u0142adowania (AutoLoad)<\/strong>, nast\u0119pnie wpisuj\u0105c kropk\u0119 i nazw\u0119 zmiennej. Mimo i\u017c ten przyk\u0142ad jest trywialny, to jednak zmienne globalne s\u0105 niezmiernie przydatne, ale b\u0105d\u017a ostro\u017cny i nie nadu\u017cywaj ich!<\/p>\n\n\n\n<div class=\"wp-block-button alignleft\"><a class=\"wp-block-button__link has-text-color has-background\" href=\"https:\/\/godotengine.eu\/?page_id=4330\" title=\"Air Combat\" style=\"background-color:#40372f;color:#a6937c\" rel=\"http:\/\/godotengine.eu\/air-combat\/\">Menu<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Cz\u0119sto jest tak, \u017ce chcemy by niekt\u00f3re dane by\u0142y dost\u0119pne w ca\u0142ej grze. Domy\u015blnie, wi\u0119kszo\u015b\u0107 danych jest do\u0142\u0105czona do danej sceny wi\u0119c kasuje si\u0119 gdy scena zostaje zlikwidowana. Wi\u0119c, w jaki spos\u00f3b stworzy\u0107 dane, kt\u00f3re b\u0119d\u0105 dost\u0119pne przez ca\u0142y cykl \u017cycia naszej gry? Odpowiedzi\u0105 na to pytanie jest Autoload. Najpierw musimy stworzy\u0107 plik skryptu GDScript. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4291,"comment_status":"open","ping_status":"open","sticky":false,"template":"templates\/template-cover.php","format":"standard","meta":[],"categories":[39],"tags":[38,36],"_links":{"self":[{"href":"https:\/\/godotengine.eu\/index.php?rest_route=\/wp\/v2\/posts\/4534"}],"collection":[{"href":"https:\/\/godotengine.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/godotengine.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/godotengine.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/godotengine.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4534"}],"version-history":[{"count":13,"href":"https:\/\/godotengine.eu\/index.php?rest_route=\/wp\/v2\/posts\/4534\/revisions"}],"predecessor-version":[{"id":4614,"href":"https:\/\/godotengine.eu\/index.php?rest_route=\/wp\/v2\/posts\/4534\/revisions\/4614"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/godotengine.eu\/index.php?rest_route=\/wp\/v2\/media\/4291"}],"wp:attachment":[{"href":"https:\/\/godotengine.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/godotengine.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/godotengine.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}