Почему текстура по-прежнему не отображается на экране после addActor в Libgdx?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему текстура по-прежнему не отображается на экране после addActor в Libgdx?

Сообщение Anonymous »

Я пытаюсь создать игру «три в ряд». Я создал класс Tile для представления отдельных игровых плиток, который содержит как изображение, так и данные о позициях строк и столбцов плитки. Кроме того, у меня есть класс Board, который содержит массив объектов Tile, а именно сетку 8x8. Это основная структура игровой сетки. В классе GameScreen я пытаюсь добавить каждую плитку в качестве актера, который должен отображать ее на экране.
Однако настройка не работает должным образом. Игра не может правильно отображать тайлы, и я не уверен, связана ли проблема с тем, как добавляются актеры, или проблема связана с другими аспектами рендеринга или игровой логикой. Следующий шаг — отладка взаимодействия между плиткой и доской, гарантируя правильное расположение и отображение плиток на игровой сцене. Пожалуйста, помогите мне.
Вот код:
public class Tile extends Image
{
public int row;
public int col;
public int type = -1;

public Tile(int col, int row){
this.col = col;
this.row = row;
}

public void init(TextureRegion sprite, int index)
{
setSize(getWidth(), getHeight());
setBounds(getX(), getY(), getWidth(), getHeight());
setDrawable(new TextureRegionDrawable(sprite));
debug();
this.type = index;
}

public void setRowCol(int row, int col){
this.row = row;
this.col = col;
}
}

public class Board extends Group implements Disposable
{
Match3Game game;
Array entities;
Tile[][] tiles = new Tile[8][8];
//
public Board(Match3Game game, Array sprites)
{
this.game = game;
this.entities = sprites;

initialize();
}
//
private void initialize()
{
setBounds(0,0,640,640);

for (int i = 0; i < tiles.length; i++)
{
for (int j = 0; j < tiles.length; j++)
{
Tile tile = new Tile(i ,j);
tile.addListener(clickListener);
// random number in atlas
int num = MathUtils.random(1,5);
tile.init(this.entities.get(num),num);
tile.setPosition(j * tile.getWidth(), i * tile.getHeight());
tiles[j] = tile;
//add tile in addActor
this.addActor(tile);

if(tiles[j] == null)
Gdx.app.log("Board", "Could not found Board Texture");
}
}
}
...
}

public class GameScreen extends ParentScreen
{
Match3Game game;
Board board;
//Constructor
public GameScreen(Match3Game game)
{
super(game);
this.game = game;

Gdx.input.setInputProcessor(this);
}

@Override
public void show()
{
super.show();
//
setUpBoard();
}

private void setUpBoard()
{
//todo
board = new Board(game, Assets.getTexture().findRegions("color"));
//set position
//// board.setPosition(getWidth()/2, getHeight()/5, Align.center);
//// board.setPosition(0,0);
board.debugAll();
this.addActor(board);
}
...
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-libgdx
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»