Java libgdx使函数成为一个单独的类

Java libgdx使函数成为一个单独的类,java,libgdx,Java,Libgdx,所以我有这个密码 public class MyGdxGame implements ApplicationListener { private SpriteBatch batch; private Texture grasstext; private GrassField field; @Override public void create() { batch = new SpriteBatch(); grasstext = new Texture(Gdx.

所以我有这个密码

public class MyGdxGame implements ApplicationListener {
private SpriteBatch batch;
private Texture grasstext;
private GrassField field;

@Override
public void create() {      

    batch = new SpriteBatch();

    grasstext = new Texture(Gdx.files.internal("data/grassA.png"));

    field = new GrassField();
}

@Override
public void dispose() {
    batch.dispose();
    grasstext.dispose();
}
@Override
public void render() {      
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
    //DrawField(100,10,3,3,31);
    //DrawField(200,50,4,2,31);
    field.DrawField(10, 10, 3, 5, 31);
}

@Override
public void resize(int width, int height) {
}

@Override
public void pause() {
}

@Override
public void resume() {
}

public void DrawField(int x,int y,int width,int height,int value)
{
    for(int xt=0;xt<width;xt++)
    {
        for(int yt=0;yt<height;yt++)
        {
            batch.begin();
            batch.draw(grasstext,((x+xt)+xt*value),((y+yt)+yt*value));
            batch.end();
        }
    }
}
公共类MyGdxGame实现ApplicationListener{
专用SpriteBatch批次;
私密文本;
私人草地;
@凌驾
public void create(){
批次=新的SpriteBatch();
grasstext=新纹理(Gdx.files.internal(“data/grassA.png”);
field=新草地();
}
@凌驾
公共空间处置(){
batch.dispose();
grasstext.dispose();
}
@凌驾
public void render(){
Gdx.gl.glClearColor(1,1,1,1);
Gdx.gl.glClear(GL10.gl\u颜色\u缓冲\u位);
//抽油区(100,10,3,3,31);
//抽油区(200,50,4,2,31);
字段。绘图字段(10,10,3,5,31);
}
@凌驾
公共空心调整大小(整型宽度、整型高度){
}
@凌驾
公共空间暂停(){
}
@凌驾
公众简历(){
}
公共空心绘图字段(整数x、整数y、整数宽度、整数高度、整数值)
{

对于(int xt=0;xt我只能猜测你做了什么,如果你能输入新类的代码(我猜它是GrassField),那就太好了,但是你检查过对象是否批处理(SpriteBatch)和grasstext(纹理)了吗在GrassField中可用?据我所知,您使用的构造函数没有任何参数,我看不到任何包含所需引用的方法。您可以尝试使用构造函数或GrassField的单独方法添加所需对象。它可能类似于:

public class GrassField {
private SpriteBatch batch;
private Texture grassText;

public GrassField(SpriteBatch batch, Texture grassText) {
    ...
    this.grassText = grassText;
    this.batch = batch;
    ...
}

..........
}