Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Problème addin
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Problème addin

Posté le 09/12/2013 13:45

voila, je suis en train de préparer quelques graphisme pour mon prochain jeu et il y a un problème. mon programme peut afficher des lignes mais dès que je mets un GetKeyWait, mon écran est blanc. Comment faire pour que les traits restent pendant que le GetKeyWait fonctionne?

PS, mon programme est en fichier joint

Fichier joint


Précédente 1, 2, 3 ··· 10, 11, 12, 13, 14, 15, 16 ··· 18, 19, 20 Suivante
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 08/04/2014 19:48 | #


Lephenixnoir a écrit :
En fait, le problème est le suivant.
Considérons un sprite de 8*x de large.
01100111 00111100 01101101

Après inversion, il est transformé en
11100110 00111100 10110110



ça s'est bon pour les sprites 8*x

Mais pour les sprites 16*x, c'est ça le problème

Je pense que c'est coder comme ça (exemple pour un bmp de 20*x)
[red]10101110 10101010 10101001 11001001 1011[/red][blue]0000[/blue]

en rouge, l'image codé et en bleu, des bites non utilisées dans l'image

et le problème c'est que en inversant le dernier octet, je devrais faire
11010000 et non 00001101


c'est ça

Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 08/04/2014 20:17 | #


Oui, c'est ça

Pour que ton algo soit efficace, il faudrait que tu inverses toute une ligne d'un coup. Du coup, tu n'aurais plus de problème, même pas de fin de ligne.

Mais je ne comprends pas pourquoi tu te casses la tête.
Réécris un algorithme d'affichage qui l'affiche à l'envers, c'est bien plus simple, optimisé et performant !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 08/04/2014 20:20 | #


voici un algo pour une bmp de 16*16
void MOL_reverse_bmp_16(char* bmp){
    int i,prm;
    for(i=0;i<16;i+=2){
        bmp[i]=0xFF-bmp[i];
        bmp[i+1]=0xFF-bmp[i+1];
        prm=bmp[i];bmp[i]=bmp[i+1];bmp[i+1]=prm;
    }
}


j'ai regardé le code de pierrotLL et sa fonction ML_bmp est super chaude à comprendre
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 08/04/2014 21:20 | #


Mais non, il ne faut pas la faire comme ça.
Il faut juste changer la position du pixel. Exemple;
ML_pixel(x+xi,y+yi,1);

avec x et y les coordonnées de base, et xi et yi les coordonnées actuelles, devient
Ml_pixel(x+MAX-xi,y+yi,1);

avec MAX la largeur du bitmap. C'est beaucoup plus simple !

Après, la fonction est pas facile à décoder, mais si tu le souhaites, je peux te donner un coup de main pour ça.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 09/04/2014 19:52 | #


http://www.planet-casio.com/Fr/forums/topic12544-11-Probleme-addin-(YuGiOh).html#104061

Pour en revenir à notre "discussion" sur le codage en hexa, j'ai réfléchi.
En fait,le fichier ressemblera à ça
01 41 62 79 73 73 65 20 65 74 69 6E 63 65 6C 61 6E 74 65 06 40 07 58 05

avec l'ID, le nom, l'ATK,la DEF et le niveau

c'est ça
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 09/04/2014 19:53 | #


Exact !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 09/04/2014 19:59 | #


le plus dur ça va être de tout écrire en hexadécimal parce que 600 fois 1 monstre, c'est pas de la tarte,

il y a eu moyen d'aller plus vite, genre un tableur ou j'écris toutes les infos en ascii et lui il convertit direct en hexadecimal(avec comme option si c'est un texte en ascii dans la case ou un nombre en decimal)
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 09/04/2014 20:01 | #


Je te l'ai dit.

LePhenixNoir a écrit :
[...] les coder avec un programme (opération inverse de la lecture, il s'agit de la meilleure solution 8) ) [...]

Program-ception, il n'y a que ça de vrai !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 09/04/2014 20:03 | #


en clair, ça existe pas

Ben, je vais écrire un petit programme qui lit un .csv pour le convertir en hexa
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 09/04/2014 20:06 | #


Mais non, écris un programme qui convertit des variables dans le code pour les écrire en hexa.
Tu les réunis par groupes, tu fais des fichiers fragmentaires et tu réunis le tout avec HxD.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 09/04/2014 20:09 | #


quels variables :huh:
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 09/04/2014 20:18 | #


Tu définis le nom, l'ID, etc... comme des variables dans ton programme d'écriture, qui les écrira dans un fichier.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 09/04/2014 20:55 | #


Mais il va écrire 400 comme 34 30 30 et non 01 90 comme je voudrai
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 09/04/2014 21:00 | #


Ben non, il faut écrire comme cela.
memory_writefile(handle,(void *)(&data),size);

Ça fonctionnera, si tu écris dans un fichier.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 10/04/2014 19:13 | #


mais ça marche que quand le nombre est inférieur à 255(donc a 0xFF) donc quand il est codé que sur 1 octet car quand je fais
fputc(600,fichier);

HxD me mets un seul octet 0x58 au lieu de 2 octet 0x02 0x58
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 10/04/2014 19:22 | #


Forcément, fputc n'écrit qu'un caractère !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 10/04/2014 19:29 | #


donc j'utilise fprintf ou fputs?
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 10/04/2014 19:35 | #


fprintf est toujours mieux
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 10/04/2014 19:43 | #


mais du coup quand je fais fprintf(fichier,600); le programme crashe et quand je fais fprintf(fichier,"%d",600); il écrit 0x36 0x30 0x30(donc il écrit "600" au lieu de 600)
Lephenixnoir En ligne Administrateur Points: 24572 Défis: 170 Message

Citer : Posté le 10/04/2014 20:37 | #


fprintf attend un paramètre de type const char *, suivi de valeurs.
Je m'exlique.

600 est une valeur codée sur 2 octets, donc tu ne peux pas t'en servir telle quelle. Voici un code qui peut te permettre de faire ça.

short atk = 600;
char *ch = calloc(20,1);
ch[0] = atk & 65280;
ch[1] = atk & 255;
fprintf(file,"%s",ch);

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Intelligide Hors ligne Membre de CreativeCalc Points: 49 Défis: 5 Message

Citer : Posté le 11/04/2014 18:24 | #


code::Blocks me met un warnings
||=|34|warning: overflow in implicit constant conversion [-Woverflow]|


sur la ligne ecrit[0]=600&65280;

et il n'écrit rien dans la fichier
Précédente 1, 2, 3 ··· 10, 11, 12, 13, 14, 15, 16 ··· 18, 19, 20 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 181 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd