>>1521468 (OP)> Работаешь с напарником, и он присылает тебе такой код, твои действия?Если это его часть сборки, то мне будет похую. Ведь код рабочий сам по себе и при компиляции хоть такая построчная хуйня, хоть аналитическое выражение однохуйственно скомпилируются.
>>1521468 (OP)А какие ты еще варианты видишь?Формулу написать для первого параметра вектора?А если поменяется логика параметров этого вектора?Опять к тому же виду приводить?Короче, до пизды.Я бы только в отдельную фабрику вынес это все. Чтобы получать вектор в зависимости от параметра.Ее можно рефакторить, не засирая всю остальную логику.
>>1521524ая в этой простыне не заметил отсутствия elseтак-то да. ты прав.как прав и в том, что этот код неудобно читать, чему я и стал примером
>>1521509Как минимум свернуть конченный копипаст"hp.transform.localScale = new Vector3()" hpScale x y = new Vector(x,y)Кейсы/значения вектора в лукап массива
>>1521559>hpScale x y = new Vector(x,y)hpScale x y = hp.transform.localScale = new Vector(x,y)фикс>>1521564Не понимаю о чем ты
>>1521567Он о том, что ты теоретик комнатный. С начала иди поднимай проект с колён, а потом свои солюшен вкидывай на форумах. Вот тебе анон и говорит, если такой умный, почему тогда ТЫ ДАЖЕ НЕ НАПАРНИК в том проекте и стать им не смог. А то мы таких знаем, паттерны, архитектура, а на деле: поднять интернет-магазин за неделю не смогут.
>>1521468 (OP)Перепишу на что-то более вменяемое, объяснив зачем и как. Не все же такие охуенно умные, как я.
>>1521468 (OP)Посему не switch-case? Обычно для такого говна его лучше использовать, если лень алгоритм делать и говнюк гонится по пути карательной оптимизацией
>>1521567>Не понимаю о чем тыСпасибо, посмеялся.Ты не понимаешь, а охуительные решения давать осмеливаешься.Держи в курсе.
>>1521493он не рабочий, например при 90 нихуя не сделает.решение этой хуйни довольно простое на самом деле: floor(hp / 10), но горе погромистами не познать всю сложность матана
>>1521760>floor(hp / 10)Как-то так:var hpBarX = Mathf.Floor( Mathf.Clamp( life, 0.0f, 150.0f ) 0.1f ) 0.1f;Но это обычно слишком сложно для рядового юнитидебика из /gd.
>>1521773> Вообще-то ceil(x/10.0)/10.0. А его код хотя бы работает. Только else не хватаеткакие ceil? какие /10? ты его код вообще видел? проанализируй>>1521774> var hpBarX = Mathf.Floor( Mathf.Clamp( life, 0.0f, 150.0f ) 0.1f ) 0.1f;это что? или чеза mathf? я просто как раз таки не юнити дебил из gd, мимо проходил
>>1521468 (OP)>live>Комменты на русикеНапарника сразу пристрелить надо (и тебя тоже), так для мира будет лучше. Меньше говна в стиме и аппсторах.
>>1521779>это что? или чеза mathf?API Unity3d:https://docs.unity3d.com/ScriptReference/Mathf.Clamp.htmlhttps://docs.unity3d.com/ScriptReference/Mathf.Floor.html
>>1521509Когда говорят, что программистов на рынке переизбыток, надо помнить, что 95% из них -- это клинические идиоты типа этого, либо оп-пика.
>>1521801Игорь, ты? Помнишь меня? Я твой одноклассник. Я узнал тебя по твоим шизоидным словам и высерам. А помнишь, как мы всем классом нассали тебе в кружку в третьем классе, на сладкоежке? Ты ещё выпил, облизнулся и попросил добавки. А потом тебя пришёл забирать твой отец, тот самый дворник, который на Вернадского изнасиловал собаку и получил условный срок за то, что украл плавленный сырок в магазине. Он зашёл в класс, все стали смеяться, а ты обосрался под себя от стыда, а потом сказал, что всю жизнь будешь ненавидеть дворников, но в 9м классе, когда ты пошёл на рейд, чтобы их отпиздить, то они пустили тебя по кругу, после чего тебе наложили на анус восемь швов. Как поживаешь, Игорян?
ОП-хуй должен быть доволен.Вкинул какую-то хуету, теперь проигрывает над ебланами, всерьез обсуждающими, как улучшить этот говнокод.И каждый, ведь, охуенно умный, сеньор, и все такое.
>>1521779>какие ceil? какие /10? ты его код вообще видел? проанализируйСобственно, весь тред доказывает, что код в оппосте - это лучшее, на что могут рассчитывать местные типа тебя
>>1521774Вообще-то, у тебя характерный пример говнокода.На картинке хуево написанный, но сразу понятно, что происходит.У тебя блядь, скобка за скобкой за скобкой, так, падажжи, сколько тут параметров, а, да, а это к чему, а, да, блядь, и что нахуй за хуйня?А завтра тебе говорят, что правила отрисовки изменились, и ты начинаешь думать, какую бы тебе еще формулу приспособить.Пиздец, вот из-за таких уебков-оптимизаторов, как ты, все вечно и рассыпается из-за глупых багов, которые потом за тобой должны подтирать другие.
>>1521821>так, падажжи, сколько тут параметров, а, да, а это к чему, а, да, блядь, и что нахуй за хуйня?
>>1521753Ну это проблема, да. Если присутствует нагромождение if это само по себе проблема и говорит о том, что с логикой что-то не так. И почему бы не сделать (141 < live <= 150) или джава так тоже не умеет?
>>1521468 (OP)Ты еблан. Либо ты выводишь зависимость при построении вектора в цикле, либо затыкаешься нахуй, потому что код читаемый и понятный. Или ты думал, что в реальности у тебя будет все, как в школьных задачках по программированию, где цикл и a = i * 2 ?
проблема кода на ОП пике не в том, как он выглядит, а то что он пытается делать.. казалось бы читать удобно, но нахуя все это? ради того чтобы полоска хелбара меняла скейл в зависимости от хп? ок тогда почему не использовать hp.transform.localscale = new Vector3((currentHp / maxHp) * MAX_HP_BAR_SCALE_X, 1, -1); ? зависимость от конкретных цифр исчезает, читается норм и понятно что происходит..
>>1522628Деление. В гейдеве хардкорные ограничения на время отрисовки, if-else/switch по таблице выходит быстрее деления. Правда, в ОП пике всё равно хуёво, потому что долбич забыл else.Вот почему я люблю раст; там вместо такой хуйни красивый match:fn foo() {let tmp: f32 = match live {150.. => 1.6,140..150 => 1.5,130..140 => 1.4,/ snip /..1 => 0,};hp.transform.LocalScale = Vector3::new(tmp, 1, -1);}К слову, я тут пересмотрел код из ОП-пика, и у меня появился вопрос: что будет, если хп будет равно 141, 131, 121 или другое ..1?
>>1525741Для сравнения двух интов не надо вообще нихуя копировать, только несколько битов сравнить. А теперь гугли, как реализуется деление побитовыми операциями.
>>1525754Деление делается одной командой в процессоре, оно в железе реализовано. Плюс нет зависимости от того в кэше твоя таблица или нет.
>>1525772То есть, ты думаешь, что в ALU сидит волшебный гномик, который одним махом руки считает деление? Конечно, в современных процессорах алгоритм деления эффективнее, чем "вычитай, пока не останется число меньше делителя", но эта операция всё равно выполняется дольше пачки из нескольких if-else. Особенно, если у тебя в if сравнение с константой, а в делителе не константа. И шансы на то, что этот десяток констант вывалится из кэша низковаты.
>>1521468 (OP)Типичные юнитидевы блять. Мой мозг уже начал воспринимать такой высер, как что-то нормальное
>>1525804>в ALU сидит волшебный гномик, который одним махом руки считает делениеЧто-то вроде, в этом и есть суть ALU. Плюс еще процессор умеет выполнять параллельно несколько команд и не особо любит ветвления. Так что не факт что>эта операция всё равно выполняется дольше пачки из нескольких if-else.
>>1521468 (OP)Не шарю в этом языке, но разве не должно быть какой-то стандартной штуки, которая меняет положение по кастомному алгоритму ?
>>1521468 (OP)> твои действия? нихуя не делаю, если влазит в один экран и ни от чего не зависит то похуй че там
>>1540737Я не оп, и вообще в сишарпе шарю немного, но вычислял бы процент куррент хп/макс хп и отоброжал на экран в процентах от максимально возможного, было бы всего несколько строчек кода, а не куча проверок.
Вот вы все думаете о решении, а о любви к брату своему не полумали. А нужно бы сказать: брат, давай придумаем универсальную формулу, которая будет отображать хелс на хелсбар и напишем тест для нее? Чтобы не писать много ифов.
>>1525706Тут я бы поспорил, современные процессоры обычно выполняют код наперед и большими блоками, поэтому много ифов мешают ему эффективно предсказывать что будет дальше, а значит выполнять код в холостую.Плюс код в пике вообще говно, там вместо 1 проверки десяток.И если уж оптимизировать такую хуйню для проца, то лучше замутить массив и оттуда получать значения, это будет куда быстрее чем эти ИФы.И если это делается для кучи врагов, скажем 1000+ на экране хп баров, то от массива может быть и будет какой-нибудь да выигрыш.
>>1542544Предсказатель ветвлений угадывает ифы с 90% вероятностью, так что никаких проблем из-за ифов быть не должно. К тому же не факт, что компилятор не заменит это полотно на таблицу, какдля свичей.