NEW 6 years ago
Voici le code que j'ai fait. il est commenté;Voici ce que j'ai voulu faire : lorsque le personnage va a droite, la carte va a gauche et inversement...
https://gist.github.com/Martisse/15547028ebf1a4b6a5a88aaf5cdb3288
Codnpix
6 years ago
Sympatique petit univers :) !
Voici une proposition très simple de ce que tu pourrais faire, c'est exactement le même principe que mon exemple plus haut :
int positionCamera;
void setup() {
//...
}
void loop() {
while(!gb.update());
gb.display.clear();
//ENTREE
if(gb.buttons.repeat(BUTTON_RIGHT, 1)) { //déplacer personnage a droite
playerPosition_x = playerPosition_x + 1;
//position_carte = position_carte - 1; pas besoin de faire bouger la carte, la position du joueur suffit pour faire le calcul
}
if(gb.buttons.repeat(BUTTON_LEFT, 1)) { //déplacement personnage a gauche
playerPosition_x = playerPosition_x - 1;
//position_carte = position_carte + 1;
}
if(gb.buttons.pressed(BUTTON_B)) {
arme = 1;
}
//calcul positionCamera en fonction de playerPosition_x :
if(playerPosition_x <= gb.display.width() / 2) positionCamera = 0;//pour que la camera n'aille pas au delà de l'image si le sprite arrive au bord à gauche
else if (playerPosition_x >= 200) positionCamera = - 240 + gb.display.width();//même chose pour le bord droit
else positionCamera = (gb.display.width() / 2) - playerPosition_x;//sinon la camera suit le sprite
//AFFICHAGE
gb.display.drawImage(positionCamera, 0, carte_1Data); //carte
gb.display.drawImage(positionCamera + playerPosition_x, 40, heroData); //héroine //il faut ajouter la position de la camera à celle du joueur pour que la relation soit établie.
gb.display.drawImage(positionCamera + 60, 40, ennemi_1Data); //ennemi
gb.display.setColor(BLACK);
gb.display.fillRect(0,0, 80,7); //carré noir affichant les donneés du jeu
gb.display.drawImage(2,0,faimData); //barre de faim
gb.display.drawImage(9,0,faimData); //barre de faim
gb.display.drawImage(16,0,faimData); //barre de faim
gb.display.drawImage(56,0, coeurData); //coeur
gb.display.drawImage(64,0, coeurData); //coeur
gb.display.drawImage(72,0, coeurData); //coeur
gb.display.setCursor(31,1);
gb.display.print("epee"); //type d'arme
}
NEW 6 years ago
Sympatique petit univers :) !
Voici une proposition très simple de ce que tu pourrais faire, c'est exactement le même principe que mon exemple plus haut :
int positionCamera;
void setup() {
//...
}
void loop() {
while(!gb.update());
gb.display.clear();
//ENTREE
if(gb.buttons.repeat(BUTTON_RIGHT, 1)) { //déplacer personnage a droite
playerPosition_x = playerPosition_x + 1;
//position_carte = position_carte - 1; pas besoin de faire bouger la carte, la position du joueur suffit pour faire le calcul
}
if(gb.buttons.repeat(BUTTON_LEFT, 1)) { //déplacement personnage a gauche
playerPosition_x = playerPosition_x - 1;
//position_carte = position_carte + 1;
}
if(gb.buttons.pressed(BUTTON_B)) {
arme = 1;
}
//calcul positionCamera en fonction de playerPosition_x :
if(playerPosition_x <= gb.display.width() / 2) positionCamera = 0;//pour que la camera n'aille pas au delà de l'image si le sprite arrive au bord à gauche
else if (playerPosition_x >= 200) positionCamera = - 240 + gb.display.width();//même chose pour le bord droit
else positionCamera = (gb.display.width() / 2) - playerPosition_x;//sinon la camera suit le sprite
//AFFICHAGE
gb.display.drawImage(positionCamera, 0, carte_1Data); //carte
gb.display.drawImage(positionCamera + playerPosition_x, 40, heroData); //héroine //il faut ajouter la position de la camera à celle du joueur pour que la relation soit établie.
gb.display.drawImage(positionCamera + 60, 40, ennemi_1Data); //ennemi
gb.display.setColor(BLACK);
gb.display.fillRect(0,0, 80,7); //carré noir affichant les donneés du jeu
gb.display.drawImage(2,0,faimData); //barre de faim
gb.display.drawImage(9,0,faimData); //barre de faim
gb.display.drawImage(16,0,faimData); //barre de faim
gb.display.drawImage(56,0, coeurData); //coeur
gb.display.drawImage(64,0, coeurData); //coeur
gb.display.drawImage(72,0, coeurData); //coeur
gb.display.setCursor(31,1);
gb.display.print("epee"); //type d'arme
}
NEW 6 years ago
Arf... avec le décalage horaire, tu m'as devancé (j'suis allé me coucher + tôt que toi !).
Bon, ben il semble que le pbm soit résolu :-)