Pull to refresh

Comments 40

По моему «как играть не тыкая пальцем» это та самая «one more thing», для который и делалась текущая статья :) По крайней мере, мне очень интересно будет почитать.
Нет, нет, у меня свой алгоритм, я даже 50 процентов пикселов не проверяю. Очень быстрый алгоритм. Снег выпадет — напишу подробно.
Запишите и меня в список ожидающих :)
Извините, не удержался, вот это

if (screenBounds.size.height == 568) {
iPhone5 = 1;
} else {
iPhone5 = 0;
}
(с нормальной подсветкой и сохранением переноса в комментарии не разобрался)

замените на

iPhone5=screenBounds.size.height == 568;
Мне платят построчно. С вашим подходом я на хлеб не заработаю.
Вы серьезно? Еще есть такие компании?
Мы даже еженедельные отчеты пишем. Правда к играм это почти не относится.
Мы ежедневные пишем, но такой заморочки со строчками кода нет)
Ну, PapaBubaDiop, ясное дело, прикалывается, но просветите меня, тёмного, вы вдвоём вообще сейчас обсуждаете реальный способ определения пятого айфона? Так, типа, и должно быть?
По сути, определяется не модель айфона, а разрешение экрана. И да, оно примерно так и определяется.
Да, iPod 5 сюда тоже войдет. Обычно это и нужно, хотя бывают нюансы с производительностью и нужно определить модель точно. Для этого подойдет совет от egormerkushev на пару комментов ниже.
Я сам не знаю, я не программист вообще. Шучу, конечно)) Я писал всего-лишь про рефакторинг кода, а не про то что он делает.
Уже есть компании, за строчки штрафующие? :)
А какой смысл? Оптимальнее и быстрее работать не стало, а читаемость падает, по моему мнению.
И увеличивается стократ вероятность ошибки.
Про ошибку думал, но так и не понял как эта замена увеличивает ошибку.
Тут все субъективно. Мне кажется, что читаемость стала лучше.
Так-так! Тут чего-то люди думают, что «оптимальнее и быстрее не стало», так вот, может быть вы не в курсе, но вообще-то в современных процессорах есть такая штука, как «предсказание ветвления», которое используется, чтобы предсказывать куда пойдёт выполнение программы и выполнить сразу пачку команд за раз. И вот в линейном коде оно работает прекрасно, смотрите:

iPhone5=screenBounds.size.height == 568;


ясно же, что тут две команды: сравнить 2 числа, записать результат в переменную. И предсказание ветвления захватывает эти команды в «пачку», да и плюс всё, что будет за ними. Классно, эффективно.

А теперь смотрите на код:
if (screenBounds.size.height == 568) {
iPhone5 = 1;
} else {
iPhone5 = 0;
}


И вот тут уже хрен его знает, сработает предсказание ветвления верно или нет. В худшем случае на этапе обработки if предсказание сработает неверно в 50% случаев, повлияв не только на код в блоке if, но даже исключив из «пачки» код следующий дальше. Неэффективно, недетерминировано.

Конечно, в данном случае тип айфона, скорее всего, определяется 1 раз за всю работу программы, и тут оно пофигу, но вот если это цикл, который миллион итераций в секунду должен делать — может быть разница.
Хм, ну в этой области я не знаток. А разве это сложное ветвление, чтобы ошибиться на нем?
Дело не в том, сложное оно или нет, оно просто есть как факт, а значит уже, в зависимости от проца и компилятора, есть вероятность ошибки предсказания ветвления. Если у вас есть один кусок кода, который 100% избежит а этой ошибки, а второй длиннее на 4 строки и с некоторой вероятностью в эту ошибку попадёт — какой лучше?
К тому же, для большей читаемости можно заменить на:
isIPhone5 = screenBounds.size.height == 568 ? YES : NO;

Смысл тот же, но при беглом просмотре позволяет избежать микрокомпиляции этой строки в голове.
Я обычно пишу так:
isPhone5 = (screenBounds.size.height == 568);

Ваш вариант лучше использовать в случае, если нужно присвоить не булеан, а что-то другое.
Как играть, не тыкая пальцем в экран, я напишу в другой статье. Если интересно.

Конечно интересно!
Например, для кнопки размером 60х60 пикселей, создаю картинку размером 240х240… Но экономлю энергию экрана.

Я вот этот момент не понял. Почему 240x240? Почему не 120x120 (для ретины)? Как это экономит энергию экрана?
Потому что весь набор картинок будет использован для ретины iPad. Там даже 240 на 240 покажутся миниатюрными. Яркие картинки требуют больше энергии, чем черный фон. Хотя я этот тезис не проверял. Но наше зрение спокойные цвета берегут, это наверняка…
Яркие картинки требуют больше энергии, чем черный фон. Хотя я этот тезис не проверял.

По моему, неAMOLED экранам по без разницы картинка имеет яркие цвета или тусклые. Там же подсветка позади экрана, а не попиксельная (грубо говоря). А у айдевайсов экраны не AMOLED.
Одно замечание по поводу дизайна: мне не понятен Ваш выбор указателя «мыши» для игры, виндовый курсор выглядит чужеродно на i-девайсе.
UFO just landed and posted this here
От неопубликованной игры?
Спасибо! Отличная статья, здравый подход к разработке :) Мне будет очень интересно прочитать продолжение.
> 500 евро за 5 минут стерео?
в Microsoft напишите: я буду использовать только 10% функций и переключу экран в в 256 цветов и 640х480, продайте «Офис» за $10. :)
Понятно почему. Классический Lines имеет слишком большую доску размером 9х9 клеток. iPhone же комфортен на полях 6х6. Это предел для тыканья пальцем в экран.


Вот тут не соглашусь в ZOOKEEPER 8х8 и вроде нормально тыкается.
средняя цена на приложение из iTunes наверное около $2. но я же не буду играть в него 24/7, а всего часик в день. продадите мне игру за 8.3 цента?
Это разумный подход, он часто где применяется, порой завуалировано. Попользовался программой- кредит списали. К сожалению, на русскую действительность это не распространяется- купил машину- плати за дороги, даже если не ездишь.
Почему нет? Я бы продал, будь на то техническая возможность. Продавать цифровые копии нужно по той цене, которую покупатель с радостью заплат. Кто-то заплатит 2$, кто-то 2 цента, а кто-то и 20$. В результате все довольны. У Джоэля Спольски была неплохая статья на эту тему.
Шикарный стиль изложения, пишите чаще, пожалуйста.
Sign up to leave a comment.

Articles