Я делаю игру libgdx как упражнение. Его довольно простой, что-то вроде «побега» вида игры. Просто экраны с фоном, некоторые предметы и стрелки влево/вправо.Вход - Обработка действий в LibGdx
Как libgdx все упрощает, я блуждал, если есть простой способ обработки действий. Теперь это всего лишь куча «if else» в методе onClick(). Теперь это прекрасно, но с десятками или мешками предметов он будет грязным и, вероятно, лагги при щелчке.
public void onClick(int scrX, int scrY){
pX = (scrX/viewW)*WORLD_W;
pY = (scrY/viewH)*WORLD_H;
if (pX > 10 && pX < 20 && pY > 10 && pY < 20) {
if (stage.getInfo().getLeft() == true) {
Gdx.app.log("Click", "Left");
stage = new StageGame(stage.getInfo().getLeftStage());
}
}
else if(pX > 80 && pX < 90 && pY > 10 && pY < 20) {
if (stage.getInfo().getRight() == true) {
Gdx.app.log("Click", "Right");
stage = new StageGame(stage.getInfo().getRightStage());
}
}
}
Я думал о переключении здесь, но мне все равно придется использовать некоторые условия. Другая идея была матрицей, скажем, 100x100. На каждом этапе он будет считаться из файла. После щелчка x и y будет легко переведено в значения сетки и произойдет правильное действие. Но это полезно только для статической игры, а не для использования памяти и обработки этой матрицы.
I'm pretty shure thats all wrong, но я не могу найти что-то, что я не могу назвать: P Help pls!
Матрица экранных объектов - неплохая идея, если вы уверены, что у вас будет точно матрица MxN. Другой способ, возможно, список, чтобы сделать его более flixibile. Список списков на самом деле. Кроме того, я не использовал его, но libGDX имеет некоторую функцию карты, поэтому проверьте ее - возможно, вы можете это использовать. – MilanG