Bonsoir, mon soucis est dans le titre . J'ai créer un système de déplacements de mes images sauf que j'arrive à les déplacer en dehors de la fenêtre JFrame ...
Merci de votre futur aide
Version imprimable
Bonsoir, mon soucis est dans le titre . J'ai créer un système de déplacements de mes images sauf que j'arrive à les déplacer en dehors de la fenêtre JFrame ...
Merci de votre futur aide
Mais encore ?
Pas de screenshots, pas de code, ca va pas être facile de t'aider jusque la...
Sinon il faut simplement contraindre les mouvements en interdisant de position les éléments en dehors de la zone permise.
Excuse moi... je pensais qu'il y avait une méthode spéciale permettant de faire cela..
Methode de déplacement du personnage :
J'ai seulement en gros mon déplacement qui peut se déplacer en dehors de la fenêtre. Et j'aimerais bloqué cela et je me demande si c'est avec un système de collision puisque j'en ai un mais en faire un spécialement pour les dépassement de JFrameCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public void deplacerPerso(){ if(directionPerson == "HAUT"){ this.y -= 25; } else if(directionPerso== "BAS"){ this.y += 25; } else if(directionPerso == "DROITE"){ this.x += 25; } else if(directionPerso == "GAUCHE"){ this.x -= 25 ; } }
Bah ca n'a rien avoir une JFrame. Ce que tu cherches a faire c'est interdire de deplacer un rectangle en dehors d'un rectangle.
Il te manque donc des IF dans tes deplacement afin d'interdire le deplacement quand le rectangle va sortir du rectangle l'englobant.
Le rectangle englobant pouvant etre obtenu en demande a la Jframe (ou son contentPane) sa longueur et sa largeur.
Bonsoir, je vous montre cela avec deux photos.
Alors voila je lance ma JFrame avec une image.
Pièce jointe 161614
Je fais deux déplacements vers le haut au clavier et mon image à disparu . Seulement j'aimerais empecher c à dire que lorsque que mon image est en contact avec la fenetre il ne se passe rien comme un collision quoi.
Pièce jointe 161615
Merci de votre aide
Bah, comme te l'a dit @Wax78, tu dois tester si les coordonnées de ton image dépassent les limites de la JFrame (que tu peux obtenir par getWith() et getHeight() ou getSize()), getW, avec des if et des < et de >.
Par exemple :
Regardes un exemple plus complet ici, dans lequel la balle est déplacée automatiquement. C'est une animation de balle qui rebondit, pas exactement contre les bords, mais contre un rectangle plus petit que la fenêtre, géré par des insets dans l'exemple (si les insets sont à 0, ça revient à rebondir contre les bords de la fenêtre).Code:
1
2
3
4
5
6
7
8
9
10
11 public void deplacerPerso(){ if(directionPerson == "HAUT"){ this.y -= 25; if ( this.y<0 ) this.y=0; // ça dépasse en haut, on force le y a être au bord haut (les y vont de bas en haut de l'écran) } else if(directionPerso== "BAS"){ this.y += 25; if ( this.y+hauteurPerso>getHeight() ) this.y=getHeight()-hauteurPerso; // ça dépasse en bas, on force le y à être au bord bas (hauteurPerso c'est la hauteur de ton image) } ...