Logicielsmoto.com http://www.logicielsmoto.com/phpBB/ |
|
Nouveau projet Jeu : démineur Xtreme http://www.logicielsmoto.com/phpBB/viewtopic.php?f=1&t=672 |
Page 2 sur 8 |
Auteur: | Neotenien [ 21 Mai 2022, 12:32 ] | ||
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme | ||
La toute dernière version (avec effet sonores) en Basic de Demineur Xtreme en opièce jointe (fonctionne pour TO8 et MO6, car nécessite une souris). J'aimerais des avis sur les niveaux de difficultés, j'ai l'impression que pour les niveaux les plus dur (10x10 30 bombes ou 20x20 80 bombes), le hasard aide pas mal...
|
Auteur: | Bentoc [ 21 Mai 2022, 13:03 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Merci ! J'essaye ça dans le week end ;-) |
Auteur: | Neotenien [ 21 Mai 2022, 16:47 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Bentoc a écrit: Merci ! J'essaye ça dans le week end ;-) Pas de problème Benoit et je te met au défi de réussir 3 partties de suite du niveau 10x10 30 bombes ou 25x20 100 bombes LOL. Snon pour rejouer une partie, c'est la touche "n" ou "N". autrement ça quitte le programme. |
Auteur: | Samuel Devulder [ 22 Mai 2022, 12:06 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Oh, il y a un bug! (d'interface utilisateur ) Le jeu ne peut marcher que sur émulateur. En effet, sur la vraie machine il n'y a pas de pointeur souris visible. Du coup on ne sait pas ce que l'on pointe à l'écran. Il faudrait utiliser l'instruction TURTLE pour dessiner un pointeur sous les coordonnées souris durant la saisie. Je dois avoir dans mes vieux code une TURTLE à la forme de pointeur utilisable en basic (et extramon). Fichier(s) joint(s):
Commentaire: Flèche en 640x200 Image1.png [ 79.54 Kio | Vu 4462 fois ] Fichier(s) joint(s):
Commentaire: Flèche en 320x200 Ce qui serait bien serait alors aussi de vouloir déplacer ce pointeur au clavier avec les flèches. L'appui sur des touches permettrait aussi de poser un drapeau (P) ou découvrir la case pointée (D). Ainsi le jeu marcherait sur toutes les machines ayant le basic 128.Image2.png [ 56.13 Kio | Vu 4462 fois ] Et pourquoi pas alors utiliser les coordonnées du light-pen pour pointer une case aussi (si une souris est branchée, les instruction inpen retournent les coordonnées souris il me semble) et le clavier pour choisir de poser un drapeau ou découvrir la case. Ainsi le jeu utiliserait tous les périphériques d'entrée thomson. |
Auteur: | Neotenien [ 22 Mai 2022, 22:07 ] | ||
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme | ||
Samuel Devulder a écrit: Oh, il y a un bug! (d'interface utilisateur ) Le jeu ne peut marcher que sur émulateur. En effet, sur la vraie machine il n'y a pas de pointeur souris visible. Du coup on ne sait pas ce que l'on pointe à l'écran. Il faudrait utiliser l'instruction TURTLE pour dessiner un pointeur sous les coordonnées souris durant la saisie. Je dois avoir dans mes vieux code une TURTLE à la forme de pointeur utilisable en basic (et extramon). Fichier(s) joint(s): Le fichier joint Image1.png n’est plus disponible. Fichier(s) joint(s): Le fichier joint Image2.png n’est plus disponible. Ce qui serait bien serait alors aussi de vouloir déplacer ce pointeur au clavier avec les flèches. L'appui sur des touches permettrait aussi de poser un drapeau (P) ou découvrir la case pointée (D). Ainsi le jeu marcherait sur toutes les machines ayant le basic 128.Et pourquoi pas alors utiliser les coordonnées du light-pen pour pointer une case aussi (si une souris est branchée, les instruction inpen retournent les coordonnées souris il me semble) et le clavier pour choisir de poser un drapeau ou découvrir la case. Ainsi le jeu utiliserait tous les périphériques d'entrée thomson. Je sais Samuel mais c'est déjà intégré à la dernière version depuis hier soir (et c'est galère en mode TO7 pour les modes tracés! Mais je m'en suis sorti... a coup de "console,,0" et de "show 0") Je livre cette dernière version même si elle n'est pas encore totalement optimisée... Cette dernière version calcule plus rapidement les grilles puisqu'en fait elle fait la somme des cases autour dès qu'une bombe est validée (et pas comme la version précédente qui passait en revuee toutes les cases avant de dévouvrir une bombe..) Suivat le nombre de bombe, le gauin de vitesse peut être jusqu'à triplé. Mais plus il y a de bombe pour une même grille et plus le gain diminue. Un exemple, une grille de 20x20 avec 40 bombes mettra 12s contre plus de 25 auparavant. Pour ce qui est de la tortue, j'ai fait une simple flècje dirigée en haut et à gauche... Je pense que c'est assez visible mais pour les cases noire, vue que la couleure de tracée est noire, la tortue ne sera plus visible dans ces zone, en fait ya juste a changer ma procédure pour les cases "vide". En fait le basic des Thomson est vraiment génial!! Dommage qu'i n'y ait pas un compilateur pour accélerer les trruc critiques comme justement le calcul de grille ou les découverte de cases en cascade... Ok ya "Speedy Wonder" (qui est en fait issu du Basic 1.1 des Amstrad) mais ya énormément de contraintes sur ce code basic c'est pour ça que Pascal Base serait préférable s'il était plus complet...
|
Auteur: | Neotenien [ 25 Mai 2022, 00:10 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Hello, j'ai commencé les premiers tests en assembleur, notamment pur la constitution de la grille et c'est très très rapide!! Moins d'1 seconde pour la plus forte grille (25x20 avec 100 bombes) Cependant, j'ai un soucis dans l'algorithme que j'ai adpaté de la source basic. Il s'agit du calcul des cases se trouvant au dessus et en dessous d'une bombe. L'estrait de code qui pose probème semble être ici Code: *Début TTMT CASES AUTOUR LDD ADTAB1 ';5,2 SUBD XMAX ';7,3 SUBD #1 ';4,3 STD ADTAB2 'J LOCAL EN BASIC ;5,2 LDA YTMP1 ';4,2 BEQ INITA4 'SI YTMP1=0 ';3,2 JSR ADDCAS ';7,2 - addtab1 est l'adresse en RAM dcontenant la bombe posée (dans un tableau de TAILLE cases) - XMAX contient le nombre de case horizontale-1 - ADTAB2 est un word dans lequel on stocke l'adresse en RAM d'une des cases environnante... Vu que la table commence en $9000 si on a des case en dessous ça ne pose pas de problème - YTMP1 : est l'ordonnée de la bombe dasn la grille. - INIT4 est la suite du programme quand, ici, on est déjà au sommet de la grille (Y) J'ai l'impression que l'instruction SUB ne fonctionne pa comme je le voudrais.Supposojns qu'on soit en $9040 (donc Y>0) pour ADTAB1 ( D contient l'adresse ADTAB1, on lui soustrait le contenu de XMAX, soit ici, 25. puis on lui soustrait 1. la nouvelle adresse en ADTAB2 devrait être$9014 on est bien d'accord ? Ou alors ça agit comme si YTMP1 valait 0 po_rtant ça n'est pas le cas puisque les coordonnées des bombes sont calculés en fonction de XTMP1 et YTMP et sur la gtille il y a biend es bombes réparties un peu partout. Je sèche là... |
Auteur: | Samuel Devulder [ 25 Mai 2022, 00:21 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Citation: Supposojns qu'on soit en $9040 (donc Y>0) pour ADTAB1 ( $9040 - 25 - 1 = $9026D contient l'adresse ADTAB1, on lui soustrait le contenu de XMAX, soit ici, 25. puis on lui soustrait 1. Citation: la nouvelle adresse en ADTAB2 devrait être $9014 on est bien d'accord ? Ben non.. 40 - 26 = 14 en décimal, mais là tu travailles en hexa et la soustraction donne $9026.
|
Auteur: | Neotenien [ 25 Mai 2022, 14:53 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
j'ai pu finalement écrire le programme assembleur pour la création de grilles avec le randomizer de Samuel. La vitesse est d'au moins x30 comparé au Basic (avec le même algorithme de création de grille) Voir la vidéo |
Auteur: | Samuel Devulder [ 25 Mai 2022, 17:09 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Je me demande s'il ne serait pas bien aussi d'avoir l'affichage de la grille en assembleur. Car en basic, cet affichage est lent à mort. Y a t'il des calculs couteux pour compter le nombre de bombes dans le voisinage et en déduire la couleur de chaque cellule? Dans ce cas, faire ce calcul en ASM sera intéressant pour accélérer le jeu en basic. La routine récursive de découverte des zones à 0, sera aussi super intéressant en assembleur je pense. |
Auteur: | Neotenien [ 25 Mai 2022, 19:12 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Samuel Devulder a écrit: Je me demande s'il ne serait pas bien aussi d'avoir l'affichage de la grille en assembleur. Car en basic, cet affichage est lent à mort. C'est prévu également... Ca ne sera pas long à mettre en place... La vitesse sera équivalente à celle qu'on trouve dans "Super Androide" quand on voit la spirale, ce ne sont que des caractères,... et c'est fort dommage, parce que le jeu Super Androide perd en lisibilité... La version Amstrad de Lode Runner est géniale et on pourrait faire la même sur TO8 et MO6 en mode bm4. Samuel Devulder a écrit: Y a t'il des calculs couteux pour compter le nombre de bombes dans le voisinage et en déduire la couleur de chaque cellule? Dans ce cas, faire ce calcul en ASM sera intéressant pour accélérer le jeu en basic. Les cellules contiennent déjà les chiffres (de 0 à 8) lors du démarrage d'une partie, le clic ne fait que les afficher au lieu du cache (il y a un tableau "statut" à 2 pour "caché" à 1 pour "drapeau" et à 0 pour "découvert")... Quand il y a le statut "découvert", plus aucune action n'est possible sur la case. En fait, pour chaque nouvelle bombe positionnée, le programme fait le calcul des cases alentours dans la foulée. A l'origine toutes les cases ont la valeur 48 (asci = "0", et la couleur 0 est justement le noir!! C'est ce qui est pas mal dans l'algorithme c'est que la couleur est donnée par rapport au code ASCI de la case, ensuite pour le caractère, ya juste qu'à afficher un CHR$()) 1/ Tirage au sort d'une bombe 2/ Quand la bombe est positionnée, pour chacune des 8 cases autour: a/ si c'est une bombe on passse à c/ b/ on incrémente l'octet de la case c/on passe au test de la case suivante 3/ Si nbbomb <>0 retour en 1/ Pour les tests des 8 cases aux alentours, comme dans le programme basic, I est la position de la bombe courante et J celle de la case à tester. Sachant qu'on a déjà les coordonnées de X et Y de chaque bombe (a servi à calculer son rang dans le tableau à 1 dimension). J = I J=J-XMAX-1 (c'est pas grave si l'index est inférieur à 0 ici : position juste au desus de la bombe) Si X=0 on saute à l'étape 4 Test : on augmente de 1 si <> bombe etape 2 J=J-1 (case a gauche ne J précédent Test : on augmente de 1 si <> bombe etape 3 J=J+2 (case +2 / J précédent) Si X=XMAX on saute à l'étape 4 Test : on augmente de 1 si <> bombe etape 4 Si J>I on passe à l'étape 5 J=I ->etape 2 etape 5 J=J+1 Si J>I (on a fini les tests puisque ça signifie qu'on a dépassé I+XMAX+2 pour J) -> tirage d'une autre bombe J=J+XMAX (on se retrouve dans la case en dessous de la bombe) Test : on augmente de 1 si <> bombe ->etape 2 Cette routine a l'avantage de réduire le nombre de lignes de code puisque la partie tests en X-1 et X+1 est redondant (étape 2 et 3) Je fournis la partie du code Basic qui traite de ceci Code: 600 'ROUTINE D'INITIALISATION GRILLE 601 FOR I=0 TO TAILTAB : GRILBOMB(I)=48 : GRILSTAT(I)=2 : NEXT : I=0 602 IF NBBOMB=0 THEN 699 603 X=INT(RND*(XMAX+1)) : Y=INT(RND*(YMAX+1)) : I=Y*(XMAX+1)+X : IF GRILBOMB(I)=130 THEN 603 604 NBBOMB=NBBOMB-1 : GRILBOMB(I)=130 607 J=I-XMAX-1 608 IF Y=0 then 612 609 gosub 700 610 J=J-1 : IF X>0 then gosub 700 611 J=J+2 : IF X<XMAX THEN gosub 700 612 IF J>I THEN 614 613 J=I : GOTO 610 614 J=J+1 : IF J>I THEN 602 615 J=J+XMAX 616 IF Y=YMAX THEN 602 617 GOSUB 700 : GOTO 610 699 RETURN 700 IF GRILBOMB(J)<>130 THEN GRILBOMB(J)=GRILBOMB(J)+1 710 RETURN Samuel Devulder a écrit: La routine récursive de découverte des zones à 0, sera aussi super intéressant en assembleur je pense. Je me demande si je vais utiliser les PSH et PULS... Des tests en Basic ont montré qui'l faut au moins une pile de 150 éléments (pour les grosses grilles et avec peu de mines initiales)... dans le code Assembleur, j'ai prévu de la place dès l'emplacement $9600 pour les TO8 (sans utilisation des PUL et PSH) Sinon, je réfléchirai aussi à la possibilité de jouer sur les TO7 et MO5 avec crayon optique, ça suppose une légère modification dans le code Basic... et d'avoir une alternative pour le "clic droit"... Mais bon ça suppose d'utiliser le clavier et le crayon optique en même temps...pas top si l'écran est éloigné du clavier. Pour ce qui est de l'aspect fun, j'ai bien envie de mettre une intro avec un Ersatz de Mc Gyver (parce que dans la nouvelle série, à l'armée, il était spécialiste du déminage avant de rejoindre Phenix) Sinon, j'ai vu qu'il est sorti un démineur sur Atari ST en 2020-2021, BOMBWATCH, où, ici, il y a une case "0" montrée au départ... |
Auteur: | Neotenien [ 26 Mai 2022, 14:53 ] | ||
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme | ||
Bon ben j'ai voulu envoyé un mp à Samuel pour tester la version affichage assembleur des grilles de mines, mais ya pas possibilité de joindre des fichier en mp dans les forum... donc je le fais ici. J'ai donc fini la partie calcul et affichage de grille en assembleur sur Thomson TO8... cf pièce joointe qui est donc cette démo mais avec affochage de grille en assembleur cette fois. La grille de 25x20 100 bombes (500 caractères ASCI à positionner) met entre 1 et 2 secondes contre 14s en BASIC (vitesse x14 tout de même à vue de nez), c'est plus que correct!! Vous pouvez tester les différents niveaux. Et parfois, vous avez des grilles où le chiffre 8 apparait (dans les niveaux où il y a une forte densité de mines). Pour le reste du jeu, j'ai bnesoin d'avis sur: - les différents niveaux de jeu à insérer (le 25x20/100 me parait énoprme mais ça s'appelle "demineur Xtreme, c'est pas pour rien)... cependant les tailles de grille 25x20 ou 20x20, même 15x15 ne pourrait se faire avec des caractères de taille double. C'est pourtant le cas du Jeu Atari ST de même type mais avec une taille de grille plus faible. en 40 caractères de large, on pourrait avoir 20 en grille et 10 (voire 11, il faut laisser une ligne en haut pour les informations) en vertical pour des caratères doubles mais on ne serait plus en niveau Xtreme ici... a moins d'avoir une forte densité de bombe... Mais initialement, je voulais reproduire les niveauix qui existent dans kmines de Linux (30x16 est la taille maxi, soit 480 cases) - le look des caractères (la bombe est franchement moche LOL) - faut-il insérer une aide initiale (sur case=0) comme c'est recommandé ? Voici la partie de code ASS permettant l'affichage de la grille "visible" Code: *************************** * Decouverte grille visible *************************** ORG $8400 SETDP $84 LDX #GRILLC LDB #$1B 'ECHAPPEMENT JSR PUTC LDB #$50 'COULEUR FOND=NOIR JSR PUTC FN3S0 * *POSITION CURSEUR ECRAN LDB #$1F JSR PUTC LDB YTMP2 ADDB YOFSET 'OFFSET DE Y ECRAN ADDB #$40 'NECESSAIRE POUR N1 JSR PUTC LDB XTMP2 ADDB XOFSET 'OFFSET DE Y ECRAN ADDB #$41 'NECESSAIRE POUR N2 JSR PUTC *ATTRIBUTS COULEUR FORME LDB #$1B JSR PUTC LDA ,X 'CODE ASCI LDB ,X+ 'TRAITEMENT COULEUR CMPB #130 BEQ FN3S2 ANDB #15 CMPB #8 'SI COULEUR PASTEL BLO FN3S1 SUBB #8 ORB #$30 'B=xx11xxxx=>7 FN3S1 * ORB #$40 BRA FN3S3 FN3S2 * * LDA #66 LDB #$74 FN3S3 * JSR PUTC TFR A,B *ECRITURE CARACTERE TFR A,B 'CARACTERE A VERS B JSR PUTC * FIN BOUCLE X ET Y INC XTMP2 LDA XTMP2 CMPA XMAX BLS FN3S0 CLR XTMP2 INC YTMP2 LDA YTMP2 CMPA YMAX BLS FN3S0 * RETOUR FONCTION CLR YTMP2 RTS XTMP2 FCB 0 '1er octet tjrs à 0 YTMP2 FCB 0 Ca utilise majoritairement la routine moniteur PUTC. Soit en direct (caractère), soit en utilisant $1F en préambule (pour positionner le curseur) soit en échappement $1B=27 (pour la couleur) Ce qui est étonnant dans le positoinnement du cutrseur est que s'il faut ajouter $40 à la vraie position d'Y il faille ajouter $41 pour la position de X!! bizarre.
|
Auteur: | Samuel Devulder [ 28 Mai 2022, 10:07 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Quelques remarques Code: TFR A,B Je crois que l'un des deux TFR A,B est en trop. En outre comme A et B ont la même valeur, tu peux remplacer lez TFR par un LDB ,x+ pour le caractere et utiliser un simple LDB ,x pour la couleur (voir plus bas).*ECRITURE CARACTERE TFR A,B 'CARACTERE A VERS B Ensuite, je pense que tu peux (encore) gagner en affichage en remarquant ceci: Actuellement tu envois l'équivalent d'une LOCATE pour chaque cellule (FN3S0). Or comme l'affichage est de gauche à droite, sur une même ligne le curseur est déjà à la bonne position. En fait tu ne devrais faire le LOCATE que pour chaque nouvelle ligne Y. Cela ne nécessite que d'ajouter un label: Code: *************************** * Decouverte grille visible *************************** ORG $8400 SETDP $84 ... FN3S0 * *POSITION CURSEUR ECRAN ... LDB XTMP2 ADDB XOFSET 'OFFSET DE Y ECRAN ADDB #$41 'NECESSAIRE POUR N2 JSR PUTC NEXTCELL <=== nouveau label *ATTRIBUTS COULEUR FORME LDB #$1B JSR PUTC ... *ECRITURE CARACTERE TFR A,B 'CARACTERE A VERS B JSR PUTC * FIN BOUCLE X ET Y INC XTMP2 LDA XTMP2 CMPA XMAX BLS NEXTCELL <== nouveau label CLR XTMP2 INC YTMP2 LDA YTMP2 CMPA YMAX BLS FN3S0 * RETOUR FONCTION CLR YTMP2 RTS Enfin pour l'usage de XTMP2/YTMP2, moi j'utiliserais plutôt la pile et les registres A/B comme compteurs en x et y: Code: *************************** car le code sera plus compact et rapide tout comptes faits. On pourrait même accentuer les fonctions en isolant la partie couleur dans une sous routine dédiée (qui protège B avec un PSHS B en entrée). Ca rendrait le code encore plus lisible je pense. Mais bon, c'est toi qui vois car ca ne changera pas la vitesse. Bref au final on pourrait avoir ce code:* Decouverte grille visible *************************** ORG $8400 SETDP $84 LDX #GRILLC LDB #$1B 'ECHAPPEMENT JSR PUTC LDB #$50 'COULEUR FOND=NOIR JSR PUTC LDD #0 NOUVELLE_LIGNE *POSITION CURSEUR ECRAN BSR LOCATE_A_B NOUVELLE_CASE PSHS D *ATTRIBUTS COULEUR FORME LDB #$1B JSR PUTC LDB ,X 'TRAITEMENT COULEUR CMPB #130 BEQ FN3S2 ANDB #15 CMPB #8 'SI COULEUR PASTEL BLO FN3S1 SUBB #8 ORB #$30 'B=xx11xxxx=>7 FN3S1 ORB #$40 BRA FN3S3 FN3S2 LDB #$74 FN3S3 JSR PUTC *ECRITURE CARACTERE LDB ,X+ 'CODE ASCII JSR PUTC * FIN BOUCLE X ET Y PULS D INCA CMPA XMAX BLS NOUVELLE_CASE CLRA INCB CMPB YMAX BLS NOUVELLE_LIGNE * RETOUR FONCTION RTS * routine séparée car ca rends le code plus lisible LOCATE_A_B PSHS D LDB #$1F JSR PUTC LDB 1,S ADDB YOFSET 'OFFSET DE Y ECRAN ADDB #$40 'NECESSAIRE POUR N1 JSR PUTC LDB ,S ADDB XOFSET 'OFFSET DE Y ECRAN ADDB #$41 'NECESSAIRE POUR N2 JSR PUTC PULS D,PC Code: *************************** qui me semble vraiment bien.
* Decouverte grille visible *************************** ORG $8400 SETDP $84 LDX #GRILLC LDB #$1B 'ECHAPPEMENT JSR PUTC LDB #$50 'COULEUR FOND=NOIR JSR PUTC CLRB NOUVELLE_LIGNE CLRA *POSITION CURSEUR ECRAN BSR LOCATE_A_B NOUVELLE_CASE PSHS D LDB ,X+ 'CODE ASCII CELLULE BSR COULEUR_CELLULE JSR PUTC 'AFFICHAGE CARACTERE CELLULE * FIN BOUCLE X ET Y PULS D INCA CMPA XMAX BLS NOUVELLE_CASE INCB CMPB YMAX BLS NOUVELLE_LIGNE * RETOUR FONCTION RTS * gestion couleur (B= code cellule) COULEUR_CELLULE PSHS B *ATTRIBUTS COULEUR FORME LDB #$1B JSR PUTC LDB ,S 'TRAITEMENT COULEUR CMPB #130 BEQ FN3S2 ANDB #15 CMPB #8 'SI COULEUR PASTEL BLO FN3S1 SUBB #8 ORB #$30 'B=xx11xxxx=>7 FN3S1 ORB #$40 BRA FN3S3 FN3S2 LDB #$74 FN3S3 JSR PUTC PULS B,PC * l'équivalent de LOCATE A,B LOCATE_A_B PSHS D LDB #$1F JSR PUTC LDB 1,S ADDB YOFSET 'OFFSET DE Y ECRAN ADDB #$40 'NECESSAIRE POUR N1 JSR PUTC LDB ,S ADDB XOFSET 'OFFSET DE Y ECRAN ADDB #$41 'NECESSAIRE POUR N2 JSR PUTC PULS D,PC |
Auteur: | Neotenien [ 28 Mai 2022, 20:13 ] | ||
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme | ||
Bonjour Dans la dernière version Basic que j'avais envoyé, il y avait des bugs et en plus, pas optimisé. Je livre ici 2 versions Basic, l'une qui change la couleur de forme des chiffres et l'autre changeant la couleur de fond... Le but de cette 2ème version est de prévisualiser le jeu ayant le look "BombWatch" le démineur de l'Atari ST montré en vidéo ci-dessus. Alors bien sûr ça utilise Attrb du Basic en caractère double taille (Ce qui donne un look Intellivision) mais en les remplaçant par des images 16x16, on pourrait obtenir des images équivalentes au jeu Atari ST. J'ai aussi apporté des modifications : 1/ si le nombre de case est <20 en H et <11 en V, on affiche en double taille et ça m'a fait prendre consicence d'un "bug" de l'instruction locate dans cette taille... c'est que ça affiche la position Y en Y-1... 2/ le pointeur de souris s'affiche pour une case découverte nulle 3/ J'ai aussi changé la couleur de fond des cases découvertes (couleur sable, ce qui a du mal à passer avec le "3" jaune). 4/ J'ai amélioré le processus d'affichage en cascade... J'ai passé bcp de temps là dessus, j'avais encore un bug aujourd'hui par rapport à l'ancienne version... Le code Basic est codé de telle sorte que le portage en Assembleur en soit facilité. 5/ En fin de partie, on retourne au menu en appuyant sur n'importe quelle touche sauf Q ou q (qui quitte le jeu) Les 2 versions basic fonctionnent sur TO8 et MO6 Je vous laisse le choix de m'indiquer: si vous préférez la version "forme" ou "fond", le choix des couleurs de fond... Sachant que pour les caractères "doubles", ça sera des images 16x16 où là on sera vraiment proche du jeu Atari ST en Assembleur (à vie de nez, la vitesse est quasiment la même!! En tous cas, pour l'eaffichage de la grille 16x9 c'est la même vitesse!). Un avis aussi quant aux choix des niveaux ? (certians sont peur être trop difficile) Je prévois aussi une partie explicative dans le jeu avec un certain Angus Mac Donner (qui a été démineur avant de rejoindre la fondation Phonix, eh oui comme la série TV) qui parlera... (Addentum) en fait le jeu se jouera en mode "challenge" (avec tableau des record chrono) et un mode "aventure" avec ledit Mac Donner, et des mission éoclogiques en Ukraine... j'en dis pas plus... Je pense que la partie affichage en cascade est au point pour être écrite en Assembleur... Dites moi seulemnt si vous repérez des bug dans ces versions basic...
|
Auteur: | Neotenien [ 01 Juin 2022, 16:14 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Samuel Devulder a écrit: Quelques remarques Code: TFR A,B Je crois que l'un des deux TFR A,B est en trop. En outre comme A et B ont la même valeur, tu peux remplacer lez TFR par un LDB ,x+ pour le caractere et utiliser un simple LDB ,x pour la couleur (voir plus bas).*ECRITURE CARACTERE TFR A,B 'CARACTERE A VERS B Oui ça c'est vu... J'ai modifié de mon côté cette partie affichage, en fait j'ai créé une fonction dédiée à l'affichage d'un caractère. Samuel Devulder a écrit: Quelques remarques[code] TFR A,B Ensuite, je pense que tu peux (encore) gagner en affichage en remarquant ceci: Actuellement tu envois l'équivalent d'une LOCATE pour chaque cellule (FN3S0). Or comme l'affichage est de gauche à droite, sur une même ligne le curseur est déjà à la bonne position. En fait tu ne devrais faire le LOCATE que pour chaque nouvelle ligne Y. Cela ne nécessite que d'ajouter un label Ah bon ? En basic quand tu fais un print (l'équivalent du PUTC), ça va automatiquement à la ligne non ? D'ailleurs, j'imagine que l'affichage d'un caractère se fait de haut en bas (ou plutôt de bas en haut) pour chaque groupe de 8 pxl (GPL). Ce que j'aimerais c'est un truc qui permette d'afficher tous les caractères d'une même ligne en même temps. C'est possible ça en assembleur Thomson ? En tous cas, les tests en assembleur me donnent moins de 2" pour l'affichage de la plus grosse grille (25x20). J'ai terminé la partie assembleur de la découverte en cascade, pas enore testé... Mais il y a 16 grilles en tout (j'ai pris les 3 standard de Windows, celle de KMines et celkui de Bombwatch) et ça affiche en double taille quand le nombre de case H et V le permettent. Et j'ai ajouté une "cloture" de haie autour de chaque grille (pour le mode "aventure") Maintenant il me reste à dessiner différents aspect du visage de "Mc Donner", la carte de l'Ukraine (pour le mode "aventure")... Mais je ne suis pas doué pour le dessin... Je pense utiliser "Grafiti" de FreeGameBlot, mais c'est pas simple pour le mode TO7... En tous cas les résultats me satisfont vraiment! Je ne sais pas à quelle vitesse se fera la cascade mais ça sera très rapide... Comparé à lma version Basic. |
Auteur: | Samuel Devulder [ 02 Juin 2022, 06:53 ] |
Sujet du message: | Re: Nouveau projet Jeu : démineur Xtreme |
Citation: En basic quand tu fais un print (l'équivalent du PUTC), ça va automatiquement à la ligne non ? Le PRINT basic n'est pas équivalent du PUTC. Le PRINT n'est pas atomique et est constitué de pleins de PUTC. En particulier le PRINT basic ajoute un PUTC(NEWLINE) (retour à la ligne) à la fin s'il ne se termine pas par le symbole ";"Code: PRINT "COU"; : REM PAS DE RETOUR A LA LIGNE Donc avec PUTC pas besoin de locate, le curseur passe juste à la colonne suivante automatiquement. Tu gagnera du temps si tu ne fais pas l'équivalent du LOCATE à chaque case.PRINT "COU" : REM RETOUR A LA LIGNE Citation: Ce que j'aimerais c'est un truc qui permette d'afficher tous les caractères d'une même ligne en même temps. C'est possible ça en assembleur Thomson ? Qu'entends du "en même temps". On affiche un caractère à la fois, le "même temps" est relatif. Mais oui sans LOCATE inutiles l'affichage de la grille sera encore plus rapide.
|
Page 2 sur 8 | Heures au format UTC + 1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |