En fait une sorte de mini jeu où on controle un bonhomme (sprite) sur l'écran ect, mais le prob c'est que je trouve pas la technique pour qu'il ne se collisionne pas avec d'autre sprite présent et fixe (ex : une petite maison dans un coin).
Avec des condition x<130 ect, le problème c'est que le bonhomme ne franchit plus jamais cette distance ensuite, au lieu de pouvoir la franchir sauf quand C sur le sprite de la maison.
Bref, comment faire pour qu'un sprite qu'on controle ne puisse pas entrer en collision avec un autre sprite fixe ???
Voilà mon code (de nioubi, je sais ...

#define USE_TI89 #define OPTIMIZE_ROM_CALLS #define SAVE_SCREEN #include <tigcclib.h> void _main(void) { static unsigned long sprt[]={ 0xE00000, 0xFFE0000, 0x30018000, 0x40004000, 0xBF1FA000, 0xA110A000, 0xEDF6E000, 0xA110A000, 0xBF1FA000, 0x80002000, 0x80E02000, 0x40404000, 0x38038000, 0xFFE0000, 0xE00000, 0x7BC0000, 0x8020000, 0x10010000, 0x2C068000, 0x52094000, 0x22088000, 0x3F80000, 0x2480000, 0x4440000, 0xAB60000, 0x1FBF0000, 0x1FBF0000, 0x0, 0x0, 0x0, 0x0, 0x0}; //sprite bonhommme static unsigned long sprt2[]={ 0xE000, 0x11000, 0x20800, 0x404F0, 0x80260, 0x100160, 0x2700E0, 0x450060, 0x870020, 0x1000010, 0x2000008, 0x4000004, 0xFFFFFFE, 0x1004710, 0x1004510, 0x1004710, 0x1FFFFF0, 0x1000010, 0x1000010, 0x1000010, 0x17C0310, 0x1440310, 0x1440010, 0x14407D0, 0x17C0450, 0x1000450, 0x1000450, 0x1154450, 0x11FC450, 0x1104450, 0x1FFFFF0, 0x0}; //sprite maisonnette. static unsigned long sprt3[]={ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; //dernier sprite est le sprite d'effacement pour le mouvement. short x=0,y=0,tt=0; INT_HANDLER save_int_1; clrscr(); save_int_1 = GetIntVec(AUTO_INT_1); SetIntVec(AUTO_INT_1, DUMMY_HANDLER); do { if(_rowread(0x7E)&0x8 && x+20<160) //touche droite { Sprite32(x,y,32,sprt3,LCD_MEM,A_XOR); x=x+1; } if(_rowread(0x7E)&0x2 && x>0) //touche gauche { Sprite32(x,y,32,sprt3,LCD_MEM,A_XOR); x=x-1; } if(_rowread(0x7E)&0x4 && y+28<100) //touche bas { Sprite32(x,y,32,sprt3,LCD_MEM,A_XOR); y=y+1; } if(_rowread(0x7E)&0x1 && y>0) //touche haut { Sprite32(x,y,32,sprt3,LCD_MEM,A_XOR); y=y-1; } if(_rowread(0x23F)&0x1) tt = 1; Sprite32(x, y, 32, sprt, LCD_MEM, A_OR); //affichage du bonhomme et de la maison. Sprite32(130,0,32,sprt2,LCD_MEM,A_OR); } while(tt !=1); clrscr(); SetIntVec(AUTO_INT_1, save_int_1); }
Dites moi donc svp qu'est ce qu'il y a à modifier pour empecher les collisions (vous pouvez tester vous VTI pour mieux voir).
Merci bcp !!!!!!

PS : merci à squale92 pour son tuto où j'ai pu voir comment faire des petits trucs pour débuter comme ce bout de code là ..
[edit]Edité par Pim89 le 06-02-2002 à 19:15:34[/edit]