[/a/] [/b/] [/c/] [/e/] [/f/] [/m/] [/p/] [/t/] - [Домой] [NIC] [SSL] - [Управление]

[Вернуться к доске]
Постинг ответа
Leave these fields empty (spam trap):
Имя
Ссылка
Тема
Комментарий
Файл Еще файл
Или рандом
Файл 2 Еще файл
Файл 3
Каптча
Пароль (для удаления постов и картинок, а также редактирования)

155665 No.11601   [] []

Hello World! Тред для тех, кто в той или иной мере интересуется программированием. Здесь можно обсудить любой язык программирования, библиотеку, фреймворк или среду разработки, поделиться своим кодом, спросить совет или обменяться опытом.

>> No.11602   [] []

>>11601
Даже не знаю, чего писать сходу. У тебя самого какой опыт?

>> No.11603   []
[]

Хотя вот хотел спросить: почему говорят будто Unix лучше для программирования, чем та же винда? Там утилиты есть какие-то полезные или что?

>> No.11604   []
[]

>>11603
Первый раз слышу такое, обычно говорят, что Unix лучше винды в качестве сервера, но не рабочей станции.
Может, они имеют в виду кроссплатформенность, что приложения с винды никуда просто так не перенесешь, а Unix'овые можно под разные nix'ы на разных системах компилировать без изменений, и вроде как может запуститься.

>> No.11605   []
[]
0

>>11604
Про то, что лучше в качестве сервера, я тоже слышал, но вроде и в общем говорят лучше для программирования. Хотя может это просто потому что там меньше gui и командная строка более продвинутая(наверное), чёрт его знает. Самому попробовать побаловаться на виртуалке, что ли.

>> No.11606   []
[]

>>11603
На правах кукаретика заявлю, что скорее всего дело в том, что линух предоставляет больше возможностей для подстраивания системы под себя и свои хотелки. Ну и чисто на эстетическом уровне кому-то приятнее периться в консольку, настроить там менеджеры пакетов и сидеть обмазываться этим. Сама среда располагает под постоянное дрочилово с чем-нибудь.

>> No.11607   []
[]

>>11606

>больше возможностей для подстраивания системы под себя

Какие, например?

>> No.11608   []
[]
0

привет я теперь могу двигать этаво дядю в разныи стораны я типерь магу называть сибя праграмистам м
что скажыте
https://gaycasino.neocities.org/casino.html

>> No.11609   []
[]
0

>>11608
Скажу, что давно пора было там что-то изменить. К примеру, движение к кнопкам привязать и избавиться от лишних магических чисел.

>> No.11610   []
[]
0

Я думал, что просто играться с канвасом через жс будет легче. Но нет, не легче. Даже там я успел найти себе геморрой.

>> No.11611   []
[]

>>11610
В чём проблема-то?

>> No.11612   []
[]
0

>>11611
Хочу затемнять картинку, этакий рукотворный фейдер сделать, но нет хорошего удобного метода для этого. Все, что я нашел, это изменение фил стайла с присвоением ему строки вида rgba(x,y,z,a), где a - альфа. Я хочу через реквест анимейшн фрейм изменять это а от 1 до 0 на 0.1 каждые 100ms, но я тупой лох и не умею работать со строками. Сейчас думаю, как с помощью split и replace менять это a.

А вообще, я никогда ничего серьезного не писал, поэтому меня берет ужас будущая структура. Не знаю, как я это организую. Думал, сейчас быстро классы подучу, смогу что-то сделать, но нет, жс не с++, тут как-то по другому все.

>> No.11613   []
[]

>>11611
Если что, затемняю я не саму картинку, а нарисованный прямоугольник поверх картинки. Не придумал ничего умнее.

>> No.11614   []
[]

>>11612
Пишут, что надо менять globalAlpha контекста. Там поди ничего сложного. Поменял перед тем, как рисуешь, потом обратно перевёл, если надо.

>Думал, сейчас быстро классы подучу, смогу что-то сделать, но нет, жс не с++

Классов в js нет, если что. Только объекты. И да, работает это всё иначе.

>> No.11615   []
[]

>>11614
Да, но глобал альфа осветляет картинку, а не затемняет. Типа, если он 1, то все белое, если 0, то как обычная картинка. Я не понял, как это в надлежащий вид привести.

>> No.11616   []
[]

>>11615
Ну вот для яркости тоже есть:
ctx.filter = "brightness(50%)"; Меняешь до нуля - становится чёрным.

>> No.11617   []
[]

>>11616
О, найс. Сейчас бы до вечера ебланил.

>> No.11618   []
[]

>>11616
Хотя не, это не отменяет ебли с анимацией фейдера и вытаскиванием чисел из строки с подстановкой их под свои.

>> No.11619   []
[]

>>11617
Хотя он поддерживается как-то хуёво. Рисование сверху - не такой уж плохой способ, можно будет любым цветом покрасить. Можно ещё написать функцию, чтобы вручную по пикселям пройтись и затемнить. Но там уже надо будет читать про то, как цвета менять, если фон не чёрный. Хотя для смены яркости будет легко сделать.

>> No.11620   []
[]

>>11618
Зачем тебе их вытаскивать? Просто заново каждый раз пиши ctx.filter = "brightness(" + value + ")"; Там похуй, ты же просто строку посылаешь.

>> No.11621   []
[]
0

>>11620
Я не додумался до + value +. Это и было тем сложным решением, которое я искал.

>> No.11622   []
[]

>>11620
Там ещё процент в конце, сама переменная число просто, но ты понял поди.

>> No.11623   []
[]

>>11622
Та я сделал вот
ctx.filter = "brightness("+ fader +"%)";

>> No.11624   []
[]
0

>>11623
Молодец, парубче. А как ты это использовать хочешь? Просто для иного фона придётся другое придумывать - рисовать поверх или писать функцию для работы с пикселями или ещё чего подобное.

>> No.11625   []
[]

>>11624
Пока что ничего умнее того, чтобы вручную каждую картинку прописывать, я не придумал. А так я пытаюсь сейчас визуальную новеллу делать, где следующая сцена, там следующая картинка и новое обновление. Ну посмотрим, я пока слабо понимаю сам, как это будет выглядеть.

>> No.11626   []
[]

>>11625
Кстати, элемент держать на странице не обязательно, можно просто сделать var image = new Image(); image.src="gomogay.jpg";
Если надо будет много изображений, я бы сделал массив с url и массив с объектами.

>> No.11627   []
[]

>>11626
Да, здорово. Это тоже облегчит мне жизнь.

>> No.11628   []
[]
14355

>>11626
Почему-то ругается на точку

>> No.11630   []
[]

Потому что ты среди объявлений переменных это поставил.

>> No.11636   []
[]

>>11601

> Тред для тех, кто в той или иной мере интересуется программированием.

Господи, наконец-то!

> Здесь можно обсудить любой язык программирования

Not this shit again...

>> No.11637   []
[]

>>11603
А ты возьми и сам попробуй. И поймешь, почему.

>> No.11802   []
[]
81143

Кто-нибудь продолжает использовать neocities или я тут один такой дурачок?

>> No.11807   []
[]

>>11802
Я в первый раз слышу. Да хости где хочешь, какая разница?

>> No.11809   []
[]
84097

>>11807
Там нельзя хостить звуковые файлы без платных подписок. И удаленно если файл указать, тоже проигрывать не будет, насколько я понял.

>> No.11810   []
[]
0

>>11802
У меня свой сервер для таких мелочей.

>> No.11811   []
[]

>>11809
Я бы на твоём месте делал локально всё, а хостингом уже потом озадачился в зависимости от того, что потребуется.

>> No.11812   []
[]
43495

>>11810
Ты крутой, не спорю. Вот бы мне стать таким же крутым, как и ты.

>> No.11814   []
[]

>>11811
Так и делаю пока. Просто хотелось показывать, что я успел наделать за это время.

>> No.11815   []
[]
51154

>>11812
Собираешь компьютер из старого хлама и относишь к другу с постоянным белым IP, вот и все.

>> No.11816   []
[]
71009

>>11815
Этот друг - Jerboa?

>> No.11830   []
[]
0

Продвинулся чуть дальше, но все равно крайне сильно мудалействую и иду весьма медленно. Программировать так сложно.

>> No.11831   []
[]

>>11830
Что нового сделал?

>> No.11832   []
[]

>>11815
Не обязательно постоянным, есть всякие no-ip.

>> No.11833   []
[]

>>11831
Пока что только приблизительно разобрался с тем, как организовать переход между сценами (сценой я называю каждую новую фоновую картинку + действия, на ней происходящие), фейдер вынес в отдельную функцию для того, чтобы юзать его с каждой новой сценой. Сейчас разбираюсь с тем, как лучше сделать отступы от помещенного на рамку текста (рамкой выступает отрисованный рект). Потом буду разбираться с таймерами, для меня это сложнее всего. Все эти setInterval и setTimeout - все не то. Придется делать свой, как я понял, либо на основе performance.now, либо там еще какой-то timer можно передавать функцию, который явно нигде не объявляется, но откуда-то он есть, я так и не понял, откуда.

>> No.11834   []
[]

>>11833

>Потом буду разбираться с таймерами, для меня это сложнее всего. Все эти setInterval и setTimeout - все не то. Придется делать свой

Что с ними не так? Что тебе сделать надо?

>еще какой-то timer можно передавать функцию, который явно нигде не объявляется, но откуда-то он есть, я так и не понял, откуда.

Этого не понял, ты о чём?

>> No.11835   []
[]

>>11833
Это ты про свою новеллу рассказываешь?

>> No.11836   []
[]

>>11834

>Что с ними не так?

Скорее всего дело в моей криворукости и глупости, но пока что я не могу сделать так, как мне нужно. И еще джаваскрипт, как я понял, работает асинхронно, а не так, как я привык, когда все выполняется последовательно команда за командой. Если мешать между собой выполнение requestAnimationFrame и любой из выше обозначенных таймеров, то могут происходить различные несостыковки, если пользователь, к примеру, на время перешел в другую вкладку. Команды, поставленные в setTimeout или setInterval будут работать, тогда как то, что в requestAnimationFrame будет ждать переключение на вкладку обратно. Кроме того, насколько я мог узнать из обрывочных крупиц информации, пока интересовался темой, те два таймера сильно нагружают память, так что лучше обходится без них.

>Что тебе сделать надо?

Та много чего. От таймера будет зависеть время между сценами, диалогами, анимацией на экране.

>Этого не понял, ты о чём?

Я сам не знаю, о чем я, но глянь в последний блок кода на страничке: http://qaru.site/questions/11804715/use-js-countdown-timer-in-canvas-with-requestanimationframe, там в параметры функции update передается некий timer, объявления которого я нигде не увидел и не могу понять, откуда он взялся. Также этот timer я видел в одном из уроков по написанию тетриса https://youtu.be/H2aW5V46khA?t=560 (время 9:20), он передает time в update, но не объявляет его через var и нигде не указывает ранее. Я не понимаю, как это работает.
>>11835
Ага.

>> No.11837   []
[]
0

>>11816
С какой целью интересуетесь?

>> No.11838   []
[]
0

>>11837
Буду звать его Жыроба.

>> No.11839   []
[]

>>11836

>Если мешать между собой выполнение requestAnimationFrame и любой из выше обозначенных таймеров, то могут происходить различные несостыковки

Тут уже сложнее что-то посоветовать, не видя кода/не имплементируя самому. Надо как-нибудь попробовать сделать чего подобного. Одно понятно, что таймеры мешать не надо. Явно лучше просто доставать время с помощью того же requestAnimationFrame.

>джаваскрипт, как я понял, работает асинхронно

В случае с т.н. callback, как в setTimeout или ajax - да.

>в параметры функции update передается некий timer, объявления которого я нигде не увидел

Там немного неочевидно, но ничего сверхъестественного. Вот с mdn про requestAnimationFrame:

>The callback has one single argument, a DOMHighResTimeStamp, which indicates the current time (the time returned from performance.now() ) for when requestAnimationFrame() starts to fire callbacks.

Другими словами, callback(update в этом случае) вызывается как update(performance.now()); внутри requestAnimationFrame. То есть он каждый раз заходя в функцию передаёт ей новое значение времени. Оттуда оно берётся.

>> No.11980   []
[]
15667

бяяяяААААААААААААА

>> No.11988   []
[]
0

>>11980
Теперь нужно написать функцию переноса части строки, если та больше, чем величина рамки по X за вычетом отступа + сделать подобие пользовательского скроллбара, если величина набранного текста больше объема рамки. Если с первой задачей я еще смогу справиться, то насчет второго идей пока нет. Все сложно для меня.

>> No.11989   []
[]
0

Пойду отдыхать.

>> No.11992   []
[]

>>11988

>сделать подобие пользовательского скроллбара, если величина набранного текста больше объема рамки

В чём сложность? Можно новый прямоугольник с текстом поверх старого нарисовать. Или как ты хотел?

>> No.11994   []
[]

>>11988

>сделать подобие пользовательского скроллбара, если величина набранного текста больше объема рамки

Тред не читал, но в чем проблема использовать стандартную textarea? Тогда скроллбары сами появятся. Куда там тебе этот текст?

>> No.11995   []
[]

>>11994
Он хотел сделать анимированный текст, который на canvas отрисосывается, как я понял - html тут не при делах.

>> No.11996   []
[]

>>11994
Я сам хотел предложить текст отдельно сделать с html и под полотно поставить - так было бы явно проще. Но что-то забыл. Теперь ладно уже.

>> No.12026   []
[]
14706

Ой хоре мне хоре, теперь я пытаюсь сделать click area для треугольничка, предназначенного для пользовательского scrollbar. Если для квадратика это сделать легко, то для треугольника, очевидно, нужен какой-то цикл. Треугольник отрисован move и lineTo, возможно есть более удобный метод для картинок, но хз, там тоже нужно считать клик именно по той зоне, где альфа канал не пустой, а залит краской. В общем, сложно все. Не думал я, что столкнусь с такими трудностями, когда начинал. Мне казалось, что VN будет значительно легче любой другой игры по написанию.

>> No.12027   []
[]
13362

>>12026
Библиотеки для работы с canvas не судьба использовать?
Там такое делается через спрайты, т. е. отрисовывается изображение треугольника из загруженного файла, на которое добавляются слушатели событий потянуть мышью, например.

Вот, глянь:
https://pixijs.io/examples/#/basics/click.js

В крайнем случае посмотри исходный код, придёт понимание как делать свой велосипед.

>> No.12028   []
[]

>>12026
А почему нельзя заранее запоминать, где ты рисуешь эту хуйню, а надо заново вычислять ее позицию?

>> No.12029   []
[]
0

>>12027
Я не знаю таких. Да и думал, что учить js лучше без всяких сторонних библиотек. Мне казалось, что что-то простое без их использования написать реально.

>> No.12030   []
[]
0

>>12028
А как это?

>> No.12032   []
[]

>>12027
Так ему надо клик на треугольник. Картинки будут по умолчанию находиться в прямоугольнике, разве не так?

>> No.12033   []
[]

Я бы лично с треугольниками не парился, сделал бы с картинками, пускай и кликать можно будет на весь окружающий их прямоугольник.

>> No.12034   []
[]
0

>>12027
Спасибо за библиотеку, я поиграю с ней позже. Однако я заметил там то, что если наводить на зону, не занятую пикселями, onlick и hover все равно срабатывают. Так походу никто не делает, чтобы от каждого пикселя картинки зависело срабатывание события. Видимо я подошел к задаче как перфекционист, сейчас я подумал, почему бы просто не поместить зону для клика под квадрат на треугольник, который будет в него вписан. Он все равно небольшой, поэтому нет большого смысла чего-то слишком мудреное придумывать.

>> No.12035   []
[]

>>12032
Можно по желанию только непрозрачную область изображения сделать активной.

>> No.12036   []
[]

>>12030
Ну, запоминаешь координаты граней треугольника и при клике проверяешь, попадает он в них или нет. Разве нельзя так сделать у тебя?

>> No.12037   []
[]

>>12036
Я не знаю, как такое делать. Можно создать матрицу, состоящую из матриц, которые будут хранить значение по x и по y, затем сделать проверочный цикл, который будет ходить по матрице и если значение не 0, то сделать активным срабатывание события onclick. Но я что-то сейчас подумал, ну в пизду так мудрить. Слишком сложно для меня. Я только учусь. Пускай будет зона клика квадрата на треугольнике.

>> No.12038   []
[]

>>12037
Так не надо - явно есть несложный геометрический способ нахождения, для которого нужны только координаты самой точки и вершин треугольника.

>> No.12039   []
[]

>>12038
Я не знаю про этот способ.

>> No.12040   []
[]

>>12039
Интернет на что? Вот первая же ссылка:
Реализация - считаются произведения (1, 2, 3 - вершины треугольника, 0 - точка):
(x1 - x0) * (y2 - y1) - (x2 - x1) * (y1 - y0)
(x2 - x0) * (y3 - y2) - (x3 - x2) * (y2 - y0)
(x3 - x0) * (y1 - y3) - (x1 - x3) * (y3 - y0)
Если они одинакового знака, то точка внутри треугольника, если что-то из этого - ноль, то точка лежит на стороне, иначе точка вне треугольника.

>> No.12041   []
[]

>>12040
Позже интегрирую это решение в код. Сейчас буду думать над тем, как делить строку на подстроки и распределять их по окну. Потом нужно разобраться с таймером и сделать анимированный вывод текста на экран и пропуск анимации по клику мышки.

>> No.12067   []
[]
0

Думал, что буду получать истинное эстетическое удовольствие от процесса написания кода, но пока что понимаю только то, что я слишком тупой и удовольствия это мне, очевидно, не приносит. И много кодить не получается, начинаю сильно виснуть и дальнейший процесс продолжается исключительно через силу.

>> No.12070   []
[]

>>12067
Прямо уж тупой - что-то же у тебя получилось?

>> No.12076   []
[]

>>12070
Пока что я имею несколько папок с кусками одной и той же задумки, но каждый раз в различных новых ее аспектах, потому что маленькими частями мне легче пишется и запоминается, нежели бы я написал один раз что-то большое и каждый раз возвращался бы к этому. Но это что-то - совсем не то, о чем я мечтал когда-то. В голове все это представлялось совсем иначе, красивыми стройными структурами. А когда дело доходило до кодинга, то сразу тупёж, балдёж, прокрастинация. Я не стремлюсь программировать, скорее заставляю себя этим заниматься. И то, что получается в итоге, совсем не изделие искусства, а довольно топорный и глупый код с разбиением того, что вполне могло бы выступать на текущем уровне представления, на еще более мелкие и от того уже уродливые своей милиприздричностью и неуместно большим количеством составляющие.

>> No.12077   []
[]
0

>>12076
Ты совсем не бросай, пробуй делать лучше. Нужно же хотя бы до определённого результата довести, раз уж начал.

>> No.12079   []
[]
0

>>12077
Попробую.

>> No.12130   []
[]

>>12076
Попробуй формулировать строго и однозначно (вплоть до математических формул), что делает та или иная твоя функция. Вот как в https://cppreference.com.

Если чужая функция ведет себя не так, как ты думал, то бросай нахуй всё и начинай исследовать эту функцию. Это изматывает, когда пытаешься одновременно и код писать, и с функцией разбираться.

И не бросай, пока не освоишься, верно говорят.

Если не знаешь английского, то закрой редактор и удали написанное. Кодинг - не для тебя.

>> No.12133   []
[]
0

>>12130

>Если не знаешь английского, то закрой редактор и удали написанное. Кодинг - не для тебя.

Чего так сразу категорично? Я когда только начинал учиться программировать, не знал английский почти.

>> No.12145   []
[]
35878

Мне тут похоже надо будет писать сетевое приложение по учёбе. Сам таким особо не занимался, только общее представление имею. Что лучше использовать, чтобы сильно жопу не рвать? На C++ там всё сложно походу. C#, Python?

>> No.12146   []
[]

>>12145
Сетевое приложение - понятие растяжимое. Обрисуй хоть примерно, что оно делать должно, сервер это или клиент и для каких сетей. Насчет C++ - там есть сокеты, но они и правда не особо удобные по сравнению с компонентными языками. Насчет питона сказать ничего не могу - практически им не пользовался. Можешь на дотнете (C# или VB.NET) попробовать, наверняка там есть что-нибудь удобное для работы с сетью. Сам пишу на VB6.

>> No.12147   []
[]

>>12145
Если смотреть на то, что ты перечислил, то питон кажется подходит лучше всего.

>> No.12148   []
[]

>>12146
Мне самому пока сложно сказать - разные задания ожидаются, пока все не известны. Для начала надо сделать сервер(с возможностью подключения нескольких клиентов одновременно, естественно - мультипоточный или асинхронный) и клиент. После этого надо будет какие-то алгоритмы синхронизации имплементировать.

>> No.12149   []
[]

>>12147
Наверное. Мне c-подобные языки ближе, но C# на вид получается очень уж громоздкий. Чтобы не париться, можно будет и впрямь сделать на Python + может библиотеку какую.

>> No.12150   []
[]

Ещё подумал - а ведь можно на node сделать. Поди примут.

>> No.12154   []
[]
42128

>>12145
C#, Java.
>>12150
Node не может быть мультипоточной.

>> No.12157   []
[]

>>12154
Я знаю. Но ведь я и не говорю, что нужно именно мультипоточное. Требований к этому не предъявляли. Главное чтобы можно было одновременно подключить несколько клиентов, принять от них что-то и передать. Node с этим вполне справляется. Я же не собираюсь там расчёты тяжёлые городить.

>> No.12252   []
[]
0

Сделал всё-таки на Node, кому интересно да, я знаю, что никому. Пока ничего сложного.

>> No.12253   []
[]
0

>>12252
Да ты оGUIел!

>> No.12254   []
[]

>>12252
Что сделал то, расскажи.

>> No.12255   []
[]
0

>>12253
Вообще-то нет. Консоли достаточно в этом случае, думаю. Даже не знаю, делают ли в node gui, если не считать html. Поди что нет.
>>12254
Пока надо было сделать udp-сервер и клиент. В первой части сервер элементарно раздаёт клиентам по запросу своё время. Потом клиент считает его как-то с учётом т.н. rtt - то бишь задержки. Я по заданию только не вполне понял, как её задавать/считать. Будто говорится, что надо искусственно сделать. Ну я поставил таймауты и нашёл промежутки между запросом-ответом. Наверное, так надо. Неплохо бы уточнить.
Во второй части задание сделать сервер, который собирает время у всех своих клиентов, усредняет его, и по запросу клиента выдаёт ему, насколько его время отличается от общего среднего времени. Над этим пришось дольше поработать, но тоже несложно.

>> No.12256   []
[]
0

>>12255
Какое-то говно, а не задания.

>> No.12257   []
[]
0

>>12256
Звучит тупо, конечно. Но делать было не особо скучно.

>> No.12258   []
[]

>>12256
По крайней мере интереснее какого-нибудь говна с документами или полугуманитарной мутью, например.

>> No.12355   []
[]
0

Ох, какой же я тупорылый ебин. Дня три ебался с делением строк. Решил как-то тупорыло эту задачу, уверенности у меня решение не вызывает, но вроде пока работает и ладно. Теперь нужно заняться скролл баром, который по клику будет отрисовывать в рамке необходимые строки из массива. Всего на рамке будет помещаться не более трех строк. Затем нужно будет организовать анимацию текста и пропуск ее по клику, что сопряжено с изучением работы таймера.

>> No.12356   []
[]
0

>>12355
Олсо, если б не некоторые удобные методы у жса, решать бы мне эту задачу еще 300 лет и 3 года.

>> No.12358   []
[]
0

>>12355

>Дня три ебался с делением строк.

В чём была сложность? Разве там нельзя просто было на слова разделить, к примеру, и количество символов в строке ограничить?

>> No.12364   []
[]

>>12355
Напомни, а что ты вообще сделать пытаешься, в общем? Что должна вся эта система делать?

>> No.12366   []
[]

>>12364
Он же говорил - визуальную новеллу. Движок для неё точнее.

>> No.12367   []
[]

>>12366
Движок для визуальной новеллы, ты имеешь в виду? Или он реально хочет ее всю запрограммировать?

>> No.12369   []
[]

>>12367
Я как понял, он хотел сам движок написать сначала. Дальше лучше у него спросить.

>> No.12370   []
[]

>>12369
Не понимаю, как ему все эти треугольники помогут. Все равно же придется руками рисовать картинки и интерфейс.

>> No.12371   []
[]
0

>>12366
Движок подразумевает полное абстрагирование от кода, на котором он написан, насколько я знаю + полная автоматизация разработки последующих игр движка, на котором они были созданы. В моем случае часть этого кода можно будет использовать при создании других новелл, так как некоторые задачи однотипные и могут решаться в большинстве новелл одинаково, но я не думаю, что это можно назвать движком. Каркасом для игры - возможно. Но движок слишком крутое слово для того, что я делаю.

>> No.12372   []
[]
0

>>12358

>Разве там нельзя просто было на слова разделить, к примеру

Так я и сделал в итоге командой split. А до этого пытался что-то с пробелами мудить, записывал последний с конца, переписывал в массив, перезаписывал каждый элемент, пока он не будет меньше заданной ширины текста, но в итоге все равно не смог выполнить без использования split. Как только додумался до сплита, задачу выполнил часа за полтора. Потом просто разбил на слова, пробелы использовал в качестве разделителя, из полученного массива слов записывал в строки под индексами, тут у меня сложности с ундефайнами возникли, но я пофиксил это так, как смог, меняя все встреченные мной ундефайны на пустую строку. Теперь я не смогу использовать по крайней мере одно слово в новелле.

>и количество символов в строке ограничить

Ограничением выступало не количество символов, а длинна строки в 300 пикселей, ибо ширина рамки, если я правильно помню, 320 пикселей.

>> No.12373   []
[]

>>12371

>Движок подразумевает полное абстрагирование от кода, на котором он написан, насколько я знаю + полная автоматизация разработки последующих игр движка, на котором они были созданы.

Совсем не обязательно, иначе зачем были бы нужны программисты при разработке игр на готовом движке? По-большей части движок будет одинаков в разных играх на нем, но что-то может и модифицироваться по желанию/нужде. Скажем, Fallout 3 и Oblivion сделаны на одном и том же движке, но черта с два ты их запустишь, просто поменяв друг с другом игровые ресурсы. Или, к примеру, мог ты себе представить, что Sims 3 и GTA 3 сделаны на одном и том же движке?

>> No.12374   []
[]

>>12373
Энивей, то, что я сделаю, я отдам потом на ваше растерзание и анализ, и вы уж там решите, что это. Я к своей работе отношусь скептически, иллюзий не питаю, оцениваю так, что по большей части там не оптимизированная смешная сырая поделка, написанная на быдлокоде.

>> No.12375   []
[]

>>12372

> сложности с ундефайнами возникли

Откуда они берутся у тебя?

>> No.12376   []
[]

>>12372
И я не вникал, но у canvas кажется есть метод "measureText". Ты им пользуешься?

>> No.12377   []
[]
10911

>>12375

>Откуда они берутся у тебя?

^
>>12376
Да.

>> No.12378   []
[]

Наврал на счет undefined, он же в текстовом виде встречается, а я сравниваю без приведения типов, поэтому все ок, если написать его в сообщении. И пока тестил, заметил то, что удаляю первый пробел только в нулевом индексе нулевой строки, а нужно во всех. Быстро заменил циклом. Вроде все работает хорошо.

>> No.12379   []
[]

>>12378
С undefined сравнивают так, если что: if(typeof(myvar) === 'undefined') {}
Ты какую-то хрень написал.

>> No.12380   []
[]

>>12379
У меня все работает, энивей :\

>> No.12381   []
[]

>>12380
Потому что у тебя undefined-переменная типа undefined, очевидно. Несколько странно. И как-то цикл сделан не вполне понятно. Нахуй тебе эти присвоения? Чтобы добавить в массив, достаточно сделать array.push(element); И без всяких перебрасываний индексами.

>> No.12382   []
[]

>>12379
Кроме того, оператор typeof возвращает строку, именно поэтому в

>typeof(myvar)

сравнивается со строкой 'undefined'. Вот такой бы вид мне точно не позволил использовать слово undefined в тексте. А в моем случае сравнивается сам undefined, как значение, а не как строка.

>> No.12383   []
[]

>>12381

>Нахуй тебе эти присвоения? Чтобы добавить в массив, достаточно сделать array.push(element); И без всяких перебрасываний индексами

Ню извинити, я пря этя нитиво ни зняль. Делал, как умел.

>> No.12384   []
[]

>>12382
То есть по-твоему тип переменной var ass = "number"; будет равен "number", наркоман?
Не надо городить эти индексы, вот тебе та же функция со стандартным циклом:
function splitText(text, maxWidth) {
    let workArray = text.split(" "), strings = [], temp = "";

    for(var i=0, m=workArray.length; i<m; i++) {
        if(ctx.measureText(temp + workArray[i] + " ").width >= maxWidth) {
            strings.push(temp);
            temp = workArray[i] + " ";
        } else {
            temp += workArray[i] + " ";
        }
    }
    if(temp) strings.push(temp);
    return strings;
}

>> No.12388   []
[]
47651

>>12384

>То есть по-твоему тип переменной var ass = "number"; будет равен "number", наркоман?

"number" будет тип string, потому что ты заключил его в скобки для строк. Ты не понял, что я тебе сказал. Введи у себя typeof(typeof(number)) или typeof(typeof(string)) и посмотри, что вернется.

>вот тебе та же функция со стандартным циклом

Спасибо за заботу, но я не использую решения, которые не сделал сам, ибо это не мои решения, следовательно, будут каждый раз смущать меня, когда я прохожу сквозь них глазами. Если я дойду до аналогичного решения, то только тогда буду брать на вооружение. Олсо, твоя реализация возвращает пустой массив.

>> No.12389   []
[]

>>12388
Я там походу что-то неправильно сначала поставил, сейчас проверил - работало.

>Введи у себя typeof(typeof(number)) или typeof(typeof(string)) и посмотри, что вернется.

Я знаю, что вернётся. Я тебя не понял сейчас вообще. Почему нельзя строку undefined использовать?

>> No.12390   []
[]
18843

А пока что я решил отдохнуть от новеллы, хотя там осталось не так много. Что-то меня клюнуло немного побаловаться.

>> No.12391   []
[]

>>12388
А, ты же ему ширину-то не дал в аргумент.

>> No.12392   []
[]

>>12389

>Почему нельзя строку undefined использовать?

Я детально не анализировал код, но предполагаю, что это сделает невозможным для использования слово "undefined" в тексте конкретно для моей версии. А так, ничего не мешает. Но зачем мне лишаться возможности написать лишнее слово?

>> No.12394   []
[]

>>12391
Теперь дал. В значение 300. Результат на скрине.

>> No.12395   []
[]

>>12392
Но typeof('undefined") - это string, а не 'undefined' - разве не очевидно? Поэтому сравнение будет работать правильно. Мой код можешь не использовать, но просто на будущее - лучше так циклы не делать.

>> No.12396   []
[]

>>12394
Я его исправил, говорил же. Возьми из поста снова.

>> No.12397   []
[]
19485

>>12395

>Но typeof('undefined") - это string, а не 'undefined' - разве не очевидно?

Очевидно. Но ты на мой код смотрел?

>> No.12399   []
[]

>>12396
Да. Теперь работает.

>> No.12400   []
[]
0

>>12399
Надо было сразу проверить, а то вслепую написал. Больше не буду так.

>> No.12401   []
[]

>>12397
Ну и if(typeof(strings[index]) === 'undefined') бы сработало. А то так сразу не ясно, что за переменная undefined - вдруг она у тебя там глобальная своя какая-то.

>> No.12402   []
[]

>>12401
Сработало бы. Но при этом съело бы все слова undefined, если бы они были в строке. То есть если я захочу написать undefined text, оно оставит мне только text. Понял, о чем я?

>> No.12403   []
[]

>>12397
Хотя ладно, я понял походу. Можно и так, и так короче. undefined уже зарезервировано.

>> No.12404   []
[]

>>12401
Но вообще ты прав, твой вариант менее косячный и нужно стремиться делать сразу с минимумом косяков, чтобы потом не латать дыры лаптем.

>> No.12405   []
[]

>>12402
Нет, ты что-то спутал.
console.log(typeof('undefined')); будет string.

>> No.12406   []
[]

А typeof(undefined) всегда undefined, т.к. слово зарезервировано и ему не получается ничего присвоить.

>> No.12407   []
[]

>>12405
Я не о значении undefined, а о СЛОВЕ в ПРЕДЛОЖЕНИИ. Хочу я выразить мысль, и мне нужно выразить что-то "неопределенное", не обозначенное". И если я оставляю свой вариант, но при этом сравниваю if (typeoff(value) === 'undefined') оставляя действие value = ""; то остаюсь без тех undefined, которые хочу написать именно я.

>> No.12408   []
[]

>>12407
Я что-то запутался. У тебя слово в предложении - строка. Если строка - 'undefined', то это всё равно строка и typeof вернёт тип string, а не undefined.

>> No.12409   []
[]

>>12408
Смотри, есть undefined - значение, а есть слово. Я сравниваю по значению, и мне это позволяет писать слова undefined, но если я начну undefined значение оборачивать в строчные скобки, то я все undefined (и слова, и то, что было значение) свои и лишние уберу из текста. Потому что typeof(value) - это строка и будет сравниваться со строками, а не как в моем случае со значением. Понял?

>> No.12411   []
[]
0

Я уже ненавижу это слово.

>> No.12412   []
[]

>>12409
Нет. Подставь typeof и покажи, что он реально убирает строки 'undefined'.

>> No.12413   []
[]

>>12412
Давай попробуем. Ща... Лел, вообще какая-то ебанина произошла. Я думал, он их уберет, а он их подставляет теперь наоборот.

>> No.12414   []
[]

>>12413
typeof(strings[index]), а не typeof([index])

>> No.12415   []
[]
0

>>12413
Все, в пизду, это выше моих сил!

>> No.12416   []
[]
0

>>12414
Все хорошо, я облажался.

>> No.12417   []
[]

Чувствую себя школьником из страны невыученных уроков.

>> No.12418   []
[]
0

Нахуя я только спор этот развязал - код всё равно эквивалентый получается по сути.

>> No.12426   []
[]
0

Случайно удалил фон и рисунки для >>12390. Чувствуется нарастающий зуд в заднем проходе. Кажется что-то горит.

>> No.12430   []
[]

Какая-то дискуссия о чем-то пустяковом.

>я не использую решения, которые не сделал сам, ибо это не мои решения

Вот это бессмысленно, не понимаю упорства.

Вижу использование идентификатора let, логично массив перебирать методом forEach(...).

>> No.12431   []
[]

>>12430
Я плохо воспринимаю чужой код. Мне нужно обязательно писать свой, чтобы вникнуть. И поэтому иногда необходимо писать велосипеды.

>> No.12433   []
[]
0

Боже, подари мне в следующей жизни, если она будет, хорошее ясное сознание и гибкий высокий интеллект, который позволит мне кодировать красиво, а не говно. Ну и пряморукости добавь, чтоб я мог красивые спрайты к играм делать.

>> No.12434   []
[]

>>12430

>Вижу использование идентификатора let, логично массив перебирать методом forEach(...).

А какая тут связь? let только на область видимости переменной влияет, насколько я знаю. В этом случае что var, что let - всё равно. Если бы он в цикле или условии был, я бы понял. Ну и foreach - просто сахар.

>> No.12446   []
[]

>>12431
Как почувствуешь прохождение текущей стадии, вернись к изучению чужих решений.
>>12434
Let из ECMAScript6, в связи с этим стоит обращать внимание на все новые возможности языка и стандартные функции.

>> No.12447   []
[]

А в ближайшем будущем стоит ожидать каких-либо фантастических космических йоба-технологий от браузеров? Я только слышал, что какой-то стандарт приняли, который позволит шифровать видосы на стороне сервера, дабы защититься от пиратства. Но это такой себе праздник конечно. А вот что-то крутое ожидать можно вообще?

>> No.12448   []
[]

>>12446
imo, лучше не пихать всюду es6. Версия сильно новая, поддержка у браузеров так себе. Совместимость надо какую-никакую иметь. Хотя можно ещё потом через babel прогнать, к примеру. Я твоей позиции не понял - ты использовать рекомендуешь или нет?

>> No.12449   []
[]

>>12447
А что крупного такого может быть, даже в теории? Если говорить со стороны пользователя, для меня ничего сильно не менялось. Так, новые фишки появлялись, но ничего глобального.

>> No.12450   []
[]

>>12449
Лично я хочу больше плюшек для 3d. Интересно, можно ли как-то оптимизировать текущие технологии так, чтобы не грелся процессор, когда открываешь что-то масштабное и крутое. Это возможно вообще или только с ростом производительности пеки можно избавиться от всех болячек вроде задержек, большой нагрузки на память и всего в этом духе?

>> No.12451   []
[]

>>12450
Думаю, технологии идут соверешенно по другому пути. То есть не пытаются подстроиться под чьё-то там слабое железо. Наоборот программы всё тяжелее и требовательнее. Хочешь нового и современного - раскошеливайся только учти, что оно тоже устареет.

>> No.12494   []
[]

>>12447

>А в ближайшем будущем стоит ожидать каких-либо фантастических космических йоба-технологий от браузеров?

Блять, надеюсь, что нет. Браузеры и так слишком монструозны как для программы для показа гипертекста.

>Я только слышал, что какой-то стандарт приняли, который позволит шифровать видосы на стороне сервера, дабы защититься от пиратства.

По-моему уже лет десять минимум есть такая хуйня, только ее не спешат имплементировать. В любом случае, если видео можно посмотреть, то его можно и спиратить. Хотя бы тупо видеозахватом.

>А вот что-то крутое ожидать можно вообще?

Крутое - не значит удобное. Вон в девяностые придумали VRML для трехмерных сайтов - и где он сейчас? Круто, ново, интересно - но ресурсоемко и неудобно для реальной работы с сайтами.

>> No.12502   []
[]

>>12431

> Я плохо воспринимаю чужой код

, потому что обычно он плохо документирован. Сравни, например, group1() и group2():

http://paste.org.ru/?ijvnzw (почему-то сюда не постится)

К слову сказать, я так и не понял, что делает твоя splitText().

>> No.12505   []
[]

>>12502
Чего там непонятного? Берёт текст, дробит на слова и составляет строки размером не больше заданного числа пикселей. Я по-другому написал её в >>12384, если так понятнее.

>> No.12506   []
[]

>>12502
И по-моему код можно и без документов понять, если он разбит на модули и не слишком наворочен. Если написано нормально, и так должно быть всё ясно.

>> No.12508   []
[]

>>12506
Нет, нельзя.

На модули разбивают в том числе и для того, чтобы часть кода можно было не читать. Попробуй доведи свою мысль до абсурда: есть у тебя функция makeSuffixTree(text). Описание у нее содержится в названии, в доку достаточно вынести только нюансы. Реализация у нее, предположим, 20 экранов. Ты предлагаешь назвать ее f(text) и НАПИСАТЬ НОРМАЛЬНО?

>> No.12509   []
[]

>>12508
Поэтому я и сказал, что если не слишком много наворочено. Если там не 20 экранов, а 50-100 строк для каждой из нескольких функций с говорящими названиями, то разобраться можно. Хотя документацию знать полезно, наверное. Там есть какие-нибудь общие стили и стандарты?

>> No.12520   []
[]

>>12509

> Если там не 20 экранов, а 50-100 строк для каждой из нескольких функций с говорящими названиями, то разобраться можно.

Интересное наблюдение: все джуниоры так думают, особенно русские. И пишут такое говно, которое потом приходится реверс-инжинирить. А чтобы добавить фичу, приходится переписывать с нуля.

Твое утверждение верное, только ты в цифрах ошибся. Не 50-100, а 1-2. При большем количестве строк метрики сложности тела почти всегда превышают метрики сложности документации.

> Там есть какие-нибудь общие стили и стандарты?

Есть. Английский технический. Можно русский технический, если уверен, что за пределы России твоя разработка не выйдет. Впрочем, начать можешь с JSDoc.

>> No.12524   []
[]

>>12520
С 1-2 и ты загнул по-моему.
Посмотрю. Русский изучать нахуй надо, я не работаю. Я не пытаюсь на тебя тупо наехать, но кто ты сам-то такой крутой будешь? Что-то крупное лепил?

>> No.12544   []
[]

>>12524
Ты на АИБ или где? Что за ad hominem? Сам попробуй так делать и поймёшь, что к чему. Особенно если пилишь в группе с кем-то, это помогает.

>> No.12559   []
[]

>>12544

>Что за ad hominem?

Я тебя спросил чисто ради интереса. Не хочешь - не отвечай. И ты первым начал намекать, что я хуй простой и нуб, потому не прав.

>> No.13030   []
[]

Красиво. Но как же, блять, жутко это говно грузит проц. Почему 3д для браузеров - такое больное место. И это очень грустно. Безумно грустно.

https://threejs.org/examples/#webgl_animation_keyframes

>> No.13032   []
[]

>>13030
Говно без задач это 3D в браузерах. Грустно будет, если все повально на него перейдут вместо нормальных 2D интерфейсов.

>> No.13059   []
[]

>>13056
Вроде на нем пишут софт для работы в почти реальном времени: операционные системы, их компоненты и видеоигры.

>> No.13061   []
[]

Тут есть любители с++? Что на нём написать такого можно интересного, чтобы реально язык себя проявил, а не так что на более высокоуровневых получилось бы чище и проще? Захотелось сделать чего именно на нём.

>> No.13062   []
[]
0

>>13059
Знаю, но это сложно дохуя. Для одного человека нереально.

>> No.13065   []
[]

>>13062
Ну почему же, есть мелкие системы, которые в одно рыло создавались. Приходят на ум драйвера и небольшие утилиты для всякой там диагностики компьютера или подключаемых устройств. Еще антивирусы и фаерволлы. Нестандартные сетевые приложения (не TCP/IP).

>> No.14119   []
[]

>>13061
Игровой движок.

>> No.14126   []
[]

>>14119
Было уже.
>>13059

>> No.14230   []
[]
85322

>>13061
Программирование камней.

>> No.15761   []
[]
0

И всё-таки для меня самым большим препятствием в создании игр на Canvas является тупёж с таймерами. Как организовать работу таймеров правильно. Стоит ли помещать отрисовку игры в функцию, которая в последующем будет вызываться через реквест анимейшн фрейм, образуя тем самым подобие примитивнейшего игрового цикла или же организовать это как-то по другому (как?). Если использовать requestAnimationFrame(), то как тогда работать с внутренней анимацией отрисовывающихся объектов, когда необходимо задать определенные интервалы для их работы. Скажем, некоторые анимации должны быть использованы лишь раз, другие повторяться время от времени, третьи только тогда, когда игрок совершает какое-либо действие, к примеру кликает мышкой по канве, чтобы переместить игровой спрайт на выбранную позицию (сейчас я это делаю с помощью canvas.addEventListener, либо для click, либо для keypressed, но мне начинает казаться, что я что-то делаю не так, хотя всё работает). Неужели нужно создавать кучу ифов и проверочных условий в самом цикле?
А еще есть такая проблема, когда таймер продолжает работать в то время, когда работа requestAnimationFrame() по каким-то причинам приостановлена, к примеру, переключена вкладка. Таким образом, анимация будет проиграна лишь до того момента, пока не было сделано определенное действие, остановившая работу колбэка, но не остановившая работу таймера, по которому высчитывается эта самая анимация. Есть какие-то более подходящие приемы работы с таймерами в таких случаях, когда они работают вместе с колбэком? Хотя возможно именно поэтому работу таймера записывают в другую переменную при вызове колбэка, как я видел на некоторых примерах. Хотя нет, написал сейчас из примера, проблема сохранилась при переключении вкладки. Неужели нужно работать с сеттаймаутами тогда?

Это ещё я не добирался до серверной части, когда действия игрока нужно записывать в БД. Походу не быть мне геймдевелопером, как я мечтал. Слишком тупой для этого.

>> No.15763   []
[]

>>15761

>сейчас я это делаю с помощью canvas.addEventListener

Вернее canvas.addEventListener для click и document.addEventListener для key. Canvas не считывает никакие key, ибо нажатие клавиш это всё-таки действие более глобальное, нежели чем то, что происходит на холсте.

>> No.15764   []
[]
190689

>>15761
Всё потому, что ты дебил.

>> No.15765   []
[]

>>15761

>Стоит ли помещать отрисовку игры в функцию, которая в последующем будет вызываться через реквест анимейшн фрейм, образуя тем самым подобие примитивнейшего игрового цикла

Почему бы и нет? Туда же update сделать.

>как тогда работать с внутренней анимацией отрисовывающихся объектов, когда необходимо задать определенные интервалы для их работы

Можно с setTimeout или вычислять на основе того же requestAnimation.

> Неужели нужно создавать кучу ифов и проверочных условий в самом цикле?

Для чего?

>А еще есть такая проблема, когда таймер продолжает работать в то время, когда работа requestAnimationFrame() по каким-то причинам приостановлена, к примеру, переключена вкладка.

Хм. С этим не сталкивался. С setInterval нормально пашет?

>> No.15768   []
[]
0

>>15761
Нахуй вообще делать игры на canvas? Сделай нормальное что-нибудь лучше.

>>15764
В /b/ завелся дебил, который бегает по тредам и всех обзывает дебилами.

>> No.15769   []
[]

>>15768

>Сделай нормальное что-нибудь лучше.

Я не он, но что ты подразумеваешь под "нормальным"? Совсем не делать игры или делать на "нормальном" языке, не в браузере?

>> No.15773   []
[]

>>15769
Второе. По моему опыту, браузерки - это всегда днище. Плюс, я противник концепции браузера как программы для всего подряд.

>> No.15782   []
[]

>>15761

> Стоит ли помещать отрисовку игры в функцию, которая в последующем будет вызываться через реквест анимейшн фрейм

Так обычно и делают - и игровой цикл, и отрисовку организуют в колбеке запроса нового кадра.

> Если использовать requestAnimationFrame(), то как тогда работать с внутренней анимацией отрисовывающихся объектов, когда необходимо задать определенные интервалы для их работы. Скажем, некоторые анимации должны быть использованы лишь раз, другие повторяться время от времени, третьи только тогда, когда игрок совершает какое-либо действие, к примеру кликает мышкой по канве, чтобы переместить игровой спрайт на выбранную позицию

Для этого используют машины состояний и функции от времени. Надеюсь, не надо объяснять, что это?

> А еще есть такая проблема, когда таймер продолжает работать в то время, когда работа requestAnimationFrame() по каким-то причинам приостановлена, к примеру, переключена вкладка.

Теперь ты понимаешь, почему JS - говно ёбаное?

В нормальных играх при потере фокуса включается пауза.

>>15773

> По моему опыту, браузерки - это всегда днище.

На вкус и цвет. Я вот с популяризацией Флеша нативные игры перестал всерьез воспринимать.

Проблема Флеша в том, что при разработке ты очень быстро начинаешь упираться в производительность. Собственно, это единственная ее проблема, LOL.

А HTML5 я вообще за технологию не считаю. Там комп встает раком еще на этапе "hello world". Игрушка, как эзотерические языки типа Brainfuck, Unlambda - не более того. Можно еще программированию на нем учить - на HTML5 практически моментально получаешь отдачу, в отличие от других технологий.

>> No.15784   []
[]

>>15782

>машины состояний и функции от времени

Ты о чём? Машины состояний? Это что-то от теории автоматов? И что значит функции от времени?

>> No.15787   []
[]

>>15784
Понятно, нужно объяснять.

Просто хранишь текущее состояние внутри объекта. Например: "enemy.state = 'dvigaetsya'", "enemy.state='stoit'", "enemy.state = 'gotovitsya_udaritь'", а в requestAnimationFrame() анализируешь switch-ем.

А анимации можно сделать функциями от времени. Например, когда нужно анимировать удар рукой, пишешь в калбеке на нажатие кнопки удара: "player.animation_start_time = now()", а в requestAnimationFrame() пишешь: "drawSprite(floor((now() - player.animation_start_time)/некий_коэффициент))".

Немного сумбурно, но, надеюсь, понятно.

>> No.15789   []
[]
0

>>15787

>Понятно, нужно объяснять.

Ты будто снисходишь прямо. Сам написал непонятно что, а те, кому объяснять надо - тупые? Со state понятно, если рассматривать твоё объяснение - я делал такое. Но причём только тут машины? Это более продвинутая концепция, насколько я понимаю.

С функциями теперь ясно, просто засекать время начала анимации и относительно него считать. Вот без объяснения мало ли что ты там хотел сделать с ним.

>> No.15832   []
[]

>>15789

> а те, кому объяснять надо - тупые?

Это уже ты сам придумал.

> Это более продвинутая концепция, насколько я понимаю.

Да это оно и есть, в общем-то.

>> No.16949   []
[]
0

Я тут задался вопросом - а как можно хранить данные карт игры? Допустим, есть движок, рисующий объекты с определёнными координатами - не писать же всё это в коде, в самом деле. Но что тогда нужно делать? Создавать отдельные файлы с наборами символов, как бы в виде матрицы? Но как тогда учесть разные разрешения экранов и размеры картинок?

>> No.16950   []
[]

>>16949
Как-то неконкретно ты описал свою ситуацию. Что за движок, что за карты? Двухмерный, трехмерный хотя бы?

>> No.16951   []
[]

>>16950
Двумерный. Мне кажется, понятно что за карты - конкретно описание того, какие объекты где располагаются относительно друг друга.

>> No.16953   []
[]
226677

>>16951

>какие объекты где располагаются относительно друг друга.

Стоп, а что вообще у тебя там за система координат? Я когда пытался сделать изометрический движок, у меня там была тайловая сетка, и каждый тайл считался за единицу координаты.

>> No.16954   []
[]

>>16953
Пока что просто по пикселям.

>> No.16955   []
[]
272806

Как-то так.

>> No.16956   []
[]

>>16954
Ну придумай для начала какую-нибудь систему координат.

>> No.16957   []
[]

>>16954
Алсо, можно просто сделать фиксированное разрешение.



Удалить пост []
Пароль