2017-02-14 5 views
-10

Я пытаюсь получить один из своих int утверждений, чтобы принять заявление float, потому что в моей игре спрайт использует float, чтобы получить координаты того, где он находится. Однако для того, чтобы получить расположение плитки, в tilemap используется int. Почему вы не можете использовать int и float в том же самом утверждении, и если это очевидный ответ, как вы собираетесь его менять, не используя приведения других методов?Почему я не могу передать int в float в том же самом выражении?

+4

Листинг *** IS *** метод изменения одного числового типа на другой. Почему вы чувствуете необходимость избегать приведения? –

+0

@JimGarrison Потому что, если я добавлю бросок на другие объекты, это изменит всю структуру игры. Или вы хотите добавить броски к самим методам? Я попытался сделать это, но это не сработало:/ – DrComputerScience

+1

Я не уверен, что вы правильно поняли касты или какие из них вы имеете в виду, но вы можете использовать их там, где вам это нужно, например. 'int fromTileX = tmap.getTileWidth ((int) fromX);'. Это не изменило бы структуру игры. – Thomas

ответ

3

Вы не можете присвоить значение float переменной int, потому что некоторая информация будет потеряна. По той же причине вы не можете передать значение float методу, аргумент которого объявлен как int. (ваш вопрос довольно неясен из-за неправильного использования терминологии, но я думаю, что вы пытаетесь сделать последнее)

Вы можете сообщить компилятору, что вы действительно хотите потерять информацию (дробная часть поплавка), используя операцию литья. Вот как, и почему.

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