1, 2) В другом гуи так и делается, но тут есть ещё одна проблема с разрешением 800x600, элементы просто заползают друг на друга если не помещаются. Я знаю, что можно использовать glOrtho и просто передаваемые в него значения(ширина, высота) разделить на 2, 3, 4 при определённых условиях, но это не совсем то, что мне нужно, ибо данный способ плох тем, что тут прямая зависимость от заданных размеров при достижении которых уже и будет выполняться деление, а мне бы хотелось без зависимостей. (сорри, если непонятно как-то объясняю)
Conacry, дело в том, что мой класс наследовался в соответствии чего, регистрация была такой
fun method(clazz: Class<out Packet>)
{
clazz.newInstance
}
А в самом регистрируемом классе был конструктор изменённый(с добавлением параметров), и соответственно зарегистрироваться пакет не мог и buf() бросал null.
Сергей Горностаев, если я не смог более правильно переписать данный код: return buf ?: ({buf = Unpooled.buffer(); buf}()!!) под котлин, это не значит, что я не знаю этот язык, но я не отрицаю того, что мои познания в данном языке слабые. И давайте не будет отходить от темы.
Dmitry Bayov: при пересечении финишной черты игрок просто заносится в HashMap с указанием UUID и места. (Используется переменная position = 0 которое для каждого игрока ++position)
Dmitry Roo: вы знаете что такое opgl? Видимо нет, это графическая библиотека OpenGL. Что такое вертекс? Это glVertex, с помощью него можно рисовать геометрические фигуры по точкам. Вы хотели видеть код, вот смотрите:
for(int i = offset; i < 50; i++)
{
yy += 3;
if(yy - 6 > 50) break;
GL11.glTranslatef(0, -1.5F, -0.001F);
GL11.glPushMatrix();
for(int j = 0; j < 3; j++)
{
GL11.glTranslated(14.5F, 0,0);
//ширина с левой стороны | высота с левой стороны | ширина с правой стороны | высота с правой стороны | цвет
Gui.drawRect(14, 1, 0, 0, 587202559);
}
GL11.glPopMatrix();
}