11.12.2015 / 14:14 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Alexandr, лучше сделать так, как удобнее. С int jump от 0 до 3 ты не сможешь установить значения прыжка по-диагонали. Вот варианты: // 1. Переменные boolean
boolean jumpLeft, jumpRight, jumpUp;
jumpLeft = true;
jumpUp = true;
if (jumpLeft) { .. }
// 2. Boolean массив
public static int JUMP_LEFT = 0, JUMP_RIGHT = 1...
boolean[] jump = new boolean[3];
jump[JUMP_LEFT] = true;
jump[JUMP_UP] = true;
if (jump[JUMP_LEFT]) { .. }
// 3. Побитовые операции в int. Экономный, но не всегда удобный
public static int JUMP_LEFT = 0x01, JUMP_RIGHT = 0x02, JUMP_UP = 0x04;
int jump = JUMP_LEFT | JUMP_UP;
if (jump & JUMP_LEFT != 0) { .. }
Не стоит волноваться из-за таких мелочей, как лишние 32 или даже 64 бита. Тем более в твоём примере. __________________
let live Изменено aNNiMON (11.12 / 14:16) (всего 2 раза) |
11.12.2015 / 14:25 | |
aRiGaTo Пользователь Сейчас: Offline
Имя: Snork Откуда: Yerevan Регистрация: 03.02.2010
| Цитата aNNiMON: С int jump от 0 до 3 ты не сможешь установить значения прыжка по-диагоналиКак это «не сможет»? 0b0000000 : byte
0b0000001 : up
0b0000010 : right
0b0000100 : left
0b0000101 : up-l
0b0000011 : up-r
Сам же в третьем пункте такое и написал __________________
don't tread on me Изменено aRiGaTo (11.12 / 14:26) (всего 1 раз) |
11.12.2015 / 14:44 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| aRiGaTo, Цитата Alexandr: int jump; // интегер, хранящий значения от 0 до 3Цитата aNNiMON: С int jump от 0 до 3 ты не сможешь установить значения прыжка по-диагонали.В твоём примере не от 0 до 3 __________________
let live Изменено aNNiMON (11.12 / 14:54) (всего 1 раз) |
11.12.2015 / 15:05 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| |
11.12.2015 / 15:07 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Korvin, на твой пост ( #436997) отвечу, а как же выравнивание? Я раньше для таких вещей byte использовал |
12.12.2015 / 03:09 | |
Oak Пользователь Сейчас: Offline
Имя: Коля Откуда: Москва Регистрация: 02.06.2010
| Цитата Korvin: Не обязательнл int занимает в памяти 32 бита . JVM во вреямя выполнения выделяет нужное кол-во памяти исходя из значения переменной .Пруф? Никогда о таком не слышал. А я много слышал
__________________
Эль Презеденте |
12.12.2015 / 07:33 | |
NaruTrey Пользователь Сейчас: Offline
Имя: Андрей K. Откуда: Тольятти Регистрация: 15.01.2010
| Цитата Oak: Пруф? Никогда о таком не слышал. А я много слышалЯ в очередь ожиданий пруфов.
__________________
Чёрные усы кричает этот свисть |
12.12.2015 / 09:03 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Достаточно спеки машины посмотреть и всё станет ясно.
|
12.12.2015 / 10:54 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Oak, у меня есть предположение, о чём он. Вот ты пишешь к примеру: int a = 0;
int b = 40;
int c = 8888;
int d = 15456489;
И получаешь: iconst_0
bipush 40
sipush 8888
ldc #xx// int 15456489
Но это не в памяти, а в байткоде, так что не уверен. __________________
let live |
12.12.2015 / 11:32 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| |