Игра Рулетка на Jetpack Compose + Kotlin + Android Studio | #2

Поділитися
Вставка
  • Опубліковано 27 гру 2024

КОМЕНТАРІ • 28

  • @mikhaillazarev5378
    @mikhaillazarev5378 4 місяці тому

    Спасибо большое за видео, очень полезное ❤

  • @СергейХ56
    @СергейХ56 10 місяців тому +1

    Я не стал заморачиваться с математикой. Сделал массив строковым. Вместо 0 написал "Зеро", вместо 32 - "32 красное" и т.д. Ещё кое-где изменил Int на String. Добавил в конце ещё одно "Зеро" и делитель в index заменил на число 37f. Всё отлично работает. Спасибо учителю за уроки!

  • @Relax-4-Relax
    @Relax-4-Relax Рік тому

    не болей

  • @novus__ordo
    @novus__ordo Рік тому +1

    Какой же он крутой. Спасибо за урок

  • @dmitry_ruden
    @dmitry_ruden Рік тому +5

    Отличный урок! Огромное спасибо по урокам с применением Compose в реальных приложениях на практике. Очень полезно. Ждем продолжения) Хорошего дня.

  • @rodnyyivan6055
    @rodnyyivan6055 Рік тому +4

    Огромное спасибо за урок, я многое учу по вашим видеоурокам:)

  • @rasl_22
    @rasl_22 Рік тому +2

    О продолжение, класс!!!
    Спасибище, пошел смотреть )

  • @nikitapobeda9273
    @nikitapobeda9273 Рік тому +2

    Благодарю!

  • @pavelgera72
    @pavelgera72 Рік тому +2

    Благодарю за урок

  • @Nik_Gol_V
    @Nik_Gol_V Рік тому +1

    Спасибо большое

  • @aistepan
    @aistepan Рік тому

    Сергей большое спасибо, не грусти!

  • @vestanime
    @vestanime Рік тому +1

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

  • @ilatough2314
    @ilatough2314 Рік тому +1

    В коде урока на официальном сайте используется toInt() вместо roundToInt(), но значения в итоге выдает более точные.
    Получить нужный цвет можно так: в массиве элементы с четными индексами черные, с нечетными красные, а ноль зеленый
    var indexState by remember { mutableStateOf(0) }
    indexState = index.toInt()
    ...
    color = when {
    indexState == 0 -> Green
    indexState % 2 == 0 -> Black
    indexState % 2 != 0 -> Red
    else -> throw Exception ("WTF?")
    }

  • @andreykuku7917
    @andreykuku7917 Рік тому +2

    Спасибо,но вопрос, а , что с уроком по bluetooth???????

  • @sandrinskiy8417
    @sandrinskiy8417 Рік тому

    Спасибо за урок. Хотелось бы прояснить 2 момента:
    1) 24:52 например, выпало значение "3". Отнимаем 360 - 3 = 357. Затем 357 делим на вторую скобку (там приблизительно 9,729). Получаем ~ 36,69. В следующей строке округляем до 37 и пытаемся получить число по этому индексу, что не получится сделать, так как максимальный индекс 36?
    2) Картинка перед повторным кручением ставится в исходное положение с нулем сверху (даже, если для зрителя кажется, что движение продолжается с точки остановки)?

    • @NecoRuChannel
      @NecoRuChannel  Рік тому

      1 - Это потому что я это не учел, у нас 360 градусов это значит что у нас "0" будет и с 1 до 9.72 градуса и с 351 до 360 опять будет "0" но в массиве нет два "0" по этому можно просчитать математически чтоб в конце не учитывать "0" или самое простое добавить еще "0" в массив это и будет позиция 37 на которой "0" вот и все.
      2 - не понимаю о чем ты так как на видео видно что крутиться с того места где остановилось а не всегда с "0" как ты говоришь. Или я может не понял о чем ты

    • @sandrinskiy8417
      @sandrinskiy8417 Рік тому +1

      @@NecoRuChannel 2) Не совсем понимаю, как текстовое значение поля всегда совпадает с тем, что на картинке. Ведь картинка меняется динамично, но значения текстового поля зафиксированы относительно первого порядка чисел на 15:14.
      26:21 например, крутим на 50 градусов - выпадает число 28. Это индекс 32 ((360 - 50)/9,72).
      Крутим повторно на 50 градусов - теперь на картинке стрелка будет указывать на число 9, но в текстовом поле вроде как должно быть все так же 28, ведь индекс 32.. 😅

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +1

      @@sandrinskiy8417 ну это потому что у нас постоянно слаживаться. Крутим на 50 будет определенное число, крутим еще на 50 это уже будет 100 так как остановилось на 50 и мы прокрутили еще на 50. Как только общая сумма превысит 360 то опять начнет с 0 по этому правильно показывает.

    • @sandrinskiy8417
      @sandrinskiy8417 Рік тому +1

      @@NecoRuChannel да, как раз прокрутил в голове цепочку - все верно: если 2 раза выпадает по 50 градусов - это (360 - 100)/9,72 = индекс 27 - число 9. Отлично, спасибо за ответ!

  • @bobah7836
    @bobah7836 Рік тому +1

    значение angle всегда растёт. если добавить кругов прокрутки, то оно будет расти ещё быстрее и когда-нибудь достигнет лимита. попробовал заменить его на var чтобы сбрасывать его как бы на первый круг (%360), но класс анимации работает только с val... Как можно избежать потенциальной утечки памяти?

  • @videoCxema
    @videoCxema Рік тому +1

    расскажи детальней o "by", где как можно применять 🙂

    • @EgorKholod
      @EgorKholod Рік тому

      Ленивая инициализация, Хранение свойств в мапах, Для реалзации методов интерфейсов, для предоставления доступа к свойствам ViewModel из активности или фрагмента.

  • @Coffeekin8282
    @Coffeekin8282 Рік тому +1

    а че так лайков мало?

  • @JonathanSulivan666
    @JonathanSulivan666 Рік тому +1

    remember не работает пишет горит красным и всё даже если написал мвтабле Стейт всё по инструкции всё равно remember не работает

    • @NecoRuChannel
      @NecoRuChannel  Рік тому +1

      Покажи как написал где?

    • @JonathanSulivan666
      @JonathanSulivan666 Рік тому

      @@NecoRuChannel я понял что нельзя переносить фигурные скобки на новую строчку. Я всегда любил переносить фигурные скобки на новую строчку, с c++ привычка

  • @Libraik
    @Libraik Рік тому +1

    Когда у меня выпадал 0 на рулетке, игра вылетала. Помогло следующее: замена number = list[index.roundToInt()] на
    number = if (index.roundToInt() < 0) {
    list[list.size - 1]
    } else if (index.roundToInt() >= list.size) {
    list[0]
    } else {
    list[index.roundToInt()]
    }

    • @NecoRuChannel
      @NecoRuChannel  Рік тому

      Просто в массив с цифрами добавь еще один 0 в конец массива и никакой код писать не нужно