Когда я пытають отрисовать tiledmap и после этого рисую texture (batch.draw("объект Texture")) я вижу только tiledmap. Как мне решить эту проблемму?
не думаю что код тут чем-то поможет, но тем не менее:
Метод рендер в классе сцены:
public void render(float delta) {
update();
//В .show я указал цвет очистки
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
camera.translate(hero, batch);
joystick.render(batch);
hero.render(batch);
batch.end();
}
Метод Transate в классе камеры(этот класс двигает камеру за героем и делает параллакс из tiledmap):
public void translate(Hero hero, SpriteBatch batch){
// x translate
if (hero.getVector().x - (int) camera.viewportWidth / 2 < 0) {
// x = 0;
} else if (hero.getVector().x + (int) camera.viewportWidth / 2 > mapWidth) {
// x = mapWidth - (int) camera.viewportWidth;
} else {
x = (int) hero.getVector().x - (int) camera.viewportWidth / 2;
for (int i = 0; i < collisionLoader.length; i++) {
if (hero.speed < 0){
collisionLoader[i].setOffsetX(collisionLoader[i].getOffsetX() - ((collisionLoader.length - i) * (Math.abs(hero.speed) / collisionLoader.length)));
}else if (hero.speed > 0){
collisionLoader[i].setOffsetX(collisionLoader[i].getOffsetX() + (collisionLoader.length - i) * (hero.speed / collisionLoader.length));
}
}
}
// y translate
if (hero.getVector().y - (int) camera.viewportHeight / 2 < 0) {
y = 0;
} else if (hero.getVector().y + (int) camera.viewportHeight / 2 > mapHeight) {
y = mapHeight - (int) camera.viewportHeight;
} else {
y = (int) hero.getVector().y - (int) camera.viewportHeight / 2;
}
// camera update
camera.update();
batch.setProjectionMatrix(camera.combined);
// camera position translate
camera.position.set(new Vector3(-x, -y, 0));
camera.position.set(new Vector3(camera.viewportWidth - camera.position.x,
camera.viewportHeight / 2 -
camera.position.y,
0));
// tiled render
renderer.setView(camera);
renderer.render();
}
И если что, вот конструктор камеры:
public Camera(int mapWidth, int mapHeight, TiledMap map,
OrthogonalTiledMapRenderer renderer,
TiledMapTileLayer[] collisionLoader) {
camera = new OrthographicCamera(512, 288);
this.map = map;
this.renderer = renderer;
this.mapWidth = mapWidth;
this.mapHeight = mapHeight;
this.collisionLoader = collisionLoader;
for (int i = 0; i < collisionLoader.length; i++){
collisionLoader[i] = (TiledMapTileLayer) map.getLayers().get(i);
this.collisionLoader[i] = collisionLoader[i];
}
}
В методе joystik.render(batch) как и в hero.render(batch) я просто отрисовываю картинку как обычную текстуру (код выкладывать нет смысла)
И при запуске проги я вижу только tiledmap
Если нужно будет весь код то скажите и я сделаю проект на гит хабе и скину ссылку
Спасибо!
Вот так в целом работает:
@Override
public void render () {
Gdx.gl.glClearColor(0f, 0f, 0f, 1f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
renderer.setView(camera);
renderer.render();
batch.begin();
hero.render(batch);
batch.end();
}
render.render()
перед batch.begin()
batch.setProjectionMatrix(camera.combined);
я хотел запушить бранч того как (по-моему получше), но прав не хватило. Сделал ПР из форка
Виртуальный выделенный сервер (VDS) становится отличным выбором
вчера начал смотреть React JS, создал скрипт, который просто добавляет на страницу таблицу с input'амиНо мне надо на эти импуты еще повесить событие,...
Прошу прощения, если вопрос идиотскийИзучаю JS и функциональное программирование, и не совсем понимаю что означает данная запись
Есть небольшая проблема при использовании amchartsМне нужно построить такой график (зависимость количества товаров от цены)