AMOS Pro community 2020.1 / Exemples de code Amos

Forum Amiga Coding AMOS Pro community 2020.1 / Exemples de code Amos

  • Ce sujet contient 72 réponses, 9 participants et a été mis à jour pour la dernière fois par Alain.Treesong, le il y a 7 mois.
  • Créateur
    Sujet
  • #75812
    Alain.Treesong
      • Level 5
      • Messages : 224

      Bonsoir,

      Sur AmigaImpact j’ai uploadé à la demande d’un membre du forum une version d’Amos qui peut servir de référence au développement sur Amiga 500 avec ce langage.

      https://www.dropbox.com/s/nch9p4fj59lw4k4/AMOSPro_Community_2020_1.adf?dl=0

      Je l’avais indiqué dans un thread déjà mais il est possible que cela soit passé inaperçu sur ce forum car ce n’était le sujet du thread (ou alors cela n’intéresse pas grand monde…)

      Donc je crée ce thread sur ce forum pour en parler plus en détail. J’ai par ailleurs dans l’idée d’ajouter de temps en temps quelques bouts de code qui serviront d’exemples pour les personnes éventuellement intéressées par du dev avec ce langage avec comme plateforme cible plutôt un Amiga ECS/OCS (généralement un A500 vanille).

      J’ai ajouté un progamme sur le thread d’Amiga Impact que je reporte ici également pour toucher le plus de personnes (si jamais il y en a :-)).

      Donc voici un petit programme qui après compilation fera tourner sur l’axe Y en 50 fps un triangle avec un effet d’ombre. Ce progamme est à utiliser avec la version 2020.1 d’Amos paramétrée avec les extensions incontournables selon moi.

      Ceux qui veulent en parler ou poster d’autres codes n’hésitent pas.

      https://www.dropbox.com/s/jna6hf1o8r981fu/AmosPro2_triangle.png

      Le code :

      ‘ Flat shadow rotating Y triangle by Aghnar/Agima in dec. 2019
      Screen Open 0,320,256,8,Lowres
      Flash Off : Curs Off : Hide : Degree
      Paper 0 : Cls : Palette $0,$666,$888,$BBB,$AAA,$BBB,$CCC,$EEE
      Pen 2
      Double Buffer : Autoback 0
      Blitter Copy Limit 0,48 To 320,208
      Dim C(359),S(359) : For I=0 To 359 : C(I)=256*Cos(I) : S(I)=256*Sin(I) : Next
      X1=64 : Y1=-32 : Z1=0 : X2=-64 : Y2=-32 : Z2=0 : X3=0 : Y3=74 : Z3=0
      XE1=0 : YE1=0 : XE2=0 : YE2=0 : XE3=0 : YE3=0
      X=0 : Y=0 : Z=0 : T=0 : Timer=0
      Do
      Blitter Copy 0,1 To 0,2
      Blitter Copy 0,0 To 0,1
      Add T,1 : If T=10 : Locate 1,26 : Print 500/Timer; » fps » : Timer=0 : T=0 : End If
      Add A,-2,0 To 359
      X=X1*C(A)+Z1*S(A) : Y=Y1*256 : Z=-X1*S(A)+Z1*C(A) : CZ=Z+256*256
      Blitter Clear 0,0
      XE1=160+(X*256)/CZ : YE1=100+(Y*256)/CZ
      X=X2*C(A)+Z2*S(A) : Y=Y2*256 : Z=-X2*S(A)+Z2*C(A) : CZ=Z+256*256
      XE2=160+(X*256)/CZ : YE2=100+(Y*256)/CZ
      X=X3*C(A)+Z3*S(A) : Y=Y3*256 : Z=-X3*S(A)+Z3*C(A) : CZ=Z+256*256
      XE3=160+(X*256)/CZ : YE3=100+(Y*256)/CZ
      Turbo Draw XE1,YE1 To XE2,YE2,1,-1
      Turbo Draw XE2,YE2 To XE3,YE3,1,-1
      Turbo Draw XE3,YE3 To XE1,YE1,1,-1
      Blitter Fill 0,0
      Screen Swap : Wait Vbl
      Loop

       

      Ciao

      Aghnar

       

    Affichage de 15 réponses de 31 à 45 (sur un total de 72)

    Partager sur vos réseaux sociaux préférés :
    Facebooktwitterredditpinterestlinkedintumblrmail

    • Auteur
      Réponses
    • #131973
      Alain.Treesong
        • Level 5
        • Messages : 224

        « Je me suis amusé avec la vitesse de rotation, ça donne des effets assez cool à une certaine vitesse, j’incrémente la vitesse à chaque tour… »

        Cool. On peut remplacer la forme aussi. Tu peux jeter un oeil sur la démo (happy new year 2021) qui l’utilise. Il y a d’autres formes.

        Avec l’exemple avec le triangle, tu as un exemple 3D. Donc les deux premiers « snippets » sur le github donnent de bonnes bases pour faire des effets sympas.

        « J’ai récupéré la dernière version d’AmosUnity, ça tourne bien seul… »

        Cela, c’est une sorte de version 3.0 d’Amos qui est en cours de dev par l’ami Amidark. Moi je t’invite en attendant à utiliser la version que j’ai baptisé Amos Pro community (une sorte de 2.1).

        Comme il y a au moins deux personnes qui semblent regarder ces trucs Amos, je vais continuer à en poster.



        #131984
        nuts-amande
          • Level 1
          • Messages : 18

          Ça roule, je vais regarder et continuer mes expériences :)

          Cela, c’est une sorte de version 3.0 d’Amos qui est en cours de dev par l’ami Amidark. Moi je t’invite en attendant à utiliser la version que j’ai baptisé Amos Pro community (une sorte de 2.1).

          Au temps pour moi, j’ai fait n’importe quoi en installant sur l’Amiga, j’avais récupéré AmosPro Community (d’un de tes posts précédents) et AmosPro Unity je ne sais plus quand et je me suis trompé en les récupérant/installant sur le 1200. Je viens de le refaire avec le Community et ça marche directement :good:

          Comme il y a au moins deux personnes qui semblent regarder ces trucs Amos, je vais continuer à en poster.

          Avec plaisr!

          Sinon je me demandais, l’éditeur Amos a bien vieilli, serait-il difficile d’ajouter de la manipulation de texte avec des expressions régulières ? (je suis un habitué de vi)

          #131987
          Alain.Treesong
            • Level 5
            • Messages : 224

            @nuts-amande

            J’ai fait une alpha d’un éditeur basé sur visual studio code mais je publierai ce truc quand j’aurai terminé « New Bubble Story ».

            Tu peux voir un aperçu ici :

             

            #131988
            Alain.Treesong
              • Level 5
              • Messages : 224

              Hello,

              Une nouvelle entrée dans le dépôt:

              https://github.com/alain-treesong/amiga_coding_in_amos/tree/main/snippet-006_horizontalScrollText

              Cette fois il s’agit d’un exemple permettant de faire un scroll texte horizontal infini (et fluide) pour A500. La routine peut être développée d’ailleurs pour faire un scroll text horizontal infini pour un jeu.

              Il y a un exemple qui effectue un mutli scroll :

              A +

              #132143
              nuts-amande
                • Level 1
                • Messages : 18

                Excellent, je teste ça sous peu. J’ai les dualplayfield encore à tester, j’ai consacré du temps à installer un workbench 3.2.

                Sinon pour l’IDE Amos, est-ce que AOZ ne ferait pas le job déjà ? Histoire de ne pas perdre du temps…je ne sais pas si AOZ permet d’voir un résultat autre qu’en html5.

                #132158
                Alain.Treesong
                  • Level 5
                  • Messages : 224

                  Sinon pour l’IDE Amos, est-ce que AOZ ne ferait pas le job déjà ? Histoire de ne pas perdre du temps…je ne sais pas si AOZ permet d’voir un résultat autre qu’en html5.

                  Je ne sais pas, je n’ai jamais utilisé cela.

                  …  j’ai consacré du temps à installer un workbench 3.2.

                  Ce serait interessant d’avoir un retour de Amos avec le 3.2. Il faut savoir qu’il y a des petites incompatiblités avec les OS, parfois introduites par les extensions.

                   

                  #133247
                  Alain.Treesong
                    • Level 5
                    • Messages : 224

                    Salut,

                    Voici une petite démo disponible sur les sites habituels comme demozoo par exemple : https://demozoo.org/productions/303755/

                    Cette demo rassemble différents exemples de code donné dans le dépôt github, avec deux ou trois lignes de codes supplémentaires entre les scenes pour que cela soit plus joli.

                    Cela met en valeur le code posté sur le dépôt.

                    Je continuerai d’ajouter des exemples l’année prochaine bien sûr tout comme le dév de New Bubble Story et bien sûr sans doute une ou deux démos.

                    Bonne année

                    Aghnar/Agima

                     

                     

                    #133480
                    nuts-amande
                      • Level 1
                      • Messages : 18

                      Bonne année également, merci.

                      Bon, il est temps que je m’y remette, je vais avoir de plus en plus de code à checker là ! :)
                      J’ai fait un petit script Arexx pour cleaner les fichiers icône dans les sous-répertoires d’Amos, car en browsant les rép’ avec Dirwork (ou Dopus) les icônes créées par des softs de dessin ou autres ne servent pas à grand chose, et je commence à avoir des images, des sons dans mes répertoires de projets/exercices avec leur .info

                      J’appelle le script avec un « RX remove_info.rexx %chemin_cible% »
                      Il va effacer les fichiers .info seulement si le chemin contient « AMOS »
                      Chez moi ça donne « RX work:scripts/remove_info.rexx work:AMOS/ »

                      voici le code:
                      /* On clean les .info dans les sous-rep d’AMOS */
                      /* On récupère l’argument */
                      arg argument_utilisateur
                      parse var argument_utilisateur
                      /* VARIABLES */
                      str_amos= »AMOS »
                      /* MAIN */
                      say ‘**** Début du script ****’
                      /*On test d’abord si on est bien dans un sous rép d’AMOS*/
                      say ‘*> Le chemin passé est: ‘argument_utilisateur
                      int_pos=pos(str_amos,argument_utilisateur)
                      if int_pos > 0 then
                      do
                      say ‘*> on peut bosser ici, on est bien dans un sous-rép d »amos’
                      /*On crée un fichier temporaire avec la liste des fichiers à effacer*/
                      IF EXISTS(argument_utilisateur) THEN
                      DO
                      address command ‘list files quick nohead sub info ‘argument_utilisateur’*.info >ram:T/list_info.txt’
                      END
                      IF OPEN(‘textfile’,’ram:T/list_info.txt’,’READ’) THEN
                      DO
                      DO WHILE ~EOF(‘textfile’)
                      line=READLN(‘textfile’)
                      if line ~= » then
                      do
                      fichier=argument_utilisateur || line
                      /* say ‘*> On va effacer le fichier :’fichier */
                      if EXISTS(fichier) then
                      DO
                      address command « delete « fichier
                      /* say ‘*> Fichier ‘fichier ‘effacé !’ */
                      END
                      end
                      END
                      END
                      end
                      else say ‘Aucun répertoire AMOS trouvé, on doit quitter!’
                      /*il faut effacer le ficher temporaire s’il existe */
                      IF EXISTS(‘ram:T/list_info.txt’) THEN
                      DO
                      /* address command « delete ram:T/list_info.txt » */
                      END
                      say  »
                      say ‘—- Fin du script, bye! —-‘
                      exit 0

                      Il aurait été plus facile de coller le fichier au message, mais je ne sais pas si c’est faisable.
                      Le script est assez lisible et pourrait être modifié pour effacer autre chose assez facilement j’imagine. Je décline… :)

                      #133627
                      Alain.Treesong
                        • Level 5
                        • Messages : 224

                        En ce qui me concerne je code sur PC donc le système de fichier est visible depuis l’os de mon PC (facile à faire avec winuae). Les nettoyages peuvent se faire manuellement ou par .bat.

                        En fait voilà comment je code en Amos quand j’utilise l’éditeur Amos : j’ai une config winuae qui est la plus fidèle possible à un amiga 500 en terme de chipset. En particulier je n’ai que 512K de chip car les pb de mémoires sont généralement de la chip. Par contre je mets un max de fast (un max=2mo ;-)) pour pouvoir utiliser l’éditeur Amos pro et je fais attention à la consommation globale de mémoire pour ne pas avoir de surprise quand je teste sur vrai matériel (donc sur mon A500 basique avec 512ko de fast).

                        Je charge Amos depuis un ADF. Pour être précis fait j’ai un fichier « state » avec un raccourci sur mon bureau ce qui me permet d’ouvrir directement winuae avec Amos chargé avec le disque AmosPro en df0: et les différents projets dans un répertoire windows monté sous un certain nom et accessible depuis amos comme on accéderait à un disque dur.

                        J’ai fait d’autres « state » avec Amos compiler, Deluxe Paint, un workbench 3.1 boosté quand je veux accédais à d’autre soft (protracker) ou fabriquer un adf etc.

                        Cela inspirera peut-être quelques uns mais évidemment il y a des milliers de bonnes configs.

                        #133635
                        DarkN3m0
                          • Level 4
                          • Messages : 127

                          En ce qui me concerne je code sur PC donc le système de fichier est visible depuis l’os de mon PC (facile à faire avec winuae). Les nettoyages peuvent se faire manuellement ou par .bat. En fait voilà comment je code en Amos quand j’utilise l’éditeur Amos : j’ai une config winuae qui est la plus fidèle possible à un amiga 500 en terme de chipset. En particulier je n’ai que 512K de chip car les pb de mémoires sont généralement de la chip. Par contre je mets un max de fast (un max=2mo ;-)) pour pouvoir utiliser l’éditeur Amos pro et je fais attention à la consommation globale de mémoire pour ne pas avoir de surprise quand je teste sur vrai matériel (donc sur mon A500 basique avec 512ko de fast). Je charge Amos depuis un ADF. Pour être précis fait j’ai un fichier « state » avec un raccourci sur mon bureau ce qui me permet d’ouvrir directement winuae avec Amos chargé avec le disque AmosPro en df0: et les différents projets dans un répertoire windows monté sous un certain nom et accessible depuis amos comme on accéderait à un disque dur. J’ai fait d’autres « state » avec Amos compiler, Deluxe Paint, un workbench 3.1 boosté quand je veux accédais à d’autre soft (protracker) ou fabriquer un adf etc. Cela inspirera peut-être quelques uns mais évidemment il y a des milliers de bonnes configs.

                           

                           

                          hello

                          Mais super ton idée de state, je viens de tester, c’est impec !

                          en 1 clic je suis direct sur amos !!

                          merci

                           

                          seul petit soucis, il ne garde pas les dimensions de ma fenêtre winuae au lancement

                          Amiga coder (AMOS PRO, 68k)

                          Cthulhu project WIP : (retro Dungeon crawler )
                          https://www.youtube.com/channel/UCDfyk0tscuVFcC7xo6tdhyA

                          PATREON : https://www.patreon.com/DarkN3mo



                          #134299
                          Alain.Treesong
                            • Level 5
                            • Messages : 224

                            Bonjour,

                            Nouvelle source Amos dans le dépôt github : https://github.com/alain-treesong/amiga_coding_in_amos/tree/main/snippet-007_simpleMusicDisk

                            Cette fois, on parle musique avec un petit « music disk » rapidement écrit pour illustrer les instructions basiques :

                            Aghnar / Agima

                            #143609
                            Alain.Treesong
                              • Level 5
                              • Messages : 224
                              #143910
                              nuts-amande
                                • Level 1
                                • Messages : 18

                                Hello,

                                cool, je teste ça sous peu, merci :good:

                                 

                                #150486
                                Alain.Treesong
                                  • Level 5
                                  • Messages : 224

                                  Salut,

                                  Nouvelle intro 64k pour ceux qui s’intéressent à ce genre de truc :

                                  https://youtu.be/5Q4zd2HBdkI

                                  ADF : https://www.dropbox.com/s/prhyzhb2iqhxamy/pw.adf?dl=0

                                  #150490
                                  AlexMenchi
                                    • Level 4
                                    • Messages : 148

                                    Et ça tient en seulement en moins de 64Ko, chapeau!

                                    Amiga 500 ACA500+ / WB3.1
                                    Amiga 1200 Blizzard 1230 / Indivision MK3 AGA / WB 3.2

                                  Partager sur vos réseaux sociaux préférés :
                                  Facebooktwitterredditpinterestlinkedintumblrmail
                                  Affichage de 15 réponses de 31 à 45 (sur un total de 72)
                                  • Vous devez être connecté pour répondre à ce sujet.