ПрограммированиеФорумОбщее

Вопросы от Непрограммиста (23 стр)

Страницы: 122 23 24 2543 Следующая »
#330
(Правка: 17 ноя 2025, 13:16) 20:05, 26 сен 2025


                    <<  ЗАМЕТКИ  >>

  Я уже написал десятки игровых функций и сотни строк кода, но досих пор немогу понять, как лучше манипулировать переменными. Дело в том, что объекты (с этими переменными) то появляются, то исчезают, то меняются сцены, то на эти переменные ещё что воздействует.
  И я пока решил делать так:
  Есть, например, переменная с начальным значением “_power = 3 ”. И чтобы её изменить, то мы не обращаемся прямо к ней на прямую, а приплюсовывать ей другую переменную, которая изолирована от всего ненужного и является как правило, глобальной. Например “ global._bonus = 5 ”. И получаем ” _power = 3 + global._bonus ”.


elcar
> Для этого даже придумали формат под названием JSON.
  То есть это “ключ:значение”, и сам массив мы добавлять в “значение”.
  Ты-то мне показываешь JSON файл, а в нём всё просто и понятно (раздел. ключ:значение и т.д. по новой)
  Выглядит это, конечно, всё удобно, наглядно и понятно, но только - в JSON файле. А вот как этим всем манипулировать в коде… Это как пятью кеглями жонглировать. А я пока могу только одной. Но принцип мне приблизительно понятен. Мне сноровки не хватает.

#331
20:16, 26 сен 2025

711
> Но принцип мне приблизительно понятен.
Нет.

Для поворота мозга в нужную сторону, попробуйте прочесть пару первых глав Дейкстры "Дисциплина программирования". Как математика начнет подавлять - бросайте. Вам надо просто сломать стереотип (профилактика детской болезни - ООП).

#332
20:53, 26 сен 2025

gudleifr
  Я вот сейчас хочу начать что-то писать на C# в Unity. Буду это делать практически с нуля. Так как я и так в программировании почти ноль. Но и также я всё, что я знал про C# уже подзабыл.
  Что, по твоему мнению, я (или любой другой такого же уровня) должен начать писать ? какой код ? С чем он должен быть связан ? С переменными, циклами, массивами… ?
  Вот если прям с нуля - с чего я должен начать практику ?
 
  В плане теории я понял. Это в первую очередь нужно начать читать - Дейкстр "Дисциплина программирования".

#333
21:00, 26 сен 2025

711
> Вот если прям с нуля - с чего я должен начать практику ?
понимаю что ты уже возможно лоялен секте, но вдруг... https://catlikecoding.com/unity/tutorials/basics/

#334
21:06, 26 сен 2025

711
> В плане теории я понял.
Теория там заумная. Вам - только начало, для настроения.

711
> Что, по твоему мнению, я (или любой другой такого же уровня) должен начать писать ?
Есть 4 способа обучения:
1. Тупо по обучалке. Ну, по какой-нибудь книжке, где от начала до конца поэтапно проходится пара-другая больших учебных проектов.
2. Много маленьких задачек. От простых расчетов, свистелок и перделок, до задачек с нетривиальным решением. Не для чего-то конкретного, а в качестве головоломок.
3. Очумелые ручки. Коллекционирование полезных программок. Например, хотите по играм. Найдите в каком-нибудь журнале бросатель кубиков. Найдите какой-нибудь полезный шейдер. После каждой находки радуйтесь, насколько легче стало играть.
4. Большой проект самостоятельно от начала до конца.

Какой способ Вам ближе? Отвечайте не мне. Себе.

#335
(Правка: 15:21) 15:18, 27 сен 2025

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

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

А) мы купили четыре улучшения по указанным ценам.
Б) мы уменьшили два улучшения. И можем увеличить обратно и всё бесплатно.
ia9nw | Вопросы от Непрограммиста

•  После каждой покупки обновления переменная _power получает +1 к значению.
•  При помощи этой переменной я отрисовываю циклом for купленные ячейки.
И здесь пока всё просто.
•  при уменьшении обновления, уже купленные ячейке в шкале должны отображаться другим цветов.
•  При повторном увеличение деньги не должны сниматься. Но до тех пор пока мы не дойдём до ещё не купленных ячеек..
И тут у меня просто бардак начинается.


kkolyan
> но вдруг…
  Да там в целом довольно интересный сайтик.

gudleifr
> 1.
> 2.
> 3.
> 4.
  Ну тогда всё ОК.
  Именно всё это я и делаю.

#336
15:26, 27 сен 2025

711
> Именно всё это я и делаю.
Все не надо. Что из этого у Вас получается лучше?

#337
16:39, 27 сен 2025

711
> •  После каждой покупки обновления переменная _power получает +1 к значению.
> •  При помощи этой переменной я отрисовываю циклом for купленные ячейки.
> И здесь пока всё просто.
> •  при уменьшении обновления, уже купленные ячейке в шкале должны отображаться другим цветов.
> •  При повторном увеличение деньги не должны сниматься. Но до тех пор пока мы не дойдём до ещё не купленных ячеек..
> И тут у меня просто бардак начинается.

//создаём структуру данных для обновлений, "total" = прокачанные уровни, "current" = текущие
var updateArr = [{"id":0,"name":"Опупительное обновление","total":3,"current":2}]
// отображаем все обновления
function visualUpdates () {
  let iMax  = updateArr.length
  for (let i = 0; i < iMax; i++) {
    visualOneUpdate(i) 
  }
}
// убираем отображение обновлений
function removeVisualUpdates () {
  //тут код для удаления всех кубиков
}
// отображаем кубики одного обновления
function visualOneUpdate(idUpdate) {
  let iMax = updateArr[idUpdate].current
    for (let i = 0; i < iMax; i++) {
    visualOnePointUpdateCurrent()  //рисуем кубик купленной работающей ячейки
  }
  let iMax2 = updateArr[idUpdate].total - updateArr[idUpdate].current
    for (let i = 0; i < iMax2; i++) {
    visualOnePointUpdateTotal()  //рисуем кубик купленной неработающей ячейки
  }
}
// увеличиваем текущий уровень обновления
function addCurrentUpdate (idUpdate) {
  if (updateArr[idUpdate].current < updateArr[idUpdate].total) {
    updateArr[idUpdate].current++
  removeVisualUpdates ()
  visualUpdates ()
  }
}
// уменьшаем текущий уровень обновления
function removeCurrentUpdate (idUpdate) {
  if (updateArr[idUpdate].current > 0) {
    updateArr[idUpdate].current—
  removeVisualUpdates ()
  visualUpdates ()
  }
}
// увеличиваем максимальный уровень обновления
function addTotalUpdate (idUpdate) {
  updateArr[idUpdate].total++
  removeVisualUpdates ()
  visualUpdates ()
}

#338
18:53, 27 сен 2025

elcar
а можно тэгом code пользоваться?!

+ он менее кашанинный вид придаёт
#339
9:03, 29 сен 2025

711
> И тут у меня просто бардак начинается.
>
>
Вроде всего две проверки надо сделать. При апгрейде, текущему индикатору задавать цвет "куплен". Предварительно проверить деньги. При даунгрейде тупо текущему индикатору задавать цвет "доступен".

#340
10:15, 29 сен 2025

elcar
skalogryz

Напомнило:

g9b22610 | Вопросы от Непрограммиста
#341
(Правка: 17 ноя 2025, 13:12) 13:48, 29 сен 2025


                    <<  ЗАМЕТКИ  >>

Все названия с _нижним_подчёркиванием в начале, это мои переменные (пользовательские).

                          Первое:
  Если переменной _my_variable нужно присвоить _speed, а потом отнимать по 0.01 то…

Create-----------------------
_speed = 1
_my_variable = 0

Update----------------------
  // … то вот так не получится
_my_variable = _speed - 0.01 
  // то есть хоть это и Update, однако переменная _speed постоянно возвращается к значению при инициализации в Create

Update----------------------
  // Это нужно разбить на два действия
_speed -= 0.01
_my_variable = _speed
  // а вот так она будет перезаписываться.


                          Второе:
  Разбираю создание собственных функция

function _my_fun (_var01, _var02, _var03) {
return (_var01 + _var02 * _var03)
}

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

                          Третье:
Массивы_это = [“радость”, “счастье”, “это_всё” ]
Нужно наконец взять себя в руки и проникнуть в них поглубже.

gudleifr
> Что из этого у Вас получается лучше?
  Для меня это всё одинаково. Чередую по мере усталости и тупиков. Зато потом одно помогает другому.

elcar
  Кое что получилось.

skalogryz
  А я копирую код в редактор и он мне там сразу всё подсвечивает.
  Самое полезное - это когда выбранное слово подсвечивается везде, где оно используется

Slic
  Ты недооцениваешь мой уровень.
  Для меня это всё, абсолютно всё - это как какой-то вымышленный мир, в котором действуют абсолютно иные законы физики и принципы социального строя.
  Но, как я уже написал выше - я частично это реализовал.
  Просто там одно начинает цеплять за другое и тут “начинается бардак”.
  Там три персонажа, пять апдейтов у каждого, всё в разных сценах, всё должно сохраняться/загружаться…

#342
14:04, 29 сен 2025

711
> Для меня это всё одинаково.
Низ-зя!

Попробую с другого конца. Представьте, что вы плывете в лодке по океану. Вокруг - никого. Голову напекло - начали мерещиться всякие Спейс Инвейдеры... И вдруг вас прибивает к большому линкору (движок). Стоит он посреди океана и гасит с другого борта из всех своих бронебашен злобных Инвейдеров. Вы подгребаете ближе и начинаете на борт линкора свои записки-заклинания клеить. Иногда линкор стреляет, куда Вам надо, иногда нет. Постепенно Вы замечаете на борту линкора пробоины и иллюминаторы - сквозь них видны отдельные его машины. Вы их пытаетесь срисовать (Ваши темы "Разное" и "Заметки") и сделать свои записки более осмысленными. Русалки всякие - elcar и skalogryz - подсказывают Вам, как "правильно" составлять записки, ну, там, писать только фиолетовыми чернилами, заголовок подчеркивать двойной волнистой и пр. И тут возникает вопрос, чего Вы хотите? Пробраться в рубку линкора и командовать им всерьез? Подняться на палубу и начать на ней мастерить свои ракеты-томагавки? Заплыть с другой стороны и окинуть взглядом картину в целом? Или стать Нео и понять, что никакого линкора нет?

#343
14:51, 29 сен 2025
ирдикатор апгрейда | Вопросы от Непрограммиста

код на js, но всеже

#344
17:16, 29 сен 2025

711
>   Для меня это всё, абсолютно всё - это как какой-то вымышленный мир, в котором действуют абсолютно иные законы физики и принципы социального строя.
Вот для этого и нужно профильное образование, хотя бы IT бакалавриат. Потому, что "чтобы правильно задать вопрос нужно знать большую часть ответа" (с) Роберт Шекли.
А получая рабочие ответы, но не понимая фундаментальной теории, ты только изнуряешь себя ментальным онанизмом.
Хотя бы скачай любой учебник по предмету "Информатика" для первого курса вуза и прочитай от корки до корки.

Страницы: 122 23 24 2543 Следующая »
ПрограммированиеФорумОбщее