Как сделать змейку на Windows Forms C++ (3 - Backend)

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 ก.ย. 2024

ความคิดเห็น • 34

  • @user-mz7gz2fq7g
    @user-mz7gz2fq7g 4 หลายเดือนก่อน

    Ты умничка. Очень спас. Спасибо.

  • @user-mx3er7ve8p
    @user-mx3er7ve8p 3 ปีที่แล้ว +3

    Спасибо. Классно объясняешь, продолжай в том же духе

  • @shirli-by4dl
    @shirli-by4dl 3 ปีที่แล้ว +3

    Спасибо большое, очень понятно и интересно. Хотелось бы увидеть реализацию тетриса или подобных игр) заранее спасибо

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 ปีที่แล้ว +1

      Заявка принята 👌
      Скоро будет много игр на с++ Win Forms (крестики нолики, судоку, морской бой, танчики и многое другое)

    • @skykriper
      @skykriper 2 ปีที่แล้ว

      бля дело говоришь

  • @владиквладик-и1з
    @владиквладик-и1з 7 หลายเดือนก่อน

    Большое спасибо!

  • @mircrashjsh
    @mircrashjsh 4 ปีที่แล้ว +3

    Спасибо

  • @alexwhite8040
    @alexwhite8040 3 ปีที่แล้ว +1

    Спасибо. Всё очень подробно и ясно.

  • @artempoleev7847
    @artempoleev7847 3 ปีที่แล้ว

    Молодец. Очень хорошо объяснил и сделал.

  • @user-hq6iy6zk8s
    @user-hq6iy6zk8s 2 ปีที่แล้ว

    Спасибо!)

  • @Red-sw5lm
    @Red-sw5lm 3 ปีที่แล้ว +2

    НЕ УХОДИ! ПРОШУ!

  • @unrealengineruseng9583
    @unrealengineruseng9583 3 ปีที่แล้ว

    Огромное спасибо !!!

  • @vitalyg1949
    @vitalyg1949 2 ปีที่แล้ว +1

    Подскажите пожалуйста как добавить картинку на фрукт, и саму змейку?
    Ведь их мы не создаём в форме, поэтому нельзя просто через свойства поменять изображение.
    У бордюров изменил через свойства на форме

  • @КсенияКузнецова-к3ю
    @КсенияКузнецова-к3ю 2 ปีที่แล้ว

    Здравствуйте , очень интересно увидеть flappy bird на с++ windows form . Надеюсь увидите

  • @andrey0698
    @andrey0698 ปีที่แล้ว

    По поводу границ рамки - нужно учитывать и то, что координаты считаются для левого края, а не для ближайшего. Исправил следующим образом:
    void Practic::Games::ChackBorders()
    {
    if (Snake[0]->Location.X >= LimitRight->Location.X-10 || Snake[0]->Location.X Location.X) {
    GameOver();
    }
    if (Snake[0]->Location.Y Location.Y+10 || Snake[0]->Location.Y >= LimitDown->Location.Y) {
    GameOver();
    }
    }

    • @andrey0698
      @andrey0698 ปีที่แล้ว

      Добавлю - не работает проверка на генерацию фрукта в змейке - решение:
      //Преобразуем значение, чтобы было кратно шагу
      int tempX = positionFruit.X % step;
      positionFruit.X -= tempX;
      int tempY = positionFruit.Y % step;
      positionFruit.Y -= tempY;
      //Проверка, чтобы фрукт не создался на змейке
      for (int i = 0; i < score; i++) {
      if (positionFruit.X == Snake[i]->Location.X && positionFruit.Y == Snake[i]->Location.Y)
      GeneratePositionFruit();
      }

  • @jakhongirmakhmudov38
    @jakhongirmakhmudov38 ปีที่แล้ว

    Здравствуйте, как вы дошли до такого уровня?
    Где или откуда вы научились делать и реализовать подобные проекты?

  • @andrey0698
    @andrey0698 ปีที่แล้ว +1

    Нашёл косяк с управлением - можно убить себя, просто поехав в другую сторону. Вот фикс:
    System::Void Practic::Games::Games_KeyDown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e)
    {
    //Считываем нажатую клавишу
    if (e->KeyCode.ToString() == "Right" && direction.Y != 0) {
    direction.X = 1;
    direction.Y = 0;
    }
    else if (e->KeyCode.ToString() == "Left" && direction.Y != 0) {
    direction.X = -1;
    direction.Y = 0;
    }
    else if (e->KeyCode.ToString() == "Up" && direction.X != 0 ) {
    direction.Y = -1;
    direction.X = 0;
    }
    else if (e->KeyCode.ToString() == "Down" && direction.X != 0) {
    direction.Y = 1;
    direction.X = 0;
    }
    return System::Void();
    }

  • @yrysbeka1159
    @yrysbeka1159 5 หลายเดือนก่อน

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

  • @eternalepic9222
    @eternalepic9222 3 ปีที่แล้ว +1

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

    • @wanlly
      @wanlly ปีที่แล้ว

      решил эту проблему?

  • @skykriper
    @skykriper 2 ปีที่แล้ว

    а что делать если в файле MyForm.cpp ошибка в include? Оно говорит что "Ошибка в командной строке: не удается открыть метаданные файлы "System.Runtime.dll" " помогите пожалуйста добрый дядя :)

  • @Мифбастерс
    @Мифбастерс 3 ปีที่แล้ว

    Привет! Писал программу за тобой, всё получилось, кроме одного, у меня змея не успевает съесть фрукт, потому что фрукт всегда появляется в разных местах, можешь подсказать, в чем проблема, мне кажется, что это из-за того, что GeneratePositionFruit();
    Стоит в цикле
    for (int i = 0; i < score; i++) {
    if (positionFruit.X == Serpens[i]->Location.X &&
    positionFruit.Y == Serpens[i]->Location.Y)
    GeneratePositionFruit();
    }
    Но почему тогда у тебя всё работает?

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 ปีที่แล้ว

      Привет!
      Этот цикл должен проверять, не съела ли змейка фрукт. Попробуй поставить точку останова везде, где вызывается функция генерации фрукта. По идеи, это должно быть одно место, так как фрукт генерируется только после того, как его съели. И если это так, то в точке останова посмотреть координаты змейки и фрукта.
      Возможно, в чем то другом проблема. Сложно предположить, из за чего так получается.

  • @Matissed
    @Matissed 3 ปีที่แล้ว

    То, что ты делаешь, это какой уровень считается? Можно самому дойди до того?

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 ปีที่แล้ว +1

      Это простая реализация (можно сделать куда замудренее и интереснее)
      Конечно можно самому до этого дойти, дело желания, времени и практики
      Удачи Вам🍀

  • @ДарханЖанбуршин
    @ДарханЖанбуршин 3 ปีที่แล้ว

    ждем новых видео ! кто знает что меня ждет в 4 курсеXD

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 ปีที่แล้ว +1

      Скоро будут новые и полезные видео 💪

  • @octanedaredevil1563
    @octanedaredevil1563 3 ปีที่แล้ว

    Кхем, может я чего-то не пойму, но я писал такой же код а при компиляции в игровом поле только змейка, которая стоит на месте... пробовал менять скорость, но она всё равно стоит(фрукта вообще нет)

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  3 ปีที่แล้ว

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

    • @bogdanz5810
      @bogdanz5810 2 ปีที่แล้ว

      @@FPS.FirePlanetStudio в гитхвб репозитории пробелмы с кодировкой, столкнулся с такой же пробелемой что и коментатор выше, думал на гитхаб зайду и найду ответ на вопрос, но не помогло

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  2 ปีที่แล้ว

      @@bogdanz5810, а в таймере стоит вызов функции по обновлению состояния игры?

    • @bogdanz5810
      @bogdanz5810 2 ปีที่แล้ว

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

    • @FPS.FirePlanetStudio
      @FPS.FirePlanetStudio  2 ปีที่แล้ว

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