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:
und die Texturen so aus einer PNG Datei ausgelesen:
die oben genannte tiles[x] [y].draw() Methode:
Wenn ihr noch was braucht einfach schreiben ;-)
Ich hoffe ihr könnt mir helfen <3
Markus
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);
}
}
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);
}
}
}
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