AMOS Pro community 2020.1 / Exemples de code Amos

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

  • Ce sujet contient 43 réponses, 6 participants et a été mis à jour pour la dernière fois par nuts-amande, le il y a 1 mois et 2 semaines.
  • Créateur
    Sujet
  • #75812
    Alain.Treesong
    • Level 5
    • Messages : 197

    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 13 réponses de 31 à 43 (sur un total de 43)

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

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

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

    Ç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 : 197

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

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

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

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

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

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

    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 2
    • Messages : 57

    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)
    A1200 Blizzard MKIV @ 50MHZ, A500+ 2MO CHIP
    A2000 Vampire, C16, ZX Spectrum 48Ko, CPC 6128



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

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

    Hello,

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

     

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