Что такое спрайты и как с ними работать | Pygame #9

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ม.ค. 2025

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

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

    Наконец то нашел нормального учителя! Спасибо, за подробнее объяснение

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

    Какой раз пересматриваю это видео, все равно до конца не вкуриваю всю суть спрайтов. Объясняешь хорошо!

  • @ЕкатеринаСамсонова-ъ9р
    @ЕкатеринаСамсонова-ъ9р ปีที่แล้ว +2

    Кажется, мне стало понятно, как анимировать падающие символы в матрице

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

    Просто огромное человеческое спасибо!!!1!!

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

    С каждым уроком (хотя есть и исключения) кол-во просмотров и лайков падает (кроме видео со спрайтами и изображениями, но их видимо смотрели не по плейлисту, а натыкались на них по конкретному запросу в поиске). Мне кажется люди просто сдаются, перестают дальше смотреть и вникать. Может быть все хотят создать какую-то свою игру, и полные энтузиазма, воодушевления и уверенности в собственных силах, идут смотреть видео. Но сталкиваясь со сложностями, они отступают и забивают.
    я 3 раза начинал делать игру по гайду одного автора, и каждый раз натыкался на одну и ту же ошибку. Бросал и переделывал сначала, пока не понял, что косяк не у меня, а у автора видео (я не про этого автора), Потом наткнулся в книге на точно такой же урок, который автор видел слизал подчистую, даже порядок рефакторинга кода =)
    И по книге получилось, а того автора я больше не смотрю.
    Но всё равно остаётся много пробелов, поэтому нужно смотреть всё по теме, чтобы собрать картинку по крупицам в общее понимание. Этот автор очень хорошо объясняет. Конечно, тоже есть какие-то моменты, которые мне - тупице - нужно было разжевать, чтобы я понял, а почему вот именно так, а почему не вот так, но всё равно эти уроки лучшие из тех, что я видел, потому что есть углубление в тему, а не поверхностное проскальзывание, как например когда вышеупомянутый автор, сплагиативший подчистую урок с кораблём из книги (и не упоминавший откуда он черпал своё "вдохновение), просто говорит: делайте это так и объясняет это отрывками из книги. И в итоге ни черта не понятно. Потому что сам плагиатщик не понял что происходит и тупо повторил какую-то строчку.
    Автор же данного канала понимает, что делает и как что работает, и доносит это до зрителей. Спасибо
    Хотя, конечно, иногда удивляет, почему автор пишут конструкцию, типа: screen_width // 2, для позиционирования элементов, хотя можно было сделать так:
    screen_rect = screen.get_rect()
    rect.centerx = screen_rect.centerx
    и разместить объект по цетру координаты х, относительно центра самого объекта
    Или разместить объект по центру экрана:
    screen_rect = screen.get_rect()
    rect.center = screen_rect.center
    но это мелочи. Может быть автор учил пайгейм старой версии, когда этих атрибутов у rect ещё не было

  • @ВикторЧеботарь-з2в
    @ВикторЧеботарь-з2в ปีที่แล้ว +1

    Спасибо за занятие)

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

    А зачем вы помещали всю отрисовку в группы, а не сделали просто функцию через def?

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

    Здравствуйте, спасибо вам за ваш труд! Пишу строго за вами, исключение - это размешение картинок(находяться в другой подпапке).
    Столкнулся с такой проблемой на 3:26. (решил)
    Программа не дает создать экземпляр класса и ругаеться на add. якобы ей передаеться инт а не итерабл. Pygame 2.0.2 Python 3.9.
    Ума не приложу, почему так.
    self.add(*group)
    TypeError: pygame.sprite.Sprite.add() argument after * must be an iterable, not int
    update:
    произошла опечатка при инициализации =)
    __inti__ вместо __init__
    на реддите у кого то одно подчеркивание было, это и навело на мысль.
    Еще раз спасибо!!!

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

    Вопрос.
    Пытаюсь указать параметры картинок в методе инит:
    self.image = pygame.image.load(filename).convert()
    self.image.set_colorkey((0, 0, 0))
    self.image = pygame.transform.scale(self.image, (70, 70))
    Но ничего не меняется.
    Меняю параметры в главном окне, после создания ЭК, все работает
    для примера:
    ball2 = bl.Ball(W//2+150, speed+1, 'path')
    ball2.image = pygame.transform.scale(ball2.image, (70, 70))
    ball2.image.set_colorkey((0, 0, 0))
    Почему так?

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

    Как у Вас это получается!!!
    Лично мне это не особо нужно, но тем не менее смотрю от начала и до конца, а потом еще и сам все это повторяю, чтобы немного поиграться))) Очень интересно, просто и доходчиво объясняете.
    Вопрос немного не в тему вашего курса: А под Андройд или IOS на Pygame можно написать игру?

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

      Спасибо! Приходится понятно излагать, иначе студенты не поймут )) А по поводу андроида, да можно. Для этого есть библиотека kivy, но лично я с ней не знаком. Думаю, не сложно разобраться.

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

      ​@@selfedu_rusответьте пожалуйста

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

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

  • @Andrei-eh8ww
    @Andrei-eh8ww 3 ปีที่แล้ว +4

    Друг, вопрос на секунду.
    Будут уроки по Git?

  • @almazvildanov9990
    @almazvildanov9990 9 หลายเดือนก่อน +1

    Как сделать обработчик нажатия спрайта?

  • @МастерТихон
    @МастерТихон 4 ปีที่แล้ว +5

    Здравствуйте, уважаемый автор! Спасибо Вам за Ваш Труд! Вы астрофизикой не увлекаетесь?

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

      Спасибо! Вот чем, чем, но этим не увлекаюсь. Точнее профессионально, только на уровне популярных передач ))

  • @АндрейАндрющенко-в4н
    @АндрейАндрющенко-в4н 3 ปีที่แล้ว +2

    Спасибо за хороший материал!
    Подскажите пожалуйста про генерацию событий типа USEREVENT.
    Я стал модифицировать программу из этого курса и мне захотелось создать еще один таймер такой же по смыслу как и тот, что используется для генерации шариков. Если я пишу тот же текст второй раз pygame.time.set_timer(pygame.USEREVENT, 600), то программа, естественно, просто переопределяет первый счетчик, и шары начинают сыпаться чаще. Как мне создать еще один уникальный таймер? Второй вечер копаюсь в документации pygame, никак не могу понять про эти EVENTы.

    • @АндрейАндрющенко-в4н
      @АндрейАндрющенко-в4н 3 ปีที่แล้ว +3

      Вот, только написал вопрос, и почти сразу разобрался. событие pygame.USEREVENT возвращает числовой код 32847. И для создания второго уникального события для нового таймера нужно просто написать: pygame.time.set_timer(pygame.USEREVENT + 1, 600), и его код станет 32848. Можно таким образом насоздавать событий USEREVENT с кодами от 32847 до 65535.

  • @ЛюбомирЮкальчук-с1г
    @ЛюбомирЮкальчук-с1г 3 ปีที่แล้ว +1

    спасибо

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

    круто!!! спасибо!!!!+++++++++

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

    Добрый день. Подскажите, существуют ли стандартные функции для вращения спрайта в плоскости surface ?

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

      Модуль pygame.transform (см. предыдущее занятие)

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

    Здравствуйте. А что с сайтом он не открывается ?

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

      Уже все работает - были проблемы у хостера

  • @КалинаГаврикова-б2о
    @КалинаГаврикова-б2о 2 ปีที่แล้ว

    Что делает метод path и как обойтись без него

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

    что делать если создается очень много м,чей сразу

  • @ceo-s
    @ceo-s ปีที่แล้ว +1

    remove(balls) =)

  • @Asselya1702
    @Asselya1702 9 หลายเดือนก่อน

    Это в 1 классе проходят ученики???

  • @КалинаГаврикова-б2о
    @КалинаГаврикова-б2о 2 ปีที่แล้ว +1

    На самом деле автор даёт сложный код, новичку будет очень сложно понять. Его можно упростить, причем очень сильно, в классе уменьшить количество переменных, я так вообще выполнил третье задание не используя в классе болл никаких переменных кроме self

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

    В целом - всё отлично, НО - дико бесит ваш копи-паст!!!
    Пишите код! Не копипастите!

  • @evgen.dvorkin89
    @evgen.dvorkin89 3 ปีที่แล้ว

    Traceback (most recent call last):
    File "C:\pythonProject1\PyGame9.py", line 32, in
    createBall(balls)
    File "C:\pythonProject1\PyGame9.py", line 20, in createBall
    indx = randint(0, len(balls_surf) - 1)
    NameError: name 'randint' is not defined
    Здравствуйте. Сделал все как в видео, даже картинки на всякий случай так же назвал, а то совсем запутался) до этого момента быстро шел а тут прям ни в какую, застрял

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

      Может просто забыл "import random" ?

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

      from random import randint

  • @ванькаШилин
    @ванькаШилин 2 ปีที่แล้ว +1

    у меня пишет что я написал 4 оргумента хоти их 3
    Traceback (most recent call last):
    File "D:\first game ball\main.py", line 18, in
    b1=Ball(500, speed, "D:/ball_bear.png")
    TypeError: __init__() takes 3 positional arguments but 4 were given

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

      наобоpот ты написал 3 а надо 4