Я пытаюсь создать игру «три в ряд». Я создал класс 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
Почему текстура по-прежнему не отображается на экране после addActor в Libgdx? ⇐ JAVA
Программисты JAVA общаются здесь
1728295573
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[i].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[i][j] = tile;
//add tile in addActor
this.addActor(tile);
if(tiles[i][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);
}
...
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79061514/why-is-the-texture-still-not-showing-on-the-screen-after-addactor-in-libgdx[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия