Основы Создания Игр на Питоне - Снегопад Анимация - pygame

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

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

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

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

    • @ADV-IT
      @ADV-IT  6 ปีที่แล้ว

      Спасибо!

  • @100к-э2у
    @100к-э2у 4 ปีที่แล้ว +3

    Ставлю Лайк до просмотра, автоматно!

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

    Спасибо за урок! Магия))

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

    привет, чтобы снежинки не дергались в разные стороны, а летели в разные стороны нужно вывести скорость x из метода move_snow() в init(self)
    примерно вот так:
    class Snow():
    def __init__(self, x, y):
    self.x = x
    self.y = y
    self.speed_y = random.randint(1, 3)
    self.speed_x = random.randint(-1, 1) / 2
    self.img_num = random.randint(1, 4)
    self.image_filename = "snow" + str(self.img_num) + ".png"
    self.image = pygame.image.load(self.image_filename).convert_alpha()
    self.image = pygame.transform.scale(self.image, (SNOW_SIZE, SNOW_SIZE))
    def move_snow(self):
    self.y = self.y + self.speed_y
    if self.y >= MAX_Y:
    self.y = (0 - SNOW_SIZE)
    self.x = self.x + self.speed_x
    if self.x >= MAX_X:
    self.x = (0 - SNOW_SIZE)
    elif self.x

    • @ADV-IT
      @ADV-IT  5 ปีที่แล้ว

      Snowfall v2
      Молодец, реально хорошие рекомендации

    • @kreved52
      @kreved52 5 ปีที่แล้ว

      @@ADV-IT Спасибо вам за уроки)

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

      @ADV-IT, спасибо, пока самый блатной урок)
      Kreved RUS52, также сразу использовал "random.randint(-1, 1)" и почитав комментарий убрал дерганье, спасибо, круто получилось.
      Еще в предпоследней строчке интересней получается, если self.x сравнивать с (0 - SNOW_SIZE), а не с нулем:
      self.x += self.speed_x
      if self.x > MAX_X:
      self.x = (0 - SNOW_SIZE)
      elif self.x < (0 - SNOW_SIZE):
      self.x = MAX_X

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

    Это просто класс, спасибо огромное

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

    Ошибки 1) in
    initilize_snow(MAX_SNOW, snowfall)
    2) in initilize_snow
    snowfall.append(Snow(xx, yy))
    3) не открываются то один то другой файлы изображений

  • @СергейДашкевич-х9к
    @СергейДашкевич-х9к 6 ปีที่แล้ว +2

    Очередной охрененно классный урок!

    • @ADV-IT
      @ADV-IT  6 ปีที่แล้ว +1

      Я афигенно рад что охрененно получилось!

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

    Видос как обычно на уровне! Респект! Скажи, а почему в pygame нет атрибута FULLSCREEN?

    • @ADV-IT
      @ADV-IT  7 ปีที่แล้ว

      Как нет! У меня же есть!
      screen = pygame.display.set_mode((MAX_X, MAX_Y), pygame.FULLSCREEN)

    • @СергейДашкевич-х9к
      @СергейДашкевич-х9к 6 ปีที่แล้ว

      у меня почему то не в 27 не 28 уроке с атрибутом .convert программа не запускалась,как только удалил снегопад пошел)

  • @nadin97
    @nadin97 4 ปีที่แล้ว

    Ты потрясный!

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

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

  • @ВладимирКазанцев-ц9т
    @ВладимирКазанцев-ц9т 4 ปีที่แล้ว

    Единственное не понял почему методы из класса Snow срабатывают для переменной i, вроде кода изучали классы применяли методы(функции) вместе с этим классом то есть должно применяться к примеру Snow.move_snow() , а почему работает i.move_snow() ??? Объясите , пожалуйста.

    • @ADV-IT
      @ADV-IT  4 ปีที่แล้ว +1

      i это теперь не переменная, а объект из класса snow
      Мы создали кучу таких объектов в цикле, учи циклы сначала.

    • @ВладимирКазанцев-ц9т
      @ВладимирКазанцев-ц9т 4 ปีที่แล้ว

      @@ADV-IT А все понял, у нас же получается массив классов Snow и естественно к каждому его экземпляру доступны егог методы. Спасибо!!! Я пошел на 29 урок.

  • @СофіяКривяк-с4д
    @СофіяКривяк-с4д 2 ปีที่แล้ว +1

    Як зробити таке саме, але без чорного фону?

  • @ИгорьНепша-л1ш
    @ИгорьНепша-л1ш 6 ปีที่แล้ว

    Здравстуйте,огромное спасибо за ваши уроки всё очень доступно и понятно.Есть два вопроса,во-первых,у меня программа как-то странно реагирует на события,то есть в коде как у вас при нажатии на клавишу у меня всё как бы останавливается(К примеру,если запустить программу и сразу нажать какую-то клавишу то окно просто останется в текущем положении,как-будто паузу поставили)и,во-вторых,у вас снежинки падают бесконечно сверху вниз,а у меня почему-то они один раз все упали вниз,а сверху опять не появляются и не падают.Код как у вас,может ли это быть из-за того что я работаю не в PyChar,а в стандартном Python IDLE?
    UPD:Со вторым вопросом разобрался)

    • @ADV-IT
      @ADV-IT  6 ปีที่แล้ว

      Насчет первого, проверь что у тебя код точно так же как и у меня, может где-то у тебя в цикле проблема.
      Тоесть пробелов к какой-то строчке, и эта строчка относится к циклу, а не должна.

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

    при копировании твоего кода, у меня такие же ошибки при запуске как и на моем коде, тоесть проблем ане в коде, хотя даже картинки названы как у тебя :
    Traceback (most recent call last):
    File "C:/pythonProject/pyNewgame/urok28 snowfall.py", line 63, in
    initialize_snow(MAX_SNOW, snowfall)
    File "C:/pythonProject/pyNewgame/urok28 snowfall.py", line 43, in initialize_snow
    snowfall.append(Snow(xx, yy))
    File "C:/pythonProject/pyNewgame/urok28 snowfall.py", line 17, in __init__
    self.image = pygame.image.load(self.image_filename).convert()
    pygame.error: Couldn't open snow4.png
    HELP ребят

    • @ADV-IT
      @ADV-IT  4 ปีที่แล้ว +2

      Убери пробел из названия твоего файла

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

      @@ADV-IT все разобрался, один файл в .jpg был, спасибо

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

      Таже ошибка, все файлы snow.png но пишем что не может найти файл. Можно ли как то заменить формирования файла абсолютным путем к картинкам?

  • @МаксимХрамцов-к8щ
    @МаксимХрамцов-к8щ 8 ปีที่แล้ว +3

    Отличный урок, спс. Ничего не длинный , интересно всякие игрухи писать , я пробовал странички на РНР вот это скукотища.

  • @aldya1532
    @aldya1532 7 ปีที่แล้ว

    Денис, подскажите пожалуйста, при запуске происходит задержка секунд на 20, только потом выходят снежинки. После выхода из режима просмотра в PyCharm вижу многократно повторяющееся сообщение: "libpng warning: iCCP: known incorrect sRGB profile", но после него все равно завершение идет с кодом 0. С чем это связано?

    • @ADV-IT
      @ADV-IT  7 ปีที่แล้ว +1

      Задержка может быть из-за больших по размеру картинок или слегка медленного компа. но если используешь мои картинки то они вообще-то маленькие и должно все быть быстро, попробуй уменьшить количество снежинок, если поможет значит поидее, но не уверен на 100% памяти побольше компу надо, ато видать комп все не в память, а на диск пишет, пока все запишет берет время.

    • @aldya1532
      @aldya1532 7 ปีที่แล้ว

      Заменил картинки и все заработало! Спасибо

    • @ADV-IT
      @ADV-IT  7 ปีที่แล้ว +1

      Ништяк!

  • @hng1727
    @hng1727 5 ปีที่แล้ว

    raceback (most recent call last):
    File "C:\Users\Ruman\PycharmProjects\FallSnow\snowfall.py", line 59, in
    initialize_snow(max_snow, snowfall)
    TypeError: 'tuple' object is not callable
    Чё делать?

    • @ADV-IT
      @ADV-IT  5 ปีที่แล้ว

      github.com/adv4000/Python-Lessons/blob/master/Lesson-28-SnowFall.py

  • @МаксимХрамцов-к8щ
    @МаксимХрамцов-к8щ 8 ปีที่แล้ว

    Какая то лампочка на Пайчарме всё время загорается, чо она значит? Маленькая такая то там, то сям.

    • @ADV-IT
      @ADV-IT  8 ปีที่แล้ว +1

      Фигня, это просто напоминание что вы не закончили строку, и то что уже написали не имеет полного значения.

  • @hiddenprofile9765
    @hiddenprofile9765 5 ปีที่แล้ว

    подскажите пожалуйста, а как добавить звук?

    • @ADV-IT
      @ADV-IT  5 ปีที่แล้ว +1

      Играть музыку:
      pygame.mixer.music.load('metallica.wav')
      pygame.mixer.music.play(-1)

    • @ADV-IT
      @ADV-IT  5 ปีที่แล้ว +1

      Звук:
      my_sound = pygame.mixer.Sound("kriki.wav")
      pygame.mixer.Sound.play(my_sound)

    • @hiddenprofile9765
      @hiddenprofile9765 5 ปีที่แล้ว

      @@ADV-IT спасибо большое

    • @КонстантинБондаренко-й4э
      @КонстантинБондаренко-й4э 4 ปีที่แล้ว

      @@ADV-IT Музыку не играет. В чем может быть проблема? Издает зацикленные звуки, но это не весь трек

  • @akbarkaratayev2002
    @akbarkaratayev2002 5 ปีที่แล้ว

    Что изменить в коде если у меня только 1 тип снежинок? И у меня дохера ошибок. Traceback (most recent call last): initialize_snow (MAX_SNOW, snowfall)
    snowfall.append (snow (xx, yy))
    self.image = pygame.rransform. scale (self.image, SNOW_SIZE, SNOW_SIZE)
    TypeEror: argument 2 must be 2-item sequence, not int
    libpng warning: iCCP: profile 'ProPhoto RGB': 0h: PCS illuminant is not D50
    Это значит программирование не для меня? 😂

    • @ADV-IT
      @ADV-IT  5 ปีที่แล้ว +1

      Скачать мой код и всё. github.com/adv4000/Python-Lessons

    • @АндрейФедин-к8э
      @АндрейФедин-к8э 5 ปีที่แล้ว

      @@ADV-IT тупой вопрос, но как добавить эти картинки в pycharm?

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

    Traceback (most recent call last):
    File "D:/pygame/lesson-28.snowfall.py", line 63, in
    initialize_snow(max_snow, snow_fall)
    File "D:/pygame/lesson-28.snowfall.py", line 45, in initialize_snow
    snow_fall.append(Snow(xx, yy))
    NameError: name 'Snow' is not defined

  • @АндрейФедин-к8э
    @АндрейФедин-к8э 5 ปีที่แล้ว

    как добавить картинки в pycharm?

    • @ADV-IT
      @ADV-IT  5 ปีที่แล้ว

      А ты не довавялешь, ты просто копируешь эти картинки куда-нибудь на своем диске, и в своем пайтон файле указываешь откуда их открыть

  • @svtroshin
    @svtroshin 7 ปีที่แล้ว

    чет не получилось. код один в один(( пишет libpng warning: iCCP: known incorrect sRGB profile

    • @ADV-IT
      @ADV-IT  7 ปีที่แล้ว +1

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

    • @ADV-IT
      @ADV-IT  7 ปีที่แล้ว +1

      Знаю такую ощибку, просто поменяй картинки на какие-нибудь другие

    • @ADV-IT
      @ADV-IT  7 ปีที่แล้ว +1

      только в PNG формате используй новые

    • @ADV-IT
      @ADV-IT  7 ปีที่แล้ว +1

      astahov.net/python/lesson26-28.zip

    • @ADV-IT
      @ADV-IT  7 ปีที่แล้ว +1

      astahov.net/python/lesson26-28.zip

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

    сначала все работало, потом высыпало ошибками:
    File "/home/a1500/gitrepo/python/PythonScripts/SnowFall_PyGame.py", line 56, in
    init_snow(MAX_SNOW, snowfall)
    File "/home/a1500/gitrepo/python/PythonScripts/SnowFall_PyGame.py", line 43, in init_snow
    snowfall.append(Snow(xx, yy))
    File "/home/a1500/gitrepo/python/PythonScripts/SnowFall_PyGame.py", line 18, in __init__
    self.image = pygame.image.load(self.image_filename).convert_alpha()
    FileNotFoundError: No such file or directory.

    • @ADV-IT
      @ADV-IT  3 ปีที่แล้ว

      Раз сначала работало, значит подумай что ты сделал после того как работало :)

    • @ADV-IT
      @ADV-IT  3 ปีที่แล้ว

      Помоему не находит файл с картинкой

  • @mdma7272
    @mdma7272 4 ปีที่แล้ว

    24:58

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

    "Эту же программу можно запустить на Линуксе и она заработает" - изначально писал ее на линуксе, с относительными путями к картинкам не заработала, только абсолютные нужно было прописать

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

      У меня на убунте робит

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

      Подскажите, пожалуйстка, как вынлядит код с абсолютными путями?Спасибо