[Java] [Minecraft 2D Platformer] Torch effect

Status
Niet open voor verdere reacties.

gast0323

Gebruiker
Lid geworden
14 sep 2011
Berichten
8
Hallo,

Ik ben momenteel bezig met een Minecraft 2D Platformer. Heel veel werkt al alleen ik wil graag een torch toevoegen in mijn inventory. Maar ik wil hierbij ook dat de vlammen hiervan bewegen zoals in het echte Minecraft. Ik zag misschien te denken aan een soort van image loop waarbij ik 3 images maak en die zich telkens herhalen. Maarja, makkelijker gezegd dan gedaan. Hoe maak ik zo'n image loop van 3 images die zichzelf telkens herhalen?

P.S.: Ik gebruik een terrain.png en geen aparte images voor elk block of item. Ik roep de terrain.png aan in Tile.java waardoor ik hierna gewoon de volgende code kan invoegen:

public static int[] dirt = {0, 0}; (In de bovenste hoek van de terrain.)

Om de x & y cordinate duidelijk te maken hieronder een andere:

public static int[] grass = {1, 0}; (1 = X, 0 = Y)

Dus ik wil de images via de terrain.png kunnen gebruiken.
 
Als je dit echt goed wilt doen moet je particle effects gebruiken, maar dit is te veel werk voor een simpele 2d platformer. Ik zou als ik jou was een timer maken en per enkele seconden het plaatje wijzigen.

De timer geeft elke x seconden een seintje dat er iets moet gebeuren, in jouw geval wil je dan een ander plaatje tonen.

Het onderstaande (niet complete) voorbeeld geeft een heel simplistisch voorbeeld. Het kan vast en zeker mooier en beter.
Code:
public class Torch {
    private Image[] images;
    private int currentImage;    

    public Torch(Image[] afbeeldingen) { //dit kan natuurlijk ook een lijst zijn ipv een array.
        images = afbeeldingen;
        currentImage = 0;    
    }

    //deze methode zal door de timer worden aangeroepen.
    public void wisselImage() {
        currentImage = (currentImage < images.length) ? currentImage++ : 0;   //zelfde als if currentimage < images.length dan ++ anders currentimage = 0 (ternary operator)
    }

    public Image getTorchImage() {
          return images[currentImage];
    }
}

Timer: http://javarevisited.blogspot.co.at...r-and-timertask-in-java-example-tutorial.html

Groet,
newbiProgrammer
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan