RYGAR (./3) :
puis je voudrais que lorsque le bas du carré blanc arrive en contact avec le haut du carré rouge placé sur sa trajectoire par le joueur cela réalise une action (genre affiche un nouveau sprite sur l'air de jeu ou incrémente un compteur de plus 1)
Zerosquare va apporter une réponse je pense.
Avant la boucle principale, je déclare des variables:
int etape,posx,posy,blancx,blancy;
int tempa, drapa;
là tu peux en déclarer des nouvelles, par exemple je rajoute ici la variable rgc:
int etape,posx,posy,blancx,blancy;
int tempa, drapa;
int rgc;
plus bas, dans la boucle principale, tu peux lire le commentaire de la dernière ligne:
// Collision 2
// carré rouge intéractif avec carré blanc (taille 32*32):
// X
if (posy+5>blancy & posy-5<blancy+32) // posy+5 correspond au bord Bas du carré rouge // posy-5 correspond au bord Haut du carré rouge
{
if (posx+5>blancx & posx+5<blancx+10) {posx=blancx-5;SCBX(SCBro) = posx;} // teste le bord droite du carré rouge
if (posx-5>blancx+22 & posx-5<blancx+32) {posx=blancx+36;SCBX(SCBro) = posx;} // teste le bord gauche du carré rouge
}
// Y
if (posx+5>blancx & posx-5<blancx+32) // posx+5 correspond au bord Droite du carré rouge // posx-5 correspond au bord Gauche du carré rouge
{
if (posy+5>blancy & posy+5<blancy+10) {posy=blancy-5;SCBY(SCBro) = posy;} // teste le bord bas du carré rouge
if (posy-5>blancy+22 & posy-5<blancy+32) {posy=blancy+36;SCBY(SCBro) = posy;} // teste le bord haut du carré rouge
}
if (posy-5>blancy+22 & posy-5<blancy+32) {posy=blancy+36;SCBY(SCBro) = posy;} // teste le bord haut du carré rouge
là, je met en plus
++rgc; if (posy-5>blancy+22 & posy-5<blancy+32) // teste le bord haut du carré rouge
{
posy=blancy+36;SCBY(SCBro) = posy;
++rgc; // incremente la variable rgc (rgc=rgc+1)
}
RYGAR (./3) :
C'est cette derniere etape qui me pose probleme je n'arrive pas à voir ou dans ton code rajouter ma requete, j'ai essayer de faire un truc du genre :
if (posy-5<blancy+4)
{
SCBDATA(SCB) = nouveau sprite;
DrawSprite(SCBnouveau sprite);
}
Mais sans résultat...
il faut chainer les sprites au préalable. Il me semble que tu avais dis dans un message que tu avais chainé 60 ou 80 sprites, me trompe je ?
Quoi qu'il en soit, il faut :
1- déclarer tout tes sprites
avant la boucle principale, puis les chainer.
2- dans la boucle principale, tu modifie seulement les coordonnées de ces sprites.
3- et donc ton programme aura un seul DrawSprite