Javaspel programmering handledning - Flappy fågeln Redux (5 / 12 steg)

Steg 5: Spelare och hinder klasser

Eftersom vi börjar med skelettet av klasser, vi nu gå vidare till skriva klasserna spelare och hinder. Som standard, måste vi veta att dessa klasser tjänar ett grundläggande syfte: Ladda resurs bilden används av objektet, skala bilden till önskat mått, få och ange X- och Y-koordinater (övre vänstra hörnet av bilder, xLoc och yLoc) och få bredd och höjd av objektets bild.

Eftersom jag har redan slutfört detta projekt, jag kommer att släppa en spoiler på er alla: för kollision upptäckt, förklarade i ett senare steg, du behöver också en metod som returnerar en rektangel som omfattar objektet, samt en metod som returnerar objektets BufferedImage. Nu när du vet allt som behövs, ger jag dig den fullständiga koden för klasserna fågel, BottomPipe och TopPipe. Alla tre klasser är identiskt strukturerade, endast avviker i namnkonventioner.

När klasserna är första instansieras, skickas önskad bredd och höjd av bilderna till klasserna i konstruktören, som automatiskt kommer att skala bilden genom att skala-metoden. Slutligen, märker du det finns getWidth och getHeight metoder som innehåller ett try/catch block. Detta är att hjälpa till med att förhindra logik problem i TopClass.

Du kanske märker när du skapar BufferedImage objekt, den är skapad med ARGB typen. Detta bygger på viljan till en alfakanal som skall ingå. Du kommer att se varför i kollision upptäckt steg.

import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.image.BufferedImage;

allmän klass fågel {
globala variabler
privat bild flappyBird;
privata int xLoc = 0, yLoc = 0;

/**
* Standardkonstruktör
*/
offentliga fågel (int initialWidth, int initialHeight) {
flappyBird = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("resources/blue_bird.png"));
scaleBird (initialWidth, initialHeight);
}

/**
-Metoden att skala fågel sprite till önskat mått
* bredd önskad bredd av flappy fågeln
* höjd önskad höjd av flappy fågeln
*/
public void scaleBird (int bredd, int höjd) {
flappyBird = flappyBird.getScaledInstance (bredd, höjd, Image.SCALE_SMOOTH);
}

/**
* Get-metod för objektet flappyBird.
* Bild
*/
offentliga bild getBird() {
återvända flappyBird;
}

/**
-Metoden att få bredden på objektet fågel
* int
*/
Public int getWidth() {
försök {
återvända flappyBird.getWidth(null);
}
fånga (undantag e) {
återvända -1;
}
}

/**
-Metoden att få höjden på objektet fågel
* int
*/
Public int getHeight() {
försök {
återvända flappyBird.getHeight(null);
}
fånga (undantag e) {
återvända -1;
}
}

/**
-Metoden att ställa in x plats för objektet fågel
* x
*/
public void setX(int x) {
xLoc = x;
}

/**
-Metoden att få x plats för objektet fågel
* int
*/
Public int getX() {
återvända xLoc;
}

/**
-Metoden att ställa in y plats för objektet fågel
* y
*/
public void apparater (int y) {
yLoc = y;
}

/**
-Metoden att få y placeringen av objektet fågel
* int
*/
Public int getY() {
återvända yLoc;
}

/**
* Metod används för att få en rektangel som anger fågelns bild
* Rektangel beskriver fågelns placering på skärmen
*/
offentliga rektangel getRectangle() {
avkastning (nya rektangel (xLoc, yLoc, flappyBird.getWidth(null), flappyBird.getHeight(null)));
}

/**
-Metoden att förvärva en BufferedImage som representerar fågelns bildobjekt
* Fågelns BufferedImage objekt
*/
offentliga BufferedImage getBI() {
BufferedImage bi = nya BufferedImage(flappyBird.getWidth(null), flappyBird.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics g = bi.getGraphics();
g.drawImage (flappyBird, 0, 0, null);
g.Dispose();
returnera bi;
}
}

import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.image.BufferedImage;

allmän klass BottomPipe {
globala variabler
privat bild bottomPipe;
privata int xLoc = 0, yLoc = 0;

/**
* Standardkonstruktör
*/
offentliga BottomPipe (int initialWidth, int initialHeight) {
bottomPipe = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("resources/tube_bottom.png"));
scaleBottomPipe (initialWidth, initialHeight);
}

/**
-Metoden att skala BottomPipe sprite till önskat mått
* bredd önskad bredd för BottomPipe
* höjd önskad höjd för BottomPipe
*/
public void scaleBottomPipe (int bredd, int höjd) {
bottomPipe = bottomPipe.getScaledInstance (bredd, höjd, Image.SCALE_SMOOTH);
}

/**
* Get-metod för objektet BottomPipe.
* Bild
*/
offentliga bild getPipe() {
återvända bottomPipe;
}

/**
-Metoden att få bredden på objektet BottomPipe
* int
*/
Public int getWidth() {
återvända bottomPipe.getWidth(null);
}

/**
-Metoden att få höjden på objektet BottomPipe
* int
*/
Public int getHeight() {
återvända bottomPipe.getHeight(null);
}

/**
-Metoden att ställa in x plats för objektet BottomPipe
* x
*/
public void setX(int x) {
xLoc = x;
}

/**
-Metoden att få x plats för objektet BottomPipe
* int
*/
Public int getX() {
återvända xLoc;
}

/**
-Metoden att ställa in y plats för objektet BottomPipe
* y
*/
public void apparater (int y) {
yLoc = y;
}

/**
-Metoden att få y placeringen av objektet BottomPipe
* int
*/
Public int getY() {
återvända yLoc;
}

/**
* Metod används för att få en rektangel som beskriver den BottomPipe bilden
* Rektangel beskriver den BottomPipe placering på skärmen
*/
offentliga rektangel getRectangle() {
avkastning (nya rektangel (xLoc, yLoc, bottomPipe.getWidth(null), bottomPipe.getHeight(null)));
}

/**
-Metoden att förvärva en BufferedImage som representerar den TopPipe bildobjekt
* TopPipe BufferedImage objekt
*/
offentliga BufferedImage getBI() {
BufferedImage bi = nya BufferedImage(bottomPipe.getWidth(null), bottomPipe.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics g = bi.getGraphics();
g.drawImage (bottomPipe, 0, 0, null);
g.Dispose();
returnera bi;
}
}

import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.image.BufferedImage;

allmän klass TopPipe {
globala variabler
privat bild topPipe;
privata int xLoc = 0, yLoc = 0;

/**
* Standardkonstruktör
*/
offentliga TopPipe (int initialWidth, int initialHeight) {
topPipe = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("resources/tube_top.png"));
scaleTopPipe (initialWidth, initialHeight);
}

/**
-Metoden att skala topPipe sprite till önskat mått
* bredd önskad bredd för topPipe
* höjd önskad höjd för topPipe
*/
public void scaleTopPipe (int bredd, int höjd) {
topPipe = topPipe.getScaledInstance (bredd, höjd, Image.SCALE_SMOOTH);
}

/**
* Get-metod för objektet TopPipe.
* Bild
*/
offentliga bild getPipe() {
återvända topPipe;
}

/**
-Metoden att få bredden på objektet TopPipe
* int
*/
Public int getWidth() {
återvända topPipe.getWidth(null);
}

/**
-Metoden att få höjden på objektet TopPipe
* int
*/
Public int getHeight() {
återvända topPipe.getHeight(null);
}

/**
-Metoden att ställa in x plats för objektet TopPipe
* x
*/
public void setX(int x) {
xLoc = x;
}

/**
-Metoden att få x plats för objektet TopPipe
* int
*/
Public int getX() {
återvända xLoc;
}

/**
-Metoden att ställa in y plats för objektet TopPipe
* y
*/
public void apparater (int y) {
yLoc = y;
}

/**
-Metoden att få y placeringen av objektet TopPipe
* int
*/
Public int getY() {
återvända yLoc;
}

/**
* Metod används för att få en rektangel som beskriver den TopPipe bilden
* Rektangel beskriver den TopPipe placering på skärmen
*/
offentliga rektangel getRectangle() {
avkastning (nya rektangel (xLoc, yLoc, topPipe.getWidth(null), topPipe.getHeight(null)));
}

/**
-Metoden att förvärva en BufferedImage som representerar den TopPipe bildobjekt
* TopPipe BufferedImage objekt
*/
offentliga BufferedImage getBI() {
BufferedImage bi = nya BufferedImage(topPipe.getWidth(null), topPipe.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics g = bi.getGraphics();
g.drawImage (topPipe, 0, 0, null);
g.Dispose();
returnera bi;
}
}

Se Steg
Relaterade Ämnen

Flappy fågeln Hat

Flappy fågeln är en mobil spel (utvecklat i 2013) vars mål är att ha användaren navigera en animerad fågel att flyga mellan gröna rör utan att träffa dem. Ju högre poäng, mer rören fågeln har passerat och det "bättre" spelare har gjort.Kapitalis...

Arduino-baserad Bi-color LED Matrix Flappy fågeln spel

Vi har byggt en hel del projekt med Bi-färg (rött och grönt) LED Matrix drivrutinsmodulen Kit från jolliFactory och har publicerat dem som instructables här. Var och en av dessa moduler använder två MAX7219 Display Driver ICs för att driva en Bi-colo...

Flappy fågeln penna

Flappy fågeln har blivit en berömd spel över hela världen. Men det är från AppStore (tår), jag ville ändå göra denna handledning för de människor som har denna och stipl njuta av det mycket! Hoppas du njuter!En tjej i min skola kom till skolan med tr...

Hur man får Flappy fågeln tillbaka

Steg 1: Gå till App Store Go to the app store. Och sedan klicka på köpt. Nästa hitta flappy fågeln i inköp. Slutligen trycker du på den och låt den ladda.Steg 2: Spela Flappy fågeln Enjoy...

Hur man får Flappy fågeln tillbaka för Android - nr falska

ända sedan Flappy fågeln tagits bort Play Store, tusentals av oss har försökt hitta den äkta varan igen. Många tänker "Varför sjutton jag bort det?" eller ens "varför inte jag hämta det?". Nu på grund av Flappy fågeln vurm köper folk f...

Hack Flappy fågeln på DIY Gamer Kit

Denna tutorial ska show dig hur till lek med och ändra inställningarna för Flappy fågeln spelet som ingår i DIY Gamer biblioteket.För denna tutorial behöver du en Gamer och en USB-kabel. Kontrollera att du har installerat Gamer biblioteket och att du...

Spara Flappy fågeln Legos

Hjälp! Flappy fågeln bröt sina vingar. Hjälpa honom att få bort fyren genom att bygga honom en flotte och få honom till sitt tropiska palmträd hem.Material du behöver:En hela lego set.Spara Flappy fågeln laget Bio:Alina PappasAlina är en junior grund...

LEGO Flappy fågeln mosaik

Här är en enkel guide till att bygga din egen Flappy fågeln...Steg 1: BasBörja du behöver 3 av varje av följande tegelstenar:1 brett svart2 bred grön1 bred vit4 bred grön1 brett svartoch en 8 och 1 bred platta.För dem enligt listan ovan. Djupet är in...

Hur man får tillbaka Flappy fågeln! (iOS)

Om du missade styggelse vet också som Flappy fågeln, här är sättet att få tillbaka Flappy fågeln* Du måste har fått det när det var ut OR ELSE detta brukar arbete! * * måste ha iOS 6 eller 7 *Steg 1: Gå till App Store Först gå till App Store och klic...

Hur till hacka Flappy fågeln

hur till hacka flappy fågeln på en rotad telefon.Steg 1: Kontrollera att din telefon är rotad du måste ha en rotad telefon att redigera apps.Steg 2: Kontrollera att du har Flappy fågelnSteg 3: Hämta fuska Droid detta kan hittas i appstoreSteg 4: Öppn...

Flappy fågeln alla hjärtans dag Pop Up-kort hur man (Flappy alla hjärtans dag) Kirigami 3D!

En snabb alla hjärtans dagskort jag gjort baserat på det populära spelet Flappy fågeln.Dela på FACEBOOK: http://on.fb.me/15TrVYfTWEET: http://bit.ly/15Ts5P6REDDIT: http://bit.ly/16qHt5LTUMBLR: http://bit.ly/10K8fhzHämta det gratis mönstret här: http:...

Lyckligaste fågel färg in flappy fågeln

i denna studie jag försökte hitta vilket är den lyckligaste flappy fågel färgenSteg 1: spela flappy fågeln 10 gånger med varje fågel detta är inte en verklig poäng min highscore är mycket lägre.Steg 2: ta genomsnittet och lägga den på nätetSteg 3: di...

Hur till vinna Flappy fågeln varje gång

Flappy fågeln, en oförklarligt populära spel, är dock av många också vara hopplöst svåra. Men de är helt fel. Med denna guide är din dagar scoring mindre sedan 100 över. En platina medalj blir ingenting jämfört med te poäng du kommer att vara att upp...

Hur man installerar flappy fågeln på Android, utan att någonsin ha det ursprungligen

nu när det inte finns många flappy fågeln instructables görs jag beslutat att lägga upp hur man får Flappy fågeln utan att någonsin hämta det innan det togs ner.Steg 1: Saker som behövs En dator, en Sd kortläsare eller USB-kontakten, Android och Inte...

Hur till hacka/fuska Flappy fågeln!

Krav~ Du måste vara jailbroken (jag har en instructable på hur man gör det om du inte är)~ Du måste ha iFile~ Du måste ha Flappy fågeln (uppenbarligen)Steg 1: Nära Flappy fågeln från arbetsuppgift direktörSteg 2: Öppna iFile och gör följande: ~ Gå ti...

Få Flappy fågeln på iOS

har du inte fått flappy fågeln medan det var populära? Ja nu kan du få det genom att använda din awesome vän som redan fått den.Steg 1: Gå till App Store Gå till App Store och gå till presenterade.Steg 2: Logga ut Logga med ditt Apple-ID och logga in...

Verkliga, spelbara Version av "Flappy fågeln" inuti en låda

jag gjorde denna verkliga, spelbar version av "Flappy fågeln" använder Arduino Duemilanove, 3 servomotorer, 2 knappar, en högtalare, reed switch och handfull sällsynta jordartsmetaller magneter.Först hitta en ruta för att göra spelet och två små...

Flappy fågeln vördnad för Arduino och 64 lysdioder

jag fick ett par av 8 x 8 LED matriser med posten igår. Så tillbringade jag tid lödning, felsökning, kodning och felsökning ett litet spel som är starkt inspirerad av den sena Flappy fågeln.Källkod och mer detaljer på GitHub: https://github.com/augus...

Slå Flappy fågeln

Steg 1: Spela det Spela spel flappy fågeln i android eller I telefon jag har en iPod 5Steg 2: Beat It Gå till hem skärm eller app valet på ta bort denSteg 3: gjortDu har nu slå flappy fågeln...