{"id":900,"date":"2019-09-01T06:00:50","date_gmt":"2019-09-01T04:00:50","guid":{"rendered":"https:\/\/ceobeta.oric.org\/?p=900"},"modified":"2019-09-01T06:00:50","modified_gmt":"2019-09-01T04:00:50","slug":"galaxy-wars","status":"publish","type":"post","link":"https:\/\/oric.bqtt.net\/index.php\/2019\/09\/01\/galaxy-wars\/","title":{"rendered":"Galaxy Wars"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Infos g\u00e9n\u00e9rales<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ce jeu est une adaptation de la version pr\u00e9c\u00e9demment programm\u00e9e pour le COMMODORE-16 et le ZX-SPECTRUM.  Pour cela, j&#8217;ai copi\u00e9, ligne par ligne, le code de la version C-16, en y apportant de petites modifications car elles ont le m\u00eame nombre de lignes et peuvent toutes deux utiliser ELSE.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/galaxy-wars-c16-real.jpg\" alt=\"\" class=\"wp-image-909\"\/><figcaption>Galaxy Wars sur C-16, base du d\u00e9veloppement de la version Oric<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/galaxy-wars-zx-real.jpg\" alt=\"\" class=\"wp-image-903\"\/><figcaption>Une des premi\u00e8res versions de Galaxy Wars, sur ZX<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pour la premi\u00e8re fois, j&#8217;ai utilis\u00e9 un \u00e9mulateur pour d\u00e9velopper le jeu : EUPHORIC sous MS-DOS. Le r\u00e9sultat est tr\u00e8s satisfaisant puisque cet \u00e9mulateur permet, en appuyant sur F3, d&#8217;avoir un clavier qui correspond \u00e0 celui du PC, cela permet de taper un programme tr\u00e8s rapidement et confortablement. Prendre un listing ou charger \/ enregistrer un programme est tout aussi simple.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/GalWar_1.jpg\" alt=\"\" class=\"wp-image-906\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/GalaxyWar_001.jpg\" alt=\"\" class=\"wp-image-913\"\/><figcaption>Les graphismes originaux, bas\u00e9s sur des largeurs de 8 pixels de base<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La seule complication lors du d\u00e9veloppement de cette version a \u00e9t\u00e9 le besoin de coder \u00e0 nouveau tous les graphiques, car l&#8217;ORIC utilise des caract\u00e8res de 6 pixels de large et non de 8 comme le reste des ordinateurs. Ainsi, la conception du missile est l\u00e9g\u00e8rement plus \u00e9troite et les vaisseaux sup\u00e9rieurs occupent 3 caract\u00e8res de large au lieu de 2. Quoi qu&#8217;il en soit, je l&#8217;ai fait et si vous touchez un navire du c\u00f4t\u00e9 droit, vous ne le d\u00e9truisez pas.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/Dise\u00f1o_UDG.jpg\" alt=\"\" class=\"wp-image-904\"\/><figcaption>Des graphismes &#8220;handheld&#8221;<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En ce qui concerne le son, j&#8217;ai repris les routines standards.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et en ce qui concerne l&#8217;aspect, gr\u00e2ce au syst\u00e8me particulier de m\u00e9moire d&#8217;\u00e9cran de ce syst\u00e8me, c&#8217;est la seule version dans laquelle j&#8217;ai vraiment \u00e9t\u00e9 capable de reproduire l&#8217;effet \u00abcellophane\u00bb, en \u00e9mulant les rayures color\u00e9es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ecarts \u00e0 la version TAITO d&#8217;origine:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Cette version est un peu plus large et beaucoup moins haute puisque dans le jeu original l&#8217;\u00e9cran est vertical.<\/li><li>Il y a moins de rang\u00e9es d&#8217;ast\u00e9ro\u00efdes, en raison de la taille verticale.<\/li><li>Pendant l&#8217;ascension du missile, nous pouvons le contr\u00f4ler horizontalement, mais nous ne contr\u00f4lons pas la vitesse.<\/li><li>Les envahisseurs n&#8217;acc\u00e9l\u00e8rent pas lorsqu&#8217;il ne reste que quelques-uns d&#8217;entre eux.<\/li><li>Les ast\u00e9ro\u00efdes ne descendent pas lorsqu&#8217;ils atteignent les extr\u00eames.<\/li><li>Les scores sont limit\u00e9s \u00e0 50, 100 et 150 points.<\/li><li>Il n&#8217;y a pas d&#8217;animations sur les ennemis.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Le contr\u00f4le des ennemis est tr\u00e8s simple. Il y a 6 bandes avec les ennemis dans la position correspondante. Les lignes paires tournent \u00e0 gauche et les lignes impaires \u00e0 droite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le bloc principal du programme n\u2019occupe que 18 lignes. \u00c0 chaque passage, je d\u00e9place une rang\u00e9e d&#8217;ennemis et contr\u00f4le un tir ennemi. Le compteur est commun dans les deux cas (A).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour gagner de la vitesse, je me suis d\u00e9barrass\u00e9 des animations des ennemis. J&#8217;ai choisi d&#8217;utiliser les graphiques des ennemis dispers\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lors de collisions, je v\u00e9rifie seulement si la t\u00eate du missile touche quelque chose, mais pas la partie inf\u00e9rieure. En ce qui concerne les bombes ennemies, seul celui qui est actif v\u00e9rifie s&#8217;il touche quelque chose. Cela rend le jeu plus rapide, mais il se peut que nous touchions quelque chose et que rien ne nous arrive. Comme le processus est rapide, il y a un risque \u2026 et il vaut mieux ne pas y jouer.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/GalWar_3.jpg\" alt=\"\" class=\"wp-image-905\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">En ce qui concerne les performances, cette version fonctionne aussi bien (sinon autre chose) que les deux pr\u00e9c\u00e9dentes (C-16 et SPECTRUM).<br>\nLa v\u00e9rit\u00e9 est que, malgr\u00e9 ses bugs, ce BASIC tire plus que bien.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eh bien, rien de plus, je ne peux qu\u2019esp\u00e9rer que cela vous plaise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je vous invite \u00e0 l&#8217;essayer.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/GalWar_6.jpg\" alt=\"\" class=\"wp-image-910\"\/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Quelques \u00e9l\u00e9ments concernant le programme<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Le programme principal est divis\u00e9 en 10 blocs:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>D\u00e9claration de matrice. Appel aux routines principales.<\/li><li>Contr\u00f4le notre plateforme ou missile.<\/li><li>Contr\u00f4le des envahisseurs et des ast\u00e9ro\u00efdes.<\/li><li>Contr\u00f4le des tirs ennemis.<\/li><li>D\u00e9tection d&#8217;impact de missile. Touchez un ast\u00e9ro\u00efde, un envahisseur ou un tir ennemi.<\/li><li>Perdre une vie.<\/li><li>\u00e9cran de pr\u00e9sentation.<\/li><li>D\u00e9but du jeu.<\/li><li>Plusieurs routines.<\/li><li>Donn\u00e9es avec les graphismes du jeu.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Comment le programme fonctionne-t&#8217;il, avec ses 88 lignes ?<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>10 &#8211; Nous d\u00e9finissons les matrices du jeu.<\/li><li> 30 &#8211; Initialiser l&#8217;enregistrement (R) et aller \u00e0 la routine qui red\u00e9finit les graphiques.<\/li><li> 50 &#8211; Allons \u00e0 la pr\u00e9sentation du jeu.<\/li><li> 100 &#8211; Nous d\u00e9pla\u00e7ons la plate-forme ou le missile dans la direction indiqu\u00e9e.<\/li><li> 130 &#8211; Si le missile a \u00e9t\u00e9 tir\u00e9 (T = 2), il passe \u00e0 160.<\/li><li> 140 &#8211; Si la touche RETOUR est enfonc\u00e9e, nous tirons le missile et supprimons la plate-forme.<\/li><li> 160 &#8211; Nous supprimons le missile et modifions la position verticale (Y).<\/li><li> 170 &#8211; Si la pointe du missile touche quelque chose, nous sautons \u00e0 400.<\/li><li> 180 &#8211; Nous mettons le missile dans la nouvelle position.<\/li><li> 200 &#8211; Nous d\u00e9pla\u00e7ons l&#8217;une des 6 rang\u00e9es d&#8217;ennemis ou d&#8217;ast\u00e9ro\u00efdes dans la direction correspondante. (B = 1: Droite, B = -1: Gauche).<\/li><li> 220 &#8211; Nous imprimons la ligne de l&#8217;ennemi.<\/li><li> 250 &#8211; Nous voyons si l&#8217;une des 6 bombes ennemies est active.<\/li><li> 260 &#8211; Si ce n&#8217;est pas le cas, nous voyons s&#8217;il y a un envahisseur en position sur l&#8217;\u00e9cran pour activer le tir.<\/li><li> 270 &#8211; Si le tir touche la plate-forme ou si le missile passe \u00e0 500.<\/li><li> 400 &#8211; Si la position Y est sup\u00e9rieure \u00e0 5, c\u2019est que nous avons frapp\u00e9 avec un ast\u00e9ro\u00efde ou tir\u00e9 et saut\u00e9 \u00e0 500.<\/li><li> 410 &#8211; Nous calculons la position de l&#8217;envahisseur d\u00e9truit.<\/li><li> 420 &#8211; On met l&#8217;explosion, un son retentit et on calcule les points (50, 100 ou 150).<\/li><li> 430 &#8211; Nous supprimons l&#8217;envahisseur de la ligne et soustrayons un envahisseur des autres (Q).<\/li><li> 450 &#8211; Nous montrons les points et faisons une pause (5500) et mettons \u00e0 jour le marqueur.<\/li><li> 470 &#8211; En passant le niveau, nous augmentons sa valeur s&#8217;il est inf\u00e9rieur \u00e0 5.<\/li><li> 500 &#8211; Nous mettons une explosion \u00e0 la position du missile et reproduisons un son.<\/li><li> 520 &#8211; Nous mettons \u00e0 jour le marqueur de vie.<\/li><li> 550 &#8211; S&#8217;il n&#8217;y a plus de vies, le jeu se termine.<\/li><li> 2000 &#8211; \u00c9cran de pr\u00e9sentation du jeu.<\/li><li> 2050 &#8211; Appuyez sur une touche pour effacer l&#8217;\u00e9cran (5400) et faire clignoter le marqueur du lecteur 1.<\/li><li> 2500 &#8211; Nous avons mont\u00e9 les bandes des envahisseurs.<\/li><li> 2510 &#8211; Routine g\u00e9n\u00e9rant de mani\u00e8re al\u00e9atoire des bandes d&#8217;ast\u00e9ro\u00efdes. Fuller dans les niveaux avanc\u00e9s.<\/li><li> 2570 &#8211; Initialisation des variables principales de l&#8217;item.<\/li><li> 5000 &#8211; Changer les couleurs, masquer le curseur et d\u00e9sactiver les majuscules.<\/li><li> 5002 &#8211; Instruction \u00c9cran pendant la lecture des graphiques.<\/li><li> 5010 &#8211; La routine commence pour red\u00e9finir le jeu de caract\u00e8res.<\/li><li> 5020 &#8211; Nous sauvegardons l&#8217;attribut color de chaque ligne de l&#8217;\u00e9cran dans la matrice C $.<\/li><li> 5040 &#8211; Initialise la matrice de la hauteur des diff\u00e9rents ennemis V ().<\/li><li> 5050 &#8211; Initialise la position des bombes ennemies.<\/li><li> 5100 &#8211; Affiche le marqueur de score ou l&#8217;enregistrement.<\/li><li> 5400 &#8211; Routine d\u2019effacement de l\u2019\u00e9cran activant les couleurs correspondantes par ligne.<\/li><li> 5600 &#8211; Affiche les 6 rang\u00e9es d&#8217;ennemis dans leur position et avec la couleur correspondante.<\/li><li> 9000 &#8211; Ligne de donn\u00e9es avec graphiques du jeu.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Le jeu<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Ce jeu vid\u00e9o d&#8217;arcade a \u00e9t\u00e9 d\u00e9velopp\u00e9 par Universal et fabriqu\u00e9 par Taito en 1979.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;objectif du jeu est de d\u00e9truire la flotte d&#8217;envahisseurs dans la partie sup\u00e9rieure de l&#8217;\u00e9cran. Pour cela, nous contr\u00f4lons une plate-forme avec un missile. Lors du tir du missile, vous devez \u00e9viter les ast\u00e9ro\u00efdes et les tirs ennemis et toucher un envahisseur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contr\u00f4les:<br> Appuyez sur Z ou X pour d\u00e9placer la plate-forme et le missile vers la gauche ou la droite. Appuyez sur la touche RETOUR pour tirer le missile.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Quelques autres versions<\/h4>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/galaxy-wars-c16.jpg\" alt=\"\" class=\"wp-image-908\"\/><figcaption>Comparaison de la version C-16 avec la version originale<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/galaxy-wars-c16v.jpg\" alt=\"\" class=\"wp-image-912\"\/><figcaption>Le C-16 en action !<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/galaxy-wars-zx.jpg\" alt=\"\" class=\"wp-image-907\"\/><figcaption>Comparaison de la version ZX Spectrum avec la version d&#8217;arcade originale<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/ceobeta.oric.org\/wp-content\/uploads\/2019\/07\/galaxy-wars-zx-1.jpg\" alt=\"\" class=\"wp-image-914\"\/><figcaption>le ZX Spectrum en action<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Infos g\u00e9n\u00e9rales Ce jeu est une adaptation de la version pr\u00e9c\u00e9demment programm\u00e9e pour le COMMODORE-16 et le ZX-SPECTRUM. Pour cela, j&#8217;ai copi\u00e9, ligne par ligne, le code de la version C-16, en y apportant de petites modifications car elles ont le m\u00eame nombre de lignes et peuvent toutes deux utiliser ELSE. Pour la premi\u00e8re fois, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":904,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[337,348,22,362],"tags":[662,765],"class_list":["post-900","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-337","category-basic","category-ceomag","category-games","tag-ceomag353","tag-dancresp"],"_links":{"self":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/posts\/900","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/comments?post=900"}],"version-history":[{"count":0,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/posts\/900\/revisions"}],"wp:attachment":[{"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/media?parent=900"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/categories?post=900"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oric.bqtt.net\/index.php\/wp-json\/wp\/v2\/tags?post=900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}