Att göra en grundläggande 3D-motor i Java (2 / 5 steg)

Steg 2: Klassen konsistens



Innan hopp i beräkningarna för att hitta hur skärmen ska se kommer jag att ta en omväg och ställa in en textur klass. Texturer kommer att tillämpas på olika väggar i miljön, och kommer från bilder som har sparats i projektmappen. I bilderna har jag tagit 4 texturer jag hittade på nätet att jag kommer att använda i detta projekt. Du kan använda oavsett texturer du vill. Om du vill använda dessa texturer rekommenderar jag att sätta dem i en mapp i projektfilen. För att göra detta gå till projektmapp (i eclipse detta ligger i mappen arbetsytan). Efter att du får till projektmapp skapa en ny mapp med namnet "res" eller något. Placera texturer i denna mapp. Du kan placera texturer någon annanstans, det är bara där jag förvara min texturer. När detta är gjort kan vi börja skriva koden för att göra texturer kan användas.

Import för klassen är:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

Rubriken klass och dess variabler kommer att se ut så här:

allmän klass textur {
Public int [] pixlar.
privata sträng kontrollinjen.
offentliga slutliga int storlek;

Matrisen pixlar används för att hålla data för alla pixlar i bilden av texturen. Loc används för att ange att datorn där bildfilen för texturen kan hittas. STORLEKEN är hur stor textur är på ena sidan (en 64 x 64 bild skulle ha storlek 64), och alla texturer blir perfekt kvadrat.

Konstruktören kommer att initiera loc och storlek variabler och samtal i en metod för att läsa in bilden i pixlar. Det ser ut så här:

offentliga textur (sträng läge, int storlek) {
Loc = plats;
STORLEK = storlek;
pixlar = nya int [storlek * storlek];
load();
}

Nu allt som återstår för klassen textur är att lägga till en belastning metod för att få data från bilder och lagra dem i en array med pixeldata. Denna metod kommer att se ut så här:

privata void load() {
försök {
BufferedImage image = ImageIO.read (nya File(loc));
int w = image.getWidth();
int h = image.getHeight();
image.getRGB (0, 0, w, h, pixlar, 0, w);
} fånga (IOException e) {
e.printStackTrace();
}
}

Load metoden fungerar genom att läsa data från filen som loc pekar till och skriva data till en buffrad bild. Data för varje pixel är sedan tas från buffrade bilden och lagras i pixlar.

På denna punkt är klassen textur gjort, så jag ska gå vidare och definiera några texturer som används i sista programmet. För att göra detta sätter detta

offentliga statisk struktur trä = ny textur ("res/wood.png", 64);
offentliga statisk struktur tegel = ny textur ("res/redbrick.png", 64);
offentliga statisk struktur bluestone = ny textur ("res/bluestone.png", 64);
offentliga statisk struktur sten = ny textur ("res/greystone.png", 64);

mellan "public class textur" linje och "offentliga int [] pixlar".

För att göra dessa texturer tillgänglig för resten av programmet låt oss gå vidare och ge dem till klassen spel. För att göra detta behövs en ArrayList att hålla alla texturer, och vi kommer att behöva lägga till texturer i denna ArrayList. Att skapa ArrayList lägga den följande lina av koden med variablerna nära toppen av klassen:

offentliga ArrayList < textur > texturer;

Denna ArrayList måste initieras i konstruktören och texturer bör också läggas till det i konstruktören. Lägg till följande bit kod i konstruktorn:

texturer = ny ArrayList < textur > ();
Textures.Add(Texture.Wood);
Textures.Add(Texture.Brick);
Textures.Add(Texture.Bluestone);
Textures.Add(Texture.Stone);

Och nu texturer är bra att gå!

Se Steg
Relaterade Ämnen

Att göra en grundläggande privat server i Minecraft

Vill ha ett enkelt sätt att spela Minecraft med dina vänner utan alla troll och irriterande människor på publika servrar? Här är det enklaste sättet att göra en grundläggande lösenordsskyddad server! Detta görs på en mac. Jag tror det är liknande til...

Att göra en grundläggande pappersflygplan

Här är hur man gör en grundläggande pappersflygplan.Steg 1: Få papperUtforma det så det är liggande orienteringSteg 2: Vik papperet på mittenSteg 3: VikSteg 4: Vik ner högra hörnet för att centrera fodrar?Steg 5: Vik ner vänstra hörnet för att centre...

Att göra en grundläggande Roux

göra en grundläggande Roux kan vara en av de enklaste matlagning tekniker som du kan lära dig. Dock kan det användas i på så många sätt. Det är startmotorn för vita frukost sås, till cheesy såser för mac-n-ost och gå över grönsaker, det är också anvä...

Introduktion till ShapeCrete (att göra en grundläggande leaf print)

Detta instructable beskriver att göra en leaf avtryck med ShapeCrete och måla den. Främst, kommer vi att diskutera vad ShapeCrete är och vad man ska göra med detta awesome material.I ett nötskal, är här vad vi kommer att täcka:1. vi kommer att gå öve...

Hur du gör Windows 7 snabbare genom att ändra några grundläggande inställningar - se upp för några knep

Att köra din arbetsdrift systemet snabbare än någonsin tidigare - här är några enkla tips att göra det - inte Glöm att starta om datorn när du har ändrat alla dessa inställningar att göra förändringar effektivt....

Att göra en grundläggande HTML webbplats

vissa människor tror att att göra en hemsida är svårt. De är felSteg 1: där? Du kan prod is html webbplatser med något så enkelt som anteckningar eller text editSteg 2: Se webbplats Html. TypSteg 3: Lägga till innehåll Nu du kan lägga till punkterna...

Android-utveckling: Att skapa en grundläggande kalkylator

Välkommen till en rolig tutorial på att göra en grundläggande kalkylator på en Android-applikation. I denna tutorial guidar jag dig genom dataöverföring all nödvändig programvara, utforma layouten för ansökan, kodning till att få det att fungera orde...

Hur man knyter en grundläggande siffran åtta Knut & att följa genom

en siffra åtta med en bight är en berömd knut i bergsklättring världen. När klättring, skulle du använda en siffra åtta med en bight (ett bett är en loop) att knyta dig själv till din sele för att hindra dig från att falla. Du uppnå knyta en siffra å...

Grundläggande remskiva mekanismer

Från tank slitbanor till cykel redskap till fiske linjer, som remskivor används överallt när det gäller mekaniska transmissioner. Alla typer av remskiva mekanismerna består av någon form av flexibelt bälte (kedja, kabel, rep, etc.) vrida runt omkrets...

Grundläggande raden efter Robot med Arduino

09/07/2015Det har varit några år eftersom vi Ursprungligen postat denna grundläggande linje följande Robot med Arduino handledning, och det verkar så många människor tyckte att det bra att vi ska skicka en uppdatering som löper nuvarande Arduino bibl...

Grundläggande elektronik

att komma igång med grundläggande elektronik är lättare än du kanske tror. Detta Instructable kommer förhoppningsvis att avmystifiera grunderna i elektronik så att alla med intresse i att bygga kretsar kan slå i marken kör. Detta är en snabb översikt...

Grundläggande elmotor Masco G37

Användningen av detta instructable gör att vem som helst att skapa en liten motor. Genom att använda vissa grundläggande material, kan du bygga en motor som snurrar. Den använder de grundläggande principerna för en motor, spolen bildar en elektromagn...

Grundläggande mänskliga skanna med Kinect & ReconstructMe konsolen

detta instructable kommer att täcka den grundläggande processen för att göra en 3D skanning av en mänsklig kropp med hjälp av XBOX 360 Kinect, en Windows-dator och programvara ReconstructMe (konsolen upplaga).ErkännandeNicolas Brunet gjorde en underb...

Justerbar utarbetandet bord med grundläggande verktyg och material

jag har spelat runt med tanken på att få mig en liten utarbetandet bord, som jag hittar den justerbar vinkeln ganska bekväm för ett antal olika saker: Rita, läsa, skriva, arbetar med tangentbord/mus, etc. Först testade jag det ut genom att bara sätta...

1/3 grundläggande skal utmatning pistol.

3 veckor ska jag försöka få till du stötarna skal avkastad steg i att börja på grundläggande då nästa t jag kommer bygga en mellanliggande shell utmatning pistol och då är kommer att göra en expert shell utmatning pistol. så 3 veckor hoppas jag kunna...

Grundläggande läder halvmask

Välkommen!Här hittar du en handledning om att göra en grundläggande läder halfmask (som visar på 2: a bilden).Jag har arbetat med läder i över 15 år, och ville bara dela en grundläggande gå igenom om hur man gör en bra mask av din alldeles egna :)Gär...

Bygga en grundläggande lap steel-gitarr

i detta, min första Instructable, kommer jag försöka krönika byggandet av en enkel Lap Steel guitar. Ansvarsfriskrivning; elverktyg och skarp skärande verktyg kommer att användas och jag tar inget ansvar för människor som använder dessa saker slarvig...

Grundläggande modifierbara Lödstation

Välkommen till min första Instructable för en Lödstation.Det finns många lödning stationer på denna webbplats så varför är detta en speciell?Det är mycket material effektivt, kan fungera för en variant av brödunderläggen, du kan arbeta i olika vinkla...

Grundläggande för verilog

HDl design:Här jag kommer för att förklara om grundläggande funadamental av handstil tvättprogram i verilog .here jag visar att eller operationen gjort av mig med design såväl som testa bänk. prova detta på online programmering webbplatser.Design: fo...