{"id":1077,"date":"2020-06-21T14:41:45","date_gmt":"2020-06-21T12:41:45","guid":{"rendered":"http:\/\/heppg.de\/ikg\/wordpress\/?p=1077"},"modified":"2020-06-30T08:07:06","modified_gmt":"2020-06-30T06:07:06","slug":"auf-die-platze-fertig-los","status":"publish","type":"post","link":"https:\/\/heppg.de\/ikg\/wordpress\/?p=1077","title":{"rendered":"Auf die Pl\u00e4tze, fertig, los !"},"content":{"rendered":"\n<p>Um ein Spiel zu starten kann man den Ablauf  &#8216;auf die Pl\u00e4tze, fertig, los&#8217; verwenden.<\/p>\n\n\n\n<p>Die Idee ist, dass man nur ein Script mit einer gr\u00fcnen Flagge hat. Dieses sorgt dann daf\u00fcr, dass erst mal alle Sprites sich auf ihre Startposition begeben, die Variablen zur\u00fcckgesetzt werden und dann die Abl\u00e4ufe starten.<\/p>\n\n\n\n<p>Dieses kleine Start-Skript geh\u00f6rt \u00fcblicherweise der B\u00fchne. <\/p>\n\n\n\n<p>Es gibt nur ein Skript mit einer gr\u00fcnen Flagge:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"518\" height=\"117\" src=\"http:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_start.png\" alt=\"\" class=\"wp-image-1078\" srcset=\"https:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_start.png 518w, https:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_start-300x68.png 300w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/figure>\n\n\n\n<p>Dieses Skript schickt dann &#8216;auf_die_plaetze&#8217;. Hier ist das &#8216;warte&#8217; wichtig, weil alle anderen Skripte das erst mal fertig bearbeiten m\u00fcssen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"518\" height=\"124\" src=\"http:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_aufdieplaetze.png\" alt=\"\" class=\"wp-image-1079\" srcset=\"https:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_aufdieplaetze.png 518w, https:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_aufdieplaetze-300x72.png 300w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/figure>\n\n\n\n<p>Bei &#8216;auf_die_plaetze&#8217; bewegen sich alle Sprites auf die Startposition und machen sich sichtbar oder unsichtbar, je nachdem was im Spiel erforderlich ist.<\/p>\n\n\n\n<p>Der n\u00e4chste Befehl ist &#8216;fertig&#8217;. Hier werden die Variablen auf den Startwert gesetzt. Auch hier warten.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"518\" height=\"130\" src=\"http:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_fertig.png\" alt=\"\" class=\"wp-image-1080\" srcset=\"https:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_fertig.png 518w, https:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_fertig-300x75.png 300w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/figure>\n\n\n\n<p>Und zuletzt wird &#8216;los&#8217; geschickt. Jetzt starten die anderen Skripte.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"518\" height=\"122\" src=\"http:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_los.png\" alt=\"\" class=\"wp-image-1081\" srcset=\"https:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_los.png 518w, https:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/aufdieplaetzefertiglos_los-300x71.png 300w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Beispiel f\u00fcr Sprite, Aktion &#8216;auf die plaetze&#8217;<\/h3>\n\n\n\n<p>Die einzelnen Skripte empfangen die Nachrichten und setzen sich auf ihre Positionen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"238\" height=\"107\" src=\"http:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/plaetze.gif\" alt=\"\" class=\"wp-image-1082\"\/><\/figure>\n\n\n\n<p>Die Richtung sollte gesetzt werden, vor allem wenn das Sprite sich drehen kann.<\/p>\n\n\n\n<p>Die Sichtbarkeit ist wichtig, &#8216;zeige dich&#8217; oder &#8216;verstecke dich&#8217;.<\/p>\n\n\n\n<p>Die Position am Anfang mu\u00df gesetzt werden, vor allem wenn das Sprite sich bewegen kann.<\/p>\n\n\n\n<p>Im Bild nicht gezeigt: das Kost\u00fcm sollte auch auf den Startwert gesetzt werden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Beispiel f\u00fcr Sprite, Aktion f\u00fcr &#8216;fertig&#8217;<\/h3>\n\n\n\n<p>Bei &#8216;fertig&#8217; setzen die Skripte ihre Variablen auf den Startwert.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"236\" height=\"109\" src=\"http:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/los.png\" alt=\"\" class=\"wp-image-1083\"\/><\/figure>\n\n\n\n<p>Variablen &#8216;f\u00fcr alle Objekte&#8217; werden typischerweise in einem Skript auf der B\u00fchne zur\u00fcckgesetzt oder vielleicht auch bei der Hauptfigur des Spiels.<\/p>\n\n\n\n<p>Die Variablen, welchen einem Sprite geh\u00f6ren &#8216;nur f\u00fcr dieses Objekt&#8217; m\u00fcssen vom Sprite zur\u00fcckgesetzt werden.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Kein Beispiel: Sprite Aktion f\u00fcr &#8216;los&#8217;<\/h3>\n\n\n\n<p>Klar, bei &#8216;los&#8217; geht es los. Es werden die Bewegungen gestartet, die \u00dcberpr\u00fcfungen ob der Spielstand erreicht ist und all die anderen notwendigen Dinge.<\/p>\n\n\n\n<p>Hier kann kein sinnvolles Beispiel gezeigt werden, da sich die Aktionen bei &#8216;los&#8217; je nach dem Spiel \u00e4ndern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Beispiel f\u00fcr ein Spiel.<\/h2>\n\n\n\n<p>Ein ganz einfaches Spiel ist im Anhang zum <a href=\"http:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/auf_die_plaetze_fertig_los.sb\">Herunterladen<\/a>. <br><br>Das Beispiel ist f\u00fcr scratch1.4 geschrieben.<\/p>\n\n\n\n<p><a href=\"http:\/\/heppg.de\/ikg\/wordpress\/wp-content\/uploads\/2020\/06\/auf_die_plaetze_fertig_los.sb\">Beispiel-Spiel herunterladen<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pattern<\/h2>\n\n\n\n<p>Das geordnete Starten einer Anwendung funktioniert nicht immer auf Anhieb und macht Programmieranf\u00e4ngern immer wieder Probleme.<\/p>\n\n\n\n<p> Typische Indikatoren f\u00fcr solche Probleme sind <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li> Das Spiel l\u00e4uft einmal korrekt los, beim zweiten Mal nicht mehr. <\/li><li> Sprites sind nicht sichtbar bei Beginn oder erst sp\u00e4ter ben\u00f6tigte Sprites tauchen am Anfang schon auf. <\/li><li> Das Spiel meldet &#8216;gewonnen&#8217; schon direkt nach dem Anfang, da eine Spielfigur schon auf dem Zielbereich steht. <\/li><\/ul>\n\n\n\n<p>Das Pattern bietet eine Vorgehensweise f\u00fcr ein geordnetes Hochfahren einer Anwendung.<\/p>\n\n\n\n<p>Der Begriff &#8216;Pattern&#8217; wird in Anlehnung an \/Design Patterns: Elements of Reusable Object-Oriented Software&#8217; Gamma, Helm, Johnson, Vlissides\/ verwendet.<br><\/p>\n\n\n\n<p><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um ein Spiel zu starten kann man den Ablauf &#8216;auf die Pl\u00e4tze, fertig, los&#8217; verwenden. Die Idee ist, dass man nur ein Script mit einer gr\u00fcnen Flagge hat. Dieses sorgt dann daf\u00fcr, dass erst mal alle Sprites sich auf ihre Startposition begeben, die Variablen zur\u00fcckgesetzt werden und dann die Abl\u00e4ufe starten. Dieses kleine Start-Skript geh\u00f6rt [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-1077","post","type-post","status-publish","format-standard","hentry","category-scratch"],"_links":{"self":[{"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1077","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1077"}],"version-history":[{"count":2,"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1077\/revisions"}],"predecessor-version":[{"id":1086,"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1077\/revisions\/1086"}],"wp:attachment":[{"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1077"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1077"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/heppg.de\/ikg\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}