


{"id":28,"date":"2019-02-08T00:29:44","date_gmt":"2019-02-08T00:29:44","guid":{"rendered":"http:\/\/multiblog.educacion.navarra.es\/auriolar\/?p=28"},"modified":"2019-02-22T00:31:23","modified_gmt":"2019-02-22T00:31:23","slug":"godot-oinarrizko-mugimendua","status":"publish","type":"post","link":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/2019\/02\/08\/godot-oinarrizko-mugimendua\/","title":{"rendered":"Godot: Oinarrizko mugimendua"},"content":{"rendered":"\n<h2>Pertsonaia<\/h2>\n\n\n\n<p>Lehenik eta behin pertsonaia bat sortu behar da. Hasieran gauza asko egin behar direla dirudi, baina denek hartzen dute zentzua.<\/p>\n\n\n\n<p>Godot programak bi oinarri ditu nodoak eta eszenak. Eszena batek nodo anitzak izan ditzake eta nodoek ere azpinodo gehiago. <\/p>\n\n\n\n<p>Lenengo <em>KinematicBody2D<\/em> nodoa sortuko dugu, honen azpian <em>Sprite<\/em> eta <em>CollisionShape2D<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1035\" height=\"611\" src=\"http:\/\/multiblog.educacion.navarra.es\/auriolar\/files\/2019\/02\/Pertsonaia.gif\" alt=\"\" class=\"wp-image-30\" \/><\/figure>\n\n\n\n<p><em>Sprite<\/em> nodoan <em>Texture<\/em> propietatean gure karpetan dugun irudiaren bat jarriko dugu eta <em>CollisionShape2D<\/em> nodoan <em>Shape<\/em> <em>RectangleShape2D <\/em>aukeratu dut dudan irudirako gehien egokitzen dena delako. Amaitzeko gehitutako <em>Shape<\/em> hori koadroaren barneko botoiekin handitu dut nire irudia bete arte.<\/p>\n\n\n\n<p><strong>Gorde<\/strong>: Orain gordetzeko unea da, lana gal ez dezagun. Honetarako KinematicBody2D.tscn izenarekin gordeko da. (Gordetzean nodo nagusiaren izena hartzen du, gomendagarria da nodo honi beste izena jartzea, adibidez pertsonaia)<\/p>\n\n\n\n<h3>Azalpena<\/h3>\n\n\n\n<p><em>KinematicBody2D<\/em> nodoa gure pertsonaiaren nodo nagusia izango da, honek propietate zinematikoak emango dizko. Hau da, mugitzeko aukerak. <\/p>\n\n\n\n<p>Honen barruan <em>Sprite<\/em> nodoak irudi bat izateko aukera emango dio eta <em>CollisionShape2D<\/em> beste objektuak ukitzen dituen kontrolatzeko erabiliko da.<\/p>\n\n\n\n<h2>Mugimendua<\/h2>\n\n\n\n<p>Behin pertsonaia sortuta, orain mugitzea nahi dugu. Honetarako bi gauza egin behar dira:<\/p>\n\n\n\n<ul><li>Mugimendua sortuko duten gertaerak definitu eta izena eman (Project -&gt; Project Settings -&gt; Input Map)<\/li><\/ul>\n\n\n\n<p><em>Action<\/em> eta gero gertaeraren izena idatzi eta <em>Add<\/em> sakatu. Gero sortu den elementuan <em>+<\/em> ikurrari eman eta <em>key<\/em> aukeratu tekla bat konfiguratzeko, azkenik teklatuan tekla hori sakatu eta saguarekin <em>Ok<\/em> eman.<\/p>\n\n\n\n<p>Irudian Gora gertaera gehitzen dut, eta hau &#8220;Gora gezia&#8221; edo &#8220;W&#8221; teklak sakatzen direnean aktibatzen da.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"769\" height=\"467\" src=\"http:\/\/multiblog.educacion.navarra.es\/auriolar\/files\/2019\/02\/Input-Map.gif\" alt=\"\" class=\"wp-image-31\" \/><\/figure>\n\n\n\n<p>Antzekoa egiten dugu Behera, Eskuinera eta Ezkerrera gertaerekin.<\/p>\n\n\n\n<ul><li>Hauetako gertaera bat ematen denean gertatu behar dena kodean idatzi.<\/li><\/ul>\n\n\n\n<p>Orain <em>KinematicBody2D<\/em> izenean eskuineko klik egin eta <em>Attach Script<\/em> aukeratu. Utzi parametroak dauden bezala eta agertzen den leihoan hurrengo kodea idatzi behar da.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nextends KinematicBody2D\n\nvar abiadura = 200\nvar velocity = Vector2()\n\nfunc _physics_process(delta):\n\tvelocity = Vector2()\n\tif Input.is_action_pressed(&quot;Gora&quot;):\n\t\tvelocity.y = -abiadura\n\tif Input.is_action_pressed(&quot;Behera&quot;):\n\t\tvelocity.y = abiadura\n\tif Input.is_action_pressed(&quot;Eskuinera&quot;):\n\t\tvelocity.x = abiadura\n\tif Input.is_action_pressed(&quot;Ezkerrera&quot;):\n\t\tvelocity.x = -abiadura\n\t\n\tmove_and_slide(velocity)\n<\/pre><\/div>\n\n\n<p>Dena egiaztatzeko goiko eskuinaldeko klaketa eta play duen ikonoa sakatu eta egindakoa dastatzeko aukera izango duzu.<\/p>\n\n\n\n<h3>Azalpena<\/h3>\n\n\n\n<p>Lehenengo lerroa Godotek berak jartzen du. Honek KinematicBody2D objektua izateagatik propietate batzuk hartzen dituela esan nahi du, honela guri lana aurreztuz.<\/p>\n\n\n\n<p>Jarraian bi aldagai definitzen ditugu: abiadura, mugimendu kantitatea adierazten duena, eta <em>velocity<\/em> uneko mugimendua gordeko duena, azken hau <em>Vector2()<\/em> motakoa da, hau da x eta y propietateak dituena.<\/p>\n\n\n\n<p><em>_physics_process(delta)<\/em> funtzioak jokoaren <em>frame<\/em> bakoitzean deitzen da eta <em>delta<\/em> parametroa bi deien artean pasa den denbora da. Funtzio honetan eguneratuko dugu gure nodoa.<\/p>\n\n\n\n<p><em>velocity = Vector2()<\/em>, berriro aldagaia (0,0)n uzten du. Eta gero baldintza bakoitzak egiaztatzen du zer gertaera jaso den eta horren arabera eguneratzen du velocity aldagaia. <\/p>\n\n\n\n<p>Amaitzeko mugituko den velocity jakinda, <em>kynematicBody2D<\/em> objektuaren <em>move_and_slide()<\/em> funtzioa erabiltzen dugu kalkulatutako mugimendu hori eigteko.<\/p>\n\n\n\n<p><strong>Oharra:<\/strong> Nabarmendu behar da pantailaren koordenatu sistema zertxobait berezia dela. Goiko-ezkerreko erpina (0,0) koordenatua adierazten du, eskuinera x handitzen joango da, baina behera egiterakoan y handituko da. Honengatik &#8220;Gora&#8221; sakatzen dugunean -abiadura egiten dugu, goranzkoa negatiboa delako.<\/p>\n\n\n\n<p><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pertsonaia Lehenik eta behin pertsonaia bat sortu behar da. Hasieran gauza asko egin behar direla dirudi, baina denek hartzen dute zentzua. Godot programak bi oinarri ditu nodoak eta eszenak. Eszena batek nodo anitzak izan ditzake eta nodoek ere azpinodo gehiago. Lenengo KinematicBody2D nodoa sortuko dugu, honen azpian Sprite eta CollisionShape2D. Sprite nodoan Texture propietatean gure&hellip;<\/p>\n","protected":false},"author":141,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[58437,58436],"tags":[],"_links":{"self":[{"href":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/wp-json\/wp\/v2\/posts\/28"}],"collection":[{"href":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/wp-json\/wp\/v2\/users\/141"}],"replies":[{"embeddable":true,"href":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/wp-json\/wp\/v2\/comments?post=28"}],"version-history":[{"count":0,"href":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/wp-json\/wp\/v2\/posts\/28\/revisions"}],"wp:attachment":[{"href":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/wp-json\/wp\/v2\/media?parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/wp-json\/wp\/v2\/categories?post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multiblog.educacion.navarra.es\/auriolar\/wp-json\/wp\/v2\/tags?post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}