Пишем игру в стиле Contra на JavaScript \ PixiJS (часть 1)

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ก.ค. 2024
  • Всем привет! Начинаем серию роликов в которых сделаем небольшой учебный проект, клон игры Contra.
    Разберём как без игрового движка (но с фреймворком визуализации PixiJS) создать платформер в котором можно бегать, прыгать, стрелять, генерировать врагов и боссов и т.д.
    Ссылка на гитхаб: github.com/rablv/contra/tree/...
    0:00 Вступление
    0:57 Почему JavaScript
    1:25 Немного о редакторе VS Code
    1:56 Создаём проект
    2:50 Скачиваем PixiJS
    3:40 Создаём html-страничку
    4:40 Начинаем писать код
    12:08 Создаём героя и платформу
    17:48 Добавляем гравитацию
    23:19 Подробно о пересечении прямоугольников
    28:15 Столкновения по вертикали
    38:00 Столкновения по горизонтали
    43:00 Улучшаем гравитацию
    46:44 Заканчиваем
    Часть 2: • Пишем игру в стиле Con...
    Ссылка на плейлист: • Пишем игру в стиле Con...

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

  • @user-tc8vw5to8f
    @user-tc8vw5to8f ปีที่แล้ว +5

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

  • @dr.lunyak2386
    @dr.lunyak2386 5 หลายเดือนก่อน +1

    спасибо что правку сделал для того что ыб подробнее объяснить про колизии

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

    Мужик, ты круче всех 👍

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

    Спасибо. После контры предлагаю запилить battletoads double dragon :)

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

    Вот это человек постарался!))

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

    Такие видео вдохновляют)

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

    Уникальный Контент! Иван Спасибо!

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

      Готовлю новый проект, не пропустите 😉

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

    Ждём :)

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

    👍👍👍 продолжай друг

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

    супер!

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

    Мне, как школьнику, довольно интересно, про js практически ничего не знаю, думаю хватит терпения все просмотреть)

    • @user-fd2fp1ez6k
      @user-fd2fp1ez6k 8 หลายเดือนก่อน +1

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

  • @II-is4ft
    @II-is4ft ปีที่แล้ว +1

    Спасибо

  • @hannibal9668
    @hannibal9668 10 หลายเดือนก่อน +1

    У этого канала преступно мало подписчиков, срочно исправляем

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

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

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

      Да, наверное надо бы выложить)

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

    20:40 - первая ошибка, гравитация это движок, его надо было изначально программировать как отдельный класс, и монтировать методы этого класса в объекты которые используют гравитацию. Как пример: this.gravity = new Gravity(this), и потом проверяешь если у любого из объектов есть gravity то сначало применяем gravity.
    31:00 коллизии (столкновения) это так-же engine, по факту так-же монтируются в объекты, у которых они есть..

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

      Ну вот видео досмотрел, ну что я могу сказать. Из важных моментов, грузи весь объект map то-есть массив всех всех объектов карты сразу. У них просто может быть некое свойство outofscene которое говорит что рисовать их не нужно, что особо важно, создай им всем заранее eventloop то-есть что-бы они могли реагировать на что либо происходящее например объект игрок может реагировать на нажатие кнопок это тоже по сути свой объект у которого можно прочитать значение нажатой кнопки или то что игрок тыкнул в тачскрин. Сейчас получается что ты читаешь кнопку WSAD, а будешь портировать на телефон, будет много боли и слез... А ты будешь портировать на телефон - потому что 80% игроков именно мобильные, я смотрю это видео с телефона. Я бы советовал ознакомится с движком пиксия на реализацию уже готовых решений, возможно на гитхабе уже реализовали все нужные тебе движки. Я очень давно писал Gladiators 3d, там больше половины проекта скаченные нечто из которого мы использовали 10-20% функционала, когда завалились игроки, тогда выпиливали ненужное и оптимизировали нужное. А еще помни что ты пишешь на JS. За что Я - старый пень полюбил этот язык - это за то что все все все объекты мутабельные и даже после конструктора, ты можешь менять все его свойства целиком. А еще за бесконечные цепочки middleware и hooks. Даже если функция move у игрока не доступна или глупо работает, ты всегда можешь её отпатчить - что конечно и костыль, но блин рождает куча полезных функций, например замутить 1 отдельный уровень с двойной гравитацией, или с отрицательной гравитацией - да без проблем, как 2 пальца об асфальт. 😂😂😂
      Вообщем будь креативным! Буду ждать видео с продолжением проекта!

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

      @@eugenex8892 спасибо за отзыв)

  • @jlewiykegin2419
    @jlewiykegin2419 24 วันที่ผ่านมา +1

    подтягивайте версию PIXI из туториала, 7.2.0. от греха подальше

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

    spasibo, a mojno sdelat 3d igr na js

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

      не, планов на 3d нет