gpt4 book ai didi

java - 如何使用自定义绘制类在java slick中绘制对象

转载 作者:太空宇宙 更新时间:2023-11-04 07:49:40 25 4
gpt4 key购买 nike

我正在创建一个非常简单的 2d Java Slick 游戏。我可以在扩展 BasicGameState 的类中使用渲染器方法,但我想使用 DarwMap 类渲染到我的游戏容器中。

这是我的游戏源代码和不工作的 DrawMap 类:

public class GamePlay extends BasicGameState{

DrawMap map;

public GamePlay(int state){

}

@Override
public void init(GameContainer arg0, StateBasedGame arg1) throws SlickException {
// TODO Auto-generated method stub
}

@Override
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException {
map.render();
}

@Override
public void update(GameContainer arg0, StateBasedGame arg1, int arg2) throws SlickException {
// TODO Auto-generated method stub

}

@Override
public int getID() {
// TODO Auto-generated method stub
return 1;
}
}

和下一个类

public class DrawMap {

//size of the map
int x,y;
//size of the tile
int size;

//tile
Image tile;

//creator
public DrawMap(GameContainer gc, int x, int y, int size){
this.x = x;
this.y = y;
this.size = size;
}

public void render() throws SlickException{

tile = new Image("res/Tile.png");

for(int i=0; i<(y/size); i++){
for(int j=0; j < (x/size); j++){
tile.draw(j*size, i*size, 2);
}
}
}

}

我知道这是错误的,但如果有人可以帮助我解决这个问题并使用 DrawMap 类解决我的绘图问题。

最佳答案

我在您的构造函数中没有看到它,但我假设您正在那里创建 map 实例。

现在,要在屏幕上绘图(这对 Slick 和 Java2D 通常有效),您需要一个 Graphics 对象,它代表图形上下文,它是设法将数据放入屏幕的对象。对于 Slick2D,您可以通过调用 GameContainer 的 getGraphics 方法从 GameContainer 获取图形。然后,您可以调用刚刚获得的 Graphics 对象上的 drawImage 方法将图像绘制到屏幕上。

下面是一个示例,将图形上下文作为 DrawMaprender 方法的参数传递:

public class GamePlay extends BasicGameState{

DrawMap map;
...

@Override
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException {
map.render(gc.getGraphics());
}
...
}

还有 DrawMap 类...

public class DrawMap {

Image tile;
...

public void render(Graphics g) throws SlickException {
// your logic to draw in the image goes here

// then we draw the image. The second and third parameter
// arte the coordinates where to draw the image
g.drawImage(this.tile, 0, 0);
}
}

当然,您可以直接在 Graphics 对象中进行绘制。

关于java - 如何使用自定义绘制类在java slick中绘制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14696838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com