AMOS Pro community 2020.1 / Exemples de code Amos

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

  • Créateur
    Sujet
  • #75812
    Alain.Treesong
    • Level 5
    • Messages : 209

    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 58)

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

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

      « 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 : 209

          @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 : 209

            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 : 209

                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 : 209

                  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 : 209

                      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 : 108

                        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 : 209

                          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 : 209
                            #143910
                            nuts-amande
                            • Level 1
                            • Messages : 18

                              Hello,

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

                               

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

                                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 : 111

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

                                  Amiga 500 ACA500+

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