La Place des Développeurs FUSION-C Codez en C pour MSX les doigts dans le nez !
ericb59
Membre non connecté
Conseiller Municipal
Reprise du message précédent
Merci Monos c'est corrigé.Bien le RLE, je n'y avait pas pensé.
Pour être plus rapide dans le décodage je ferai une mise à jour avec un module en assembleur.
ericb59
Membre non connecté
Conseiller Municipal
Monos :
Oui c'est améliorable. Hate d'avoir une mise à jour de fusion C pour peut être le prochain jeu après prisonnier III !
Oui c'est améliorable. Hate d'avoir une mise à jour de fusion C pour peut être le prochain jeu après prisonnier III !
Qu'est-ce que tu souhaiterais comme mise à jour ?
Pour l'instant j'ai fait des corrections sur le manuel, et le livre.
Corrigé des bugs sur :
Getche.s
vdp_graph2.s
setdate.s
Ajouté les fonctions :
MouseRead
SetRealTimer
RealTimer
CovoxPlay
SC2Circle
SC2FilledCircle
SetBorderColor
et quelques autres bricoles
ericb59
Membre non connecté
Conseiller Municipal
Monos :
Je n'ai pas vu si on pouvais rendre invisible ou pas un sprite en particulier. Je ne sais pas si le harware faire ça !
Heu non. Pour ça faut le déplacer sous la coordonnées y>212 si tu ne veux plus le voir. Ou alors tu lui assignes un pattern vide.
ericb59
Membre non connecté
Conseiller Municipal
Monos :
Le tips da la coordonné oui, ça je savais, mais je pensais qu'il y avait un flag pour activer ou non un id de sprite.
En fait c'est probable que oui. Mais je ne le connais pas.
Visiteur
Vagabond
Message : 0
Il n'existe pas de commande pour désactiver l'affichage d'un seul sprite. Il faut effectivement le placer en y>212 ou utiliser la commande EC (early clock) et x=0 pour ne plus afficher le sprite à l'écran. Il existe la commande SPD "sprite display" (bit 1 du registre #8 du VDP) pour désactiver ou activer l'affichage de tous les sprites. Ceci est valable en sprite mode 2.
Ca serait bien d’intégrer la fonction diskLoad qui est beaucoup plus rapide par exemple pour charger des fichiers SC5.
J'utilise pour l'instant la version de code-C , mais ça serait super pratique
Aussi revoir certaine fonction au niveau args.
comme par exemple ;
pour le pattern , on comprend, par contre, le sprite_no pour l'index de la palette a utiliser, la c'est un peu brouillon je trouve, et ne parlons pas de ec_color qu'on sait pas a quoi ça correspond
Y'a encore du boulot a ce niveau, mais mis a part cela, ca fonctionne pas si mal que ca
J'utilise pour l'instant la version de code-C , mais ça serait super pratique
Aussi revoir certaine fonction au niveau args.
comme par exemple ;
Code C :
extern void PutSprite( char sprite_no, char pattern_no, char x, char y, char ec_color ); // Put A sprite on Screen
pour le pattern , on comprend, par contre, le sprite_no pour l'index de la palette a utiliser, la c'est un peu brouillon je trouve, et ne parlons pas de ec_color qu'on sait pas a quoi ça correspond
Y'a encore du boulot a ce niveau, mais mis a part cela, ca fonctionne pas si mal que ca
ericb59
Membre non connecté
Conseiller Municipal
Anata :
pour le pattern , on comprend, par contre, le sprite_no pour l'index de la palette a utiliser, la c'est un peu brouillon je trouve, et ne parlons pas de ec_color qu'on sait pas a quoi ça correspond
Code C :
extern void PutSprite( char sprite_no, char pattern_no, char x, char y, char ec_color ); // Put A sprite on Screen
pour le pattern , on comprend, par contre, le sprite_no pour l'index de la palette a utiliser, la c'est un peu brouillon je trouve, et ne parlons pas de ec_color qu'on sait pas a quoi ça correspond
C'est pas faux !
Visiteur
Vagabond
Message : 0
Je reviens quelques posts en arrière concernant la lecture de données à partir d'un fichier.
Dans le cas où la mémoire contient des '00' à l'emplacement de la structure FCB, ça fonctionne, mais je vous conseille, avant d'appeler la fonction fcb_open, de choisir le lecteur de disquettes sur lequel se trouve le fichier à lire (0=lecteur par défaut, 1=lecteur A, 2=lecteur B, etc...).
exemple : vous avez déclaré :
pour le lecteur A faites :
et d'initialiser les positions de lecture :
ensuite l'ouverture :
et la lecture :
fcb_read retourne le nombre d'octets effectivement lus. Utile pour détecter la lecture complète du bloc et la fin du fichier en cas de lecture en plusieurs fois.
Edité par Visiteur Le 12/03/2019 à 07h44
Dans le cas où la mémoire contient des '00' à l'emplacement de la structure FCB, ça fonctionne, mais je vous conseille, avant d'appeler la fonction fcb_open, de choisir le lecteur de disquettes sur lequel se trouve le fichier à lire (0=lecteur par défaut, 1=lecteur A, 2=lecteur B, etc...).
exemple : vous avez déclaré :
Code C :
static FCB file;
pour le lecteur A faites :
Code C :
file.drive_no = 0;
et d'initialiser les positions de lecture :
Code C :
file.cluster_offset=0; file.current_record=0; file.random_record=0;
ensuite l'ouverture :
Code C :
if((rc=fcb_open( &file )) != FCB_SUCCESS) { printf("Open file error %x\n\r",rc); return 1; }
et la lecture :
Code C :
rd=fcb_read( &file, buffer, length );
fcb_read retourne le nombre d'octets effectivement lus. Utile pour détecter la lecture complète du bloc et la fin du fichier en cas de lecture en plusieurs fois.
Edité par Visiteur Le 12/03/2019 à 07h44
ericb59
Membre non connecté
Conseiller Municipal
Youtube !!!
Je commence à mettre en place mon prochain jeu : un plateformer. (Je dois finaliser pripri ausssi)
Cela marche pas trop mal !!!
Maintenant j'ai mon dilemme, jeu de plateforme futuriste ou med fantastique xd
Pas encore arrêté tout ça.
Je commence à mettre en place mon prochain jeu : un plateformer. (Je dois finaliser pripri ausssi)
Cela marche pas trop mal !!!
Maintenant j'ai mon dilemme, jeu de plateforme futuriste ou med fantastique xd
Pas encore arrêté tout ça.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie