Versetzung der "Hitbox"

Hallo ich brauch mal wieder Hilfe :)

und zwar programmier ich gerade an einem 2D spiel und habe als letztes die einzelnen Bilder also Texturen in ein Sprite geschoben und somit musst ich auch den Code etwas umändern doch seitdem ist irgendwie jede "Hitbox" von jeder Textur verschoben.

Ich habe die Texturen so gepaintet:
Code:
int minx = (int) (worldx/Texture.tilesize);
        int miny = (int) (worldy/Texture.tilesize);
        int maxx = (int) ((worldx + Main.width)/Texture.tilesize) + 1;
        int maxy = (int) ((worldy + Main.height)/Texture.tilesize) + 1;
       
        if(maxx > width) maxx = width;
        if(maxy > height) maxy = height;
       
       
        for(int x = minx;x < maxx;x++) {
            for(int y = miny;y < maxy;y++) {
                tiles[x] [y].draw(g, (int) worldx * -1, (int) worldy * -1);
            }
        }
und die Texturen so aus einer PNG Datei ausgelesen:
Code:
BufferedImage map = ImageLoader.loadImage("map.png");
       
        width = map.getWidth();
        height = map.getHeight();
       
        tiles = new Tile[width] [height];
        for(int x = 0;x < width;x++) {
            for(int y = 0;y < height;y++) {
                Color c = new Color(map.getRGB(x, y));
                if(c.getRed() == 0&&c.getGreen() == 255&&c.getBlue() == 0) {
                    tiles[x] [y] = new Tile(x, y, 0);
                }
                if(c.getRed() == 0&&c.getGreen() == 0&&c.getBlue() == 255) {
                    tiles[x] [y] = new Tile(x, y, 1);
                }
                if(c.getRed() == 255&&c.getGreen() == 255&&c.getBlue() == 0) {
                    tiles[x] [y] = new Tile(x, y, 2);
                }
                if(c.getRed() == 0&&c.getGreen() == 0&&c.getBlue() == 0) {
                    tiles[x] [y] = new Tile(x, y, 3);
                }
                if(c.getRed() == 0&&c.getGreen() == 0&&c.getBlue() == 112) {
                    tiles[x] [y] = new Tile(x, y, 4);
                }
                if(c.getRed() == 145&&c.getGreen() == 67&&c.getBlue() == 36) {
                    tiles[x] [y] = new Tile(x, y, 5);
                }
                if(c.getRed() == 0&&c.getGreen() == 127&&c.getBlue() == 14) {
                    tiles[x] [y] = new Tile(x, y, 6);
                }
                if(c.getRed() == 0&&c.getGreen() == 89&&c.getBlue() == 8) {
                    tiles[x] [y] = new Tile(x, y, 7);
                }
            }
        }
die oben genannte tiles[x] [y].draw() Methode:
Code:
public void draw(Graphics g, int worldx, int worldy) {
        g.drawImage(look, x * Texture.tilesize + worldx + Game.transx, y * Texture.tilesize + worldy + Game.transy, null);
    }

Wenn ihr noch was braucht einfach schreiben ;-)
Ich hoffe ihr könnt mir helfen <3

Markus
 

Ähnliche Java Themen


Oben