JavaGame Programming Tutorial - Flappy Bird Redux (5 / 12 stap)

Stap 5: Speler en belemmering klassen

Sinds we zijn begonnen met het skelet van klassen, vooraf we nu aan het schrijven van de speler en belemmering klassen. Standaard, moeten we weten dat deze klassen een fundamentele doel dienen: het laden van de afbeelding van de resource die wordt gebruikt door het object, schaal van de afbeelding de gewenste afmetingen krijgen en instellen van de X- en Y-coördinaten (de linkerbovenhoek van de beelden, de xLoc en de yLoc) en krijgen de breedte en de hoogte van de afbeelding van het object.

Want ik heb dit project al voltooid, I 'm gonna drop een spoiler op u allen: voor de botsingdetectie, uitgelegd in een latere stap, u moet ook een methode die geeft als resultaat een rechthoek die het object omvat, evenals een methode die retourneert van het object BufferedImage. Nu dat je alles wat nodig is weet, zal ik u de volledige code voor de vogel, BottomPipe en TopPipe klassen. Alle drie de klassen zijn identiek gestructureerd, die alleen verschillen in naamgeving.

Wanneer de klassen zijn eerste geïnstantieerd, worden de gewenste breedte en hoogte van de beelden doorgegeven aan de klassen in de constructor, die zal automatisch de schaal van de afbeelding door het aanroepen van de methode scale. Tot slot, u zult opmerken er getWidth en getHeight methoden die een try/catch blok bevat. Dit is om te helpen met het voorkomen van logica kwesties in TopClass.

Zult u merken wanneer u de BufferedImage maakt bezwaar, het wordt gemaakt met behulp van het ARGB-type. Dit is gebaseerd op het verlangen naar een alfa-kanaal moet worden opgenomen. U zult zien waarom in de botsing detectie stap.

 import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.Image; import java.awt.image.BufferedImage; public class Bird { //global variables private Image flappyBird; private int xLoc = 0, yLoc = 0; /** * Default constructor */ public Bird(int initialWidth, int initialHeight) { flappyBird = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("resources/blue_bird.png")); scaleBird(initialWidth, initialHeight); } /** * Method to scale the bird sprite into the desired dimensions * width The desired width of the flappy bird * height The desired height of the flappy bird */ public void scaleBird(int width, int height) { flappyBird = flappyBird.getScaledInstance(width, height, Image.SCALE_SMOOTH); } /** * Getter method for the flappyBird object. * Image */ public Image getBird() { return flappyBird; } /** * Method to obtain the width of the Bird object * int */ public int getWidth() { try { return flappyBird.getWidth(null); } catch(Exception e) { return -1; } } /** * Method to obtain the height of the Bird object * int */ public int getHeight() { try { return flappyBird.getHeight(null); } catch(Exception e) { return -1; } } /** * Method to set the x location of the Bird object * x */ public void setX(int x) { xLoc = x; } /** * Method to get the x location of the Bird object * int */ public int getX() { return xLoc; } /** * Method to set the y location of the Bird object * y */ public void setY(int y) { yLoc = y; } /** * Method to get the y location of the Bird object * int */ public int getY() { return yLoc; } /** * Method used to acquire a Rectangle that outlines the Bird's image * Rectangle outlining the bird's position on screen */ public Rectangle getRectangle() { return (new Rectangle(xLoc, yLoc, flappyBird.getWidth(null), flappyBird.getHeight(null))); } /** * Method to acquire a BufferedImage that represents the Bird's image object * Bird's BufferedImage object */ public BufferedImage getBI() { BufferedImage bi = new BufferedImage(flappyBird.getWidth(null), flappyBird.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics g = bi.getGraphics(); g.drawImage(flappyBird, 0, 0, null); g.dispose(); return bi; } } 
 import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.Image; import java.awt.image.BufferedImage; public class BottomPipe { //global variables private Image bottomPipe; private int xLoc = 0, yLoc = 0; /** * Default constructor */ public BottomPipe(int initialWidth, int initialHeight) { bottomPipe = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("resources/tube_bottom.png")); scaleBottomPipe(initialWidth, initialHeight); } /** * Method to scale the BottomPipe sprite into the desired dimensions * width The desired width of the BottomPipe * height The desired height of the BottomPipe */ public void scaleBottomPipe(int width, int height) { bottomPipe = bottomPipe.getScaledInstance(width, height, Image.SCALE_SMOOTH); } /** * Getter method for the BottomPipe object. * Image */ public Image getPipe() { return bottomPipe; } /** * Method to obtain the width of the BottomPipe object * int */ public int getWidth() { return bottomPipe.getWidth(null); } /** * Method to obtain the height of the BottomPipe object * int */ public int getHeight() { return bottomPipe.getHeight(null); } /** * Method to set the x location of the BottomPipe object * x */ public void setX(int x) { xLoc = x; } /** * Method to get the x location of the BottomPipe object * int */ public int getX() { return xLoc; } /** * Method to set the y location of the BottomPipe object * y */ public void setY(int y) { yLoc = y; } /** * Method to get the y location of the BottomPipe object * int */ public int getY() { return yLoc; } /** * Method used to acquire a Rectangle that outlines the BottomPipe's image * Rectangle outlining the BottomPipe's position on screen */ public Rectangle getRectangle() { return (new Rectangle(xLoc, yLoc, bottomPipe.getWidth(null), bottomPipe.getHeight(null))); } /** * Method to acquire a BufferedImage that represents the TopPipe's image object * TopPipe's BufferedImage object */ 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(); return bi; } } 
 import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.Image; import java.awt.image.BufferedImage; public class TopPipe { //global variables private Image topPipe; private int xLoc = 0, yLoc = 0; /** * Default constructor */ public TopPipe(int initialWidth, int initialHeight) { topPipe = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("resources/tube_top.png")); scaleTopPipe(initialWidth, initialHeight); } /** * Method to scale the topPipe sprite into the desired dimensions * width The desired width of the topPipe * height The desired height of the topPipe */ public void scaleTopPipe(int width, int height) { topPipe = topPipe.getScaledInstance(width, height, Image.SCALE_SMOOTH); } /** * Getter method for the TopPipe object. * Image */ public Image getPipe() { return topPipe; } /** * Method to obtain the width of the TopPipe object * int */ public int getWidth() { return topPipe.getWidth(null); } /** * Method to obtain the height of the TopPipe object * int */ public int getHeight() { return topPipe.getHeight(null); } /** * Method to set the x location of the TopPipe object * x */ public void setX(int x) { xLoc = x; } /** * Method to get the x location of the TopPipe object * int */ public int getX() { return xLoc; } /** * Method to set the y location of the TopPipe object * y */ public void setY(int y) { yLoc = y; } /** * Method to get the y location of the TopPipe object * int */ public int getY() { return yLoc; } /** * Method used to acquire a Rectangle that outlines the TopPipe's image * Rectangle outlining the TopPipe's position on screen */ public Rectangle getRectangle() { return (new Rectangle(xLoc, yLoc, topPipe.getWidth(null), topPipe.getHeight(null))); } /** * Method to acquire a BufferedImage that represents the TopPipe's image object * TopPipe's BufferedImage object */ public BufferedImage getBI() { BufferedImage bi = new BufferedImage(topPipe.getWidth(null), topPipe.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics g = bi.getGraphics(); g.drawImage(topPipe, 0, 0, null); g.dispose(); return bi; } } 

Gerelateerde Artikelen

Flappy Bird Hat

Flappy Bird Hat

Flappy Bird is een mobiele computerspel (in 2013) waarvan het doel is dat de gebruiker navigeren een geanimeerde vogel te vliegen tussen groene pijpen zonder hen te slaan. Hoe hoger de score, de meer pijpen die de vogel heeft gepasseerd en hoe "beter
Flappy Bird Pen

Flappy Bird Pen

Flappy Bird is een wereldwijd beroemde spel geworden. Hoewel er uit de app store (scheur), ik wilde nog steeds deze tutorial voor de mensen die dit doen en stipl geniet ervan alot! Hoop dat u geniet van!Een meisje in mijn school kwam naar school met
Flappy Bird Hack op de DIY Gamer Kit

Flappy Bird Hack op de DIY Gamer Kit

Dit leerprogramma zal u tonen hoe te spelen rond met en de instellingen van de Flappy Bird-spel dat is inbegrepen in de DIY Gamer bibliotheek wijzigen.Voor deze tutorial moet u een Gamer en een USB-kabel. Zorg ervoor dat u de Gamer bibliotheek hebt g
Backup-kopie uw Flappy Bird en delen met vrienden

Backup-kopie uw Flappy Bird en delen met vrienden

Flappy Bird is verdwenen. De app is verdwenen uit de iTunes App Store en Google Play. Tenzij u het reeds gedownload, vinden niet u één van's werelds meest populaire video games overal.Wacht, je kan nog steeds krijgen van mensen die al gedownload! Dan
Hoe kom je terug Flappy Bird! (iOS)

Hoe kom je terug Flappy Bird! (iOS)

Als je de gruwel gemist ook bekend als Flappy Bird, hier is de manier om terug te gaan Flappy Bird* U moet heb het toen het uit OR ELSE dit WONT werk! * * moet iOS 6 of 7 *Stap 1: Ga naar de App Store Eerste ga naar de App Store en kraan op Updates.S
Hoe hack Flappy Bird

Hoe hack Flappy Bird

welke manier voor kappen flappy bird op een geworteld telefoon.Stap 1: Controleer of dat uw telefoon is geworteld u beschikken over een geworteld telefoon bewerken van apps.Stap 2: Zorg ervoor dat u Flappy birdStap 3: Download Cheat Droid dit kan wor
How To Get Back Flappy Bird

How To Get Back Flappy Bird

dit werkt alleen als u de app hebt gedownload en u wegvagen op. Geniet van!Stap 1: Open de App Store Open de App Store en ga naar het tabblad gekocht. Dit kan variëren met uw ios/android-versie. Android locatie kan variëren. Op ios ga 6 onder "update
Gelukkigste vogel kleur in flappy bird

Gelukkigste vogel kleur in flappy bird

in deze studie die ik probeerde te vinden die de gelukkigste flappy bird-kleurStap 1: Speel flappy bird 10 keer met elke vogel dit is niet een echte score mijn highscore is veel lager.Stap 2: het gemiddelde en zet het op de gridStap 3: grafiek het la
Arduino gebaseerde Bi-color LED Matrix Flappy Bird Game

Arduino gebaseerde Bi-color LED Matrix Flappy Bird Game

We hebben een flink aantal projecten met behulp van de Bi-kleur (rood en groen) LED Matrix Driver Module kits van jolliFactory gebouwd en ze hebben gepubliceerd als instructables hier. Elk van deze modules twee MAX7219 Display Driver ICs gebruikt voo
LEGO Flappy Bird Mosiac

LEGO Flappy Bird Mosiac

Hier is een eenvoudige gids voor het bouwen van je eigen Flappy Bird...Stap 1: De baseOm te beginnen moet u 3 van elk van de volgende stenen:1 breed zwart2 brede groene1 breed wit4 grote groene1 breed zwarten een 8 en 1 brede vlakke plaat.Bestel ze v
How To Install flappy bird op Android, zonder ooit hebben het oorspronkelijk

How To Install flappy bird op Android, zonder ooit hebben het oorspronkelijk

nu dat er niet veel flappy bird instructables geboekt heb ik besloten om te posten hoe je Flappy Bird ooit zonder deze te downloaden voordat het werd afgebroken.Stap 1: Dingen die nodig zijn Een computer, een Sd-kaart lezer of USB stekker, Android en
How to get Flappy Bird terug voor Android - No Fake

How to get Flappy Bird terug voor Android - No Fake

sinds Flappy Bird is genomen uit de Play Store, duizenden van ons hebben geprobeerd de real thing terugvinden. Velen denken 'Waarom de heck ik deze verwijderen?' of zelfs 'waarom niet ik downloaden?'. Nu vanwege de Flappy Bird Rage kopen mensen pre g
How To Hack Flappy Bird

How To Hack Flappy Bird

vandaag zal ik u tonen hoe te hacken flappy birdStap 1: Start om te vliegen Beginnen met vliegen als normaalNiet stervenStap 2: Pas de derde buis Zodra u voorbij de derde buis kunt u beginnen hackenStap 3: Start hacken Om te beginnen hacken van druk
Real-Life, bespeelbare versie van "Flappy Bird" in A Box

Real-Life, bespeelbare versie van "Flappy Bird" in A Box

ik gemaakt deze levensechte, bespeelbare versie van "Flappy Bird" met behulp van de Arduino Duemilanove, 3 servomotoren, 2 knoppen, een luidspreker, een reed switch rietschakelaar en handvol zeldzame aarde magneten.Ga hiervoor eerst naar een vak