debutant en C
15 sujets de 1 à 15 (sur un total de 24)
- 1
- 2
-
hello,
je me lance dans la programmation en C sur mon miga (donc je suis un bleu).
2 questions:
– avec les instructions
Move (win->RPort, colonne, ligne);
Text( win->RPort, « A », 6);
j’arrive a placer la lettre A ou je veux dans ma fenetre.
je peux facilement modifier la position, mais pas changer la lettre.
il y a t’il une instruction comme Text ou l’on met une variable à la place de la saisie entre guillemet.
exemple:
variablelettre= »B »;
text(win->RPort, variablelettre, 1);
– comment utilise t’on les sprites (visible sur carte graphique). 😮
Un petit truc comme ça…
int TaVariable = 56;
char MaChaine[ 20 ];
sprintf( MaChaine, « %d », TaVariable );
…
text( win->RPort, MaChaine, ???);
Voilà…
sprintf est semblable au printf mais permet de ranger tout ça dans un tableau de caractères, dont l’adresse du premier caractère sera passé à ta fonction au lieu d’une chaine en « dur ».
A+
hello,
merci pour vos reponses et adresses.
Mavati, je ne peux utiliser sprintf car cette instruction utilise un ecran text et non un ecran graphique (besoin de me placer au pixel ).
Demoniak, ca marche pas car le dernier parametre de l’instruction text c’est la longueur de caractere de la chaine.
alors j’utilise maintenant ceci:
UBYTE caractere[]= »A »:
struct Intuitext sprite={
1,0,JAM1,159,220,NULL,caractere,NULL};
PrintIText ( win->RPort, sprite,0,0);
donc maintenant je peux ghanger mon caractere, mais je ne sais pas comment modifier une structure.
car les chiffres 159 et 220 sont ma position horizontale et verticale que je voudrai pouvoir changer.
je pense qu’il faut utiliser les pointeurs mais je ne sais pas comment.
a+ /
////// dans intuition.h
struct IntuiText
{
UBYTE FrontPen, BackPen;
UBYTE DrawMode;
WORD LeftEdge;
WORD TopEdge;
struct TextAttr *ITextFont;
UBYTE *IText;
struct IntuiText *NextText;
}
struct IntuiText sprite;
ben avec ca, tu fais sprite.LeftEdge = 100; et sprite.TopEdge = 150; et comme ca tu auras ton caractére à un autre emplacement de l’écran…
yo,
tu devrais te trouver un tuto sur la programmation en C, parce que là, tu as clairement de grosses lacunes. Désolé, je n’ai pas d’url sous la main. Le seul bouquin que je connaisse, c’est le langage C par Kernighan et Ritchie ; mais certains le trouvent un peu, euh, difficile à comprendre et/ou erroné par endroits, bien qu’écrit par les créateurs du langage. Quoi qu’il en soit, ça ne peut pas te faire de mal.
Pas de sprites sur carte graphique, hormis le pauvre sprite 3 couleurs de la souris.
nopseudo : Soit le bienvenu ! La programmation en C sur Amiga est passionnante !
Par contre, si tu débutes en C, je te conseillerais de ne pas brûler les étapes et avant d’envisager la programmation graphique, tu devrais faire tes armes en C standard ou avec de la manipulation de fichiers par exemple, histoire de commencer à utiliser les bibliothèques du système.
Pour obtenir des résultats graphiques rapidement, il y a SDL aussi. Et concernant l’Amiga, tu trouveras le tutoriel de StAn sur la programmation graphique … c’est sur guru-meditation.net bien sûr !
Le bouquin avec lequel j’ai grandis en C et que j’ai toujours sous la main, c’est « Méthodologie de la programmation en C », de Jean-Pierre Braquelaire. C’est mon Kernighan à moi Je le trouve plus clair, plus large, plus accessible, …
C’est amusant, apparemment le même bouquin a été écrit par « Achille » Braquelaire et par « Jean-Pierre » Braquelaire…
Effectivement, d’après ce que je lis sur cette page : http://linuxfr.org/2000/10/01/364.html , ce livre a l’air plus complet et intéressant que « Le langage C ».
hello,
je progresse à petit pas en c, et viens de finir mes 2 premiers programmes.
mais….sous dos (attention j’etais comme meme en emulation avec pc task faisant tourner borland turbo C).
– premier constat en dos c’est tres facile de faire un programme alors que sous mon miga il me faut faire plein de preliminaires.
-2eme constat sur dos tu trouve plein de livre pour pas cher en francais alors que le miga « you have to speak english ».
bref c’est pas facile mais je m’accroche.
alors 1er question: sous miga existe t’il un equivalent à
et 2 eme question: je recherche a connaitre les possibilites de IDCMP avec l’intuition library, car des sources en c trouvées sur le net, me donne le VANILLAKEY ou le RAWKEY pour la gestion des touches clavier, mais sur mon compilateur Storm C 3, il les ignore
a+
Comparer le DOS et AmigaOS, c’est comme comparer une trotinette et une navette spatiale.
Le DOS est un environnement monotâche qui a très peu à faire, juste fournir des services d’allocation mémoire rudimentaires, quelques babioles système, et des interruptions d’affichage/son/clavier ultra basiques.
A coté de ça, tu as amigaos, environnement multitâche avec ressources partagées où chaque application est en concurrence. L’OS propose une API assez clean pour pas mal de choses, son seul gros défaut étant que toutes les structures sont exposées. Mais tu comprends bien que dans ce cadre de ressources partagées, tu ne peux pas dire aussi simplement : « bon j’ai besoin du clavier, de la souris et de l’écran, alors dessine moi un pixel à tel endroit et ta gueule l’OS ».
Tu as juste à ouvrir proprement une fenêtre (dans son propre écran si besoin est), dessiner dans la fenêtre avec les primitives prévues à cet effet (qui bien plus nombreuses et puissantes que sous DOS). Les évènements sont récupérables sous forme de messages intuition (IDCMP). Parmi eux, tu trouves des types de message relatifs aux actions effectuées sur l’écran/fenêtre, et d’autres relatifs à une touche pressée, une souris qui a bougé (RAWKEY, VANILLAKEY), …
Si stormc3 refuse de compiler ton exemple, c’est probablement que tu n’as pas inclus les bonnes includes (intuition/intuition.h et proto/intuition.h). Sinon c’est juste stormc qui est pourri, chose tout à fait possible, ce compilateur est une daube infâme.
nopseudo a écrit :
hello,
– premier constat en dos c’est tres facile de faire un programme alors que sous mon miga il me faut faire plein de preliminaires.
En effet, c’est facile de faire un programme qui ne fait rien. Je ne dis pas ça pour dénigrer vu que je t’ai justement conseillé de commencer progressivement. Mais comme le dit Fab le Sage, AmigaOS est beaucoup plus riche, donc plus complexe. D’ailleurs dans ton premier post, tu montres que tu t’attaques directement à Intuition !
-2eme constat sur dos tu trouve plein de livre pour pas cher en francais alors que le miga « you have to speak english ».
bref c’est pas facile mais je m’accroche.
La programmation est semée d’embûches mais c’est tellement passionnant ! Quant aux nombreux livres sur la programmation DOS … bof bof. Pour les infos et ressources en français, il y a guru-meditation, l’inévitable avec des tutoriels (voir URL en signature).
alors 1er question: sous miga existe t’il un equivalent à
et 2 eme question: je recherche a connaitre les possibilites de IDCMP avec l’intuition library, car des sources en c trouvées sur le net, me donne le VANILLAKEY ou le RAWKEY pour la gestion des touches clavier, mais sur mon compilateur Storm C 3, il les ignore
Pas d’équivalent direct à conio, non. C’est marrant je me posais les mêmes questions quand j’ai commencé
Je n’ai pas tout compris la suite … je te renouvelle mon conseil : tu veux passer directement de conio sous DOS à la gestion des fenêtres et des événements sous AmigaOS. Patience.
Mais on ne va pas te laisser tomber. Tu veux faire quoi ? Ouvrir une fenêtre et récupérer les événements clavier pour les afficher dedans ?
hello Corto,
ta derniere question est la bonne, je veux recuperer les evenement clavier.
je viens de faire un space invaders en texte (pas de graphisme juste des lettres) qui marche pas mal, mais sous dos.
je voudrai maintenant le passer sous mon miga.
je sais ouvrir proprement une fenetre et les library…merci aux exemples de guru mediation, mais sur le site je n’ais pas trouvé d’exemple de gestion du clavier.
a+
nopseudo : J’allais te conseiller une étape qui aurait consistée à passer par SDL avant d’attaquer les entrailles d’Intuition mais je vois que tu t’en sors plutôt bien
Pour la gestion des événements liés à une fenêtre, il faut qu’elle soit ouverte en indiquant quels messages IDCMP elle pourra recevoir. Ensuite, tu utilises le port de message de la fenêtre qui te permettra d’attendre le signal d’arrivée d’événements (fonction Wait). Enfin, un gros switch pour les différents types d’événements.
Tu devrais trouver plein d’exemples … sinon, dans la version soft de tinygl, que j’avais recompilée pour Amiga, il y a dans les sources un fichier glut.c qui contient tout ça.
15 sujets de 1 à 15 (sur un total de 24)
- 1
- 2
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › debutant en C