Étape 5: Joueur et Obstacle Classes
Étant donné que nous commençons avec le squelette des classes, nous avançons maintenant à écrire les classes joueur et obstacle. Par défaut, il faut savoir que ces classes servent un objectif fondamental : charger l’image de ressources utilisée par l’objet, à l’échelle l’image aux dimensions requises, obtenir et définissent les coordonnées X et Y (le coin supérieur gauche des images ; xLoc et position) et obtenir la largeur et la hauteur de l’image de l’objet.
Parce que j’ai déjà terminé ce projet, je vais laisser tomber un spoiler sur vous tous : pour la détection de collision, a expliqué lors d’une étape ultérieure, vous devez également une méthode qui retourne un rectangle qui englobe l’objet, en plus d’une méthode qui retourne BufferedImage l’objet. Maintenant que vous savez tout ce qu’il faut, je vous donnerai le code complet pour les classes de Bird, BottomPipe et TopPipe. Ces trois classes sont identiquement structurées, ne différant que par les conventions de nommage.
Lorsque les classes sont instanciés tout d’abord, la largeur désirée et la hauteur des images sont transmis aux classes dans le constructeur, qui dimensionnera automatiquement l’image en appelant la méthode scale. Vous remarquerez Enfin, il existe des méthodes getWidth et getHeight qui contient un bloc try/catch. C’est pour aider à prévenir les problèmes de logique dans TopClass.
Vous remarquerez que lorsque vous créez le BufferedImage objet, il est créé en utilisant le type ARVB. Ceci est basé sur le désir d’une couche alpha à inclure. Vous verrez pourquoi dans l’étape de détection de collision.. * Image * / public Image getPipe() {return bottomPipe;} / ** * méthode pour obtenir la largeur de l’objet BottomPipe * int * / public int getWidth() {return bottomPipe.getWidth(null);} / ** * méthode pour obtenir la hauteur de l’objet BottomPipe * int * / public int getHeight() {return bottomPipe.getHeight(null);} / ** * méthode pour définir l’emplacement de x de l’objet BottomPipe * x * / public void setX(int x) {xLoc = x;} / ** * méthode pour obtenir l’emplacement x de l’objet BottomPipe * int * / public getX() int {return xLoc;} / ** * méthode pour définir la localisation y de la Objet BottomPipe * y * / public void setY (int y) {position = y;} / ** * méthode pour obtenir l’emplacement y de l’objet BottomPipe * int * / public getY() int {return position;} / ** * méthode utilisée pour obtenir un Rectangle qui décrit l’image de la BottomPipe * Rectangle décrivant la position de la BottomPipe à l’écran * / public Rectangle getRectangle() {return (new Rectangle (xLoc, position, bottomPipe.getWidth(null), bottomPipe.getHeight(null)));} / ** * méthode pour acquérir un BufferedImage qui représente l’objet image de la TopPipe * objet BufferedImage de TopPipe * / public BufferedImage getBI() {BufferedImage bi = new BufferedImage(bottomPipe.getWidth(null) bottomPipe.getHeight(null), BufferedImage.TYPE_INT_ARGB) ; Graphics g = bi.getGraphics() ; g.drawImage (bottomPipe, 0, 0, null) ; g.Dispose() ; retour bi ; } }