java - 如何在 libgdx 中命名 Actor?

标签 java libgdx

以下 Actor 没有名字。在 libgdx 中,为每个 Actor 分配名称的最佳方式是什么?

public class JewelsMainActivity implements ApplicationListener, InputProcessor {

private Vector2 point = new Vector2();
public TextureAtlas jewelsAtlas;
public Texture jewels;
private SpriteBatch batch;  
public Actor[][] actors = new Actor[10][10];
public Stage stage;
public int gridSize;

@Override
public void create() {
    stage = new Stage(800, 600, false);
    gridSize = 10;
    batch = new SpriteBatch();
    jewels = new Texture(Gdx.files.internal("assets/gems1.png"));
    jewelsAtlas = new TextureAtlas(Gdx.files.internal("assets/pack"));
    for (int z = 0; z < gridSize; z++) {
        for (int x = 0; x < gridSize; x++) {
                Random r = new Random();
                int j = r.nextInt(2)+1;
                actors[x][z] = new Image(jewelsAtlas.findRegion(""+j+""));
                actors[x][z].x = x*56; //each gem is 56*56 width / height
                actors[x][z].y = z*56;

// Actor [x][z].name = " Actor "+x+z; //不能使用上面的这个,因为它不允许......

                stage.addActor(actors[x][z]);

        }
    }
    Gdx.input.setInputProcessor(this);
}


@Override
public void render() {
      Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 
      batch.begin();
      stage.draw();
      batch.end();
}

@Override
public boolean touchDown(int x, int y, int pointer, int button) {
       stage.toStageCoordinates(Gdx.input.getX(), Gdx.input.getY(), point);
       Actor actor = stage.hit(point.x, point.y);
        if (actor != null){

            Gdx.app.log("name", actor.name);

//actor.name 为空

            Gdx.app.log("hashCode", ""+actor.hashCode());
            ((Image)actor).color.set((float)Math.random(), (float)Math.random(), (float)Math.random(), 0.5f + 0.5f * (float)Math.random());
        }
    return false;
}

.... .... ....

}

最佳答案

该名称是最终名称,因此必须在构造函数中定义。

你在哪里

actors[x][z] = new Image(jewelsAtlas.findRegion(""+j+""));

使用

actors[x][z] = new Image(jewelsAtlas.findRegion(""+j+""), Scaling.none, Align.CENTER, "myawesomenewname");

关于java - 如何在 libgdx 中命名 Actor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10267599/

相关文章:

java - 返回特定类型的东西

java - 如何围绕 <Array> 矩形绘制矩形

java - 使用串行监视器作为 LibGDX 游戏的按钮输入

java - NullPointerException Google map API Android 4.4.4

java - 如何使用 getResourceAsStream 读取 J2ME 中的文件

java - ai直线追逐玩家的算法?

libgdx - LIBGDX:我怎么知道声音何时播放完毕?

java - 简单的圆圈碰撞 libgdx

java - Liferay:设置 View 页面的标题名称

java - Eclipse 引用图像