2013-11-13 3 views
0

В этом случае я проверяю, является ли значение int целым числом или имеет десятичное значение, если оно имеет десятичное значение, оно медленно добавляет или вычитает значение, чтобы сделать его целым числом. Первая и третья части работают, а вторая и четвертая не работают.Проблемы с модулем

if(ax % tileSize != 0) { 
    ax -= (ax % tileSize)/6; // works fine 
} 
if(ax % tileSize != 0) { 
    ax += (ax % tileSize)/6; // doesn't work 
} 
if(ay % tileSize != 0) { 
    ay -= (ay % tileSize)/6; // works fine 
} 
if(ay % tileSize != 0) { 
    ay += (ay % tileSize)/6; // doesn't work 
} 

Те, которые работают, уменьшаются на 48/6 каждый раз, и другие должны быть увеличены на 48/6, но мне кажется, что сумма, которую они увеличиваются изменения каждый раз.

+0

Что значит не работает? – Masudul

+0

Просто быстрая мысль, но причина, по которой это может не сработать, состоит в том, что (ax% tilesize) меньше 6, и поэтому, когда java делит это число на 6, оно округляется до 0, а ax остается неизменным. –

+0

@Masud Я только что отредактировал сообщение, чтобы ответить на ваш вопрос. – sparklyllama

ответ

1

С учетом этого автора комментария:

Это просто Java игры, и все, что я тестирование на это, если Игрока х координат (ах), а координата у, (ау), находятся в соответствии с плитами , так как это игра на основе плитки. Если они не соответствуют плитам , то координаты увеличиваются или уменьшаются, поэтому вы ставите в соответствии с плитки.

Способ сделать это было бы что-то вдоль этих линий:

double tileSize = 10; 
double ax = 25; 
double vectorX = Math.floor(ax/tileSize + 0.5) - ax/tileSize; 

Это даст вам вектор в диапазоне -1..1 который можно умножить на скорость или делать все, что вы хотите чтобы решить движение. Например:

То же самое происходит с осью ay. Также обратите внимание, что в моей формуле есть двойники, поэтому при необходимости примените соответствующие приведения.

+0

+1 ясно ответить на не так просто понять вопрос – HpTerm

+0

Спасибо!Я знаю, что вопрос не так-то просто понять, я обсуждал, нужно ли даже обращаться за помощью, поскольку это не имеет смысла для людей, которые не знали точно, что я пытался сделать, но это сработало! – sparklyllama

Смежные вопросы