Пятница, 01 Июля 2022, 20:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » DmitriyIM [11]
Результаты поиска
DmitriyIMДата: Пятница, 17 Июня 2022, 21:17 | Сообщение # 1 | Тема: Как у string удалить невидимый символ в конце
был не раз
Сейчас нет на сайте
GMassta, если я правильно понял, то твой код, который ты предлагаешь автору темы, должен работать как с \r\n, так и с \n символами, при этом, еще убирать лишние пробелы по краям (в начале, и в конце) строки за счет Trim?

Но смотри, допустим у нас есть текст:
Код
string s = "Text1\r\nText2";

И мы применяем к нему:
Код
string[] words = s.Replace('\r', ' ').Trim().Split('\n');


Что будет написано в words[0]?
words[0] == "Text1 " ;)

Причина в том, что после Replace, Trim получает "Text1 \nText2", и соответственно не обрабатывает пробел, так как он находится в середине строки, а не с края.

Добавлено (17 Июня 2022, 21:22)
---------------------------------------------
Есть конечно способ, реализовать примерно такой вариант через Regex, если он нужен alexsilent...


Сообщение отредактировал DmitriyIM - Пятница, 17 Июня 2022, 21:22
DmitriyIMДата: Пятница, 17 Июня 2022, 00:49 | Сообщение # 2 | Тема: Как у string удалить невидимый символ в конце
был не раз
Сейчас нет на сайте
alexsilent, вместо Substring можно использовать функцию Remove:
Код
string s = "Text";
s = s.Remove(s.Length - 1, 1);

передав два параметра: начальную позицию (s.Length - 1), с которой начинается удаление символов в строке, и количество удаляемых символов (1).

Добавлено (17 Июня 2022, 01:08)
---------------------------------------------
alexsilent, хотя, в твоем случае лучше использовать именно Substring, так как ты удаляешь последний символ, или, если бы тебе нужно было первый символ удалить.

Remove же полезен, когда нужно удалить символы из середины, то есть, когда у строки остается часть символов ДО удаления и часть ПОСЛЕ, тогда вызвав Remove, тебе не нужно будет объединять эти части...

Хотя, кто сейчас будет запариваться для ускорения кода на 0.01% ;)

DmitriyIMДата: Вторник, 22 Февраля 2022, 22:08 | Сообщение # 3 | Тема: Направление с анимацией Curve
был не раз
Сейчас нет на сайте
Цитата drcrack ()
оставь cos и sin для уроков геометрии, в юнити есть инструменты поудобнее


А что там у этих инструментов внутри, магия? ;) Если человек поймет алгоритм, он и без них сможет все сделать....

Для меня понимание, всегда важнее, чем поиск готового ответа. Если я не прав, то извини ok
DmitriyIMДата: Вторник, 22 Февраля 2022, 21:05 | Сообщение # 4 | Тема: Направление с анимацией Curve
был не раз
Сейчас нет на сайте
Цитата Spring ()
Желательно чтобы решение не представляло собой вращение всего объекта.


Нужно вращать, а точнее добавлять к:
Цитата Spring ()
Код
transform.position = new Vector3(transform.position.x, CurveAnim.Evaluate(curveTime), 0);


cos и sin от угла направления.
DmitriyIMДата: Воскресенье, 26 Декабря 2021, 17:36 | Сообщение # 5 | Тема: Прилипание нескольких объектов к курсору
был не раз
Сейчас нет на сайте
Цитата DTYohane ()
Всё равно берёт несколько кусков сразу так как проверка идёт на все объекты под курсором не зависимо от их глубины


Правильно, потому что ты не делаешь замыкание, после того, как был выбран первый кусок пазла.

Цитата
Тогда в событии "Left Pressed" можно будет назначить go=true для куска с наибольшим индексом:
1. берешь индекс объекта, попавшего в обработчик
2. проверяешь, есть ли уже какой-то активный кусок, который получил go=true. Если да, то смотришь его индекс если он меньше, то присваиваешь ему go=false
3. в событии "Left Released" сбрасываешь индекс активного куска для следующих нажатий...


Тебе нужно посмотреть про глобальные переменные

С их помощью можно хранить информацию о том, что какой-то кусок уже был выбран, и проверить его уровень.


Сообщение отредактировал DmitriyIM - Воскресенье, 26 Декабря 2021, 21:24
DmitriyIMДата: Воскресенье, 26 Декабря 2021, 02:58 | Сообщение # 6 | Тема: Прилипание нескольких объектов к курсору
был не раз
Сейчас нет на сайте
Цитата DTYohane ()
DmitriyIM, Спасибо, в голове прикинул как это должно выглядеть, но у меня туговато с командами. Не могли бы вы по-подробнее описать что значит Z. Насколько я понял это как depth. У меня 20 кусков и всё это разные объекты. В комнате они создаются заранее (без instance_create).


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

Лично я предпочитаю динамическое создание объектов, вот пример создания классических пазлов:


Тут я сделал подъем выбранного куска пазла, чтобы он рисовался поверх других.
DmitriyIMДата: Суббота, 25 Декабря 2021, 00:34 | Сообщение # 7 | Тема: Прилипание нескольких объектов к курсору
был не раз
Сейчас нет на сайте
DTYohane, нужно использовать индекс объекта по Z - стопка кусков пазла. Когда создается каждый кусок, ему кроме x и y нужно указывать z, причем на единицу больше, чем предыдущему. Тогда в событии "Left Pressed" можно будет назначить go=true для куска с наибольшим индексом:
1. берешь индекс объекта, попавшего в обработчик
2. проверяешь, есть ли уже какой-то активный кусок, который получил go=true. Если да, то смотришь его индекс если он меньше, то присваиваешь ему go=false
3. в событии "Left Released" сбрасываешь индекс активного куска для следующих нажатий...

Таким образом, нажатие будет происходить только на верхнем объекте.
DmitriyIMДата: Пятница, 24 Декабря 2021, 00:10 | Сообщение # 8 | Тема: Opengl, Lazarus, Реализация игрового поля
был не раз
Сейчас нет на сайте
Цитата cann ()
То есть, игровое поле (размер которого 400х400 пикселей) является самым нижним слоем, на нем видны игровые объекты, а остальное неигровое поле является самым высоким слоем и на нем игровые объекты не видны. Если игровой объект (Астероид) движется из неигрового поля в игровое, то он в игровом поле появляется плавно, сначала не виден, потом выходит из неигрового поля в игровое.


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

Могу постараться найти хорошую литературу, если напишите какую версию OpenGL планируете использовать.
DmitriyIMДата: Среда, 08 Декабря 2021, 13:42 | Сообщение # 9 | Тема: Не работает строчка массива Transform [РЕШЕНО]
был не раз
Сейчас нет на сайте
Цитата drcrack ()
вариант 1 не скомпилируется (нет такой перегрузки у Instantiate)


Точно? blink По информации из https://docs.unity3d.com/ScriptReference/Object.Instantiate.html он должен быть, но сейчас нет возможности это проверить, поэтому пока его убрал.

Цитата drcrack ()
если ты хочешь это записать в одну строчку, учитывай вращение тоже)

Ну в качестве альтернативы можно вместо переменной написать свою функцию ;) а в ней уже брать позицию и поворот.
DmitriyIMДата: Среда, 08 Декабря 2021, 07:50 | Сообщение # 10 | Тема: Не работает строчка массива Transform [РЕШЕНО]
был не раз
Сейчас нет на сайте
Цитата serezha ()
можно ли это в одну строчку записать?


№1: ... (по словам drcrack: нет такой перегрузки у Instantiate; проверю, напишу)

№2:
Код
Instantiate(PlayerKubik, arrayOfSpawnPoints[Random.Range(0, arrayOfSpawnPoints.Length)].position, Quaternion.identity);


Сообщение отредактировал DmitriyIM - Среда, 08 Декабря 2021, 15:42
DmitriyIMДата: Пятница, 05 Марта 2021, 06:38 | Сообщение # 11 | Тема: Opengl, glutGetModifiers не срабатывает на сочетания клавиш
был не раз
Сейчас нет на сайте
cann, привет.

У тебя есть Skype или VK?
Форум игроделов » Записи участника » DmitriyIM [11]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг