Как сделать игру МАРИО на Python - Часть 2 (Игрок, Перемещение)

Поделиться
HTML-код
  • Опубликовано: 26 ноя 2024
  • Как сделать игру Mario? Не так просто, но мы постараемся
    Базовый курс Python: boosty.to/sima...
    Код и все файлы игры: boosty.to/sima...
    В этой серии видеороликов я покажу как сделать интересную игру, используя всего лишь одну механику из игры Марио. Оригинальная игра состоит из огромного количества механик, которые ради интереса можно изучить и внедрить в свои проекты
    Как добавить полноэкранный режим : • Как сделать игру на ве...
    Discord: / discord
    ВК: simagames
    #simagames #pygame #game #mario #python #программирование #gamedev #gamedevelopment

Комментарии • 37

  • @serafimr.3648
    @serafimr.3648 Год назад +1

    Спасибо, понятно и интересно

  • @симагеймс
    @симагеймс  2 года назад

    Не забудь отписать свое мнение в комменты =)

  • @R6847Gu
    @R6847Gu 2 года назад

    привет! классный ролик

  • @анимацииназаказ-б2ъ
    @анимацииназаказ-б2ъ 3 месяца назад

    Помогите прыжок не работает с гравитацией игрался ничего

  • @nerdError0XF
    @nerdError0XF 2 года назад

    Когда летсплеи по маинкрафту?) Ждём
    А ролик как всегда топ

    • @симагеймс
      @симагеймс  2 года назад

      Сначала надо Майн написать))

    • @kolondich
      @kolondich 2 года назад

      @@симагеймс а чтобы написать майн, еще пару лет учить Java)

    • @benger7178
      @benger7178 2 года назад

      @@kolondich А чтобы пару лет учить Java, надо сначала родиться)

    • @kolondich
      @kolondich 2 года назад

      @@benger7178 а чтобы родиться нужно подождать 13 миллиардов лет (возраст вселенной )

    • @симагеймс
      @симагеймс  2 года назад

      @@kolondich ну я пару лет учил Java, там не так сложно))

  • @abdi5623
    @abdi5623 Год назад +2

    он никак не прыгает можешь помочь

    • @robotrobot5805
      @robotrobot5805 Год назад +4

      строка 43 self.gravity = 0.5 заміни на self.gravity = 0.4

    • @kotik7493
      @kotik7493 5 месяцев назад

      @@robotrobot5805 спасибо пупсик

    • @WardenCab-lh1ri
      @WardenCab-lh1ri 28 дней назад

      @@robotrobot5805 Дай бог тебе здоровья

  • @kaneki8698
    @kaneki8698 Год назад

    Как добавить картинку

  • @svenn6377
    @svenn6377 Год назад +1

    Не прыгает ни в какую... Ошибку не выдаёт, влево - вправо ходит

    • @симагеймс
      @симагеймс  Год назад +1

      Попробуй с гравитацией поиграть, больше-меньше её сделать

    • @svenn6377
      @svenn6377 Год назад +1

      @@симагеймс Спасибо! на одну десятую меньше - работает О_о. Код 1 в 1 как ваш. Почему так вышло, от чего зависит?

    • @симагеймс
      @симагеймс  Год назад +1

      @@svenn6377 сложно сказать. У меня с этим не было проблем, но пара человек уже написала) Возможно что-то с округлением чисел

    • @svenn6377
      @svenn6377 Год назад +1

      @@симагеймс спасибо за ответы.

  • @noterdam6325
    @noterdam6325 2 года назад

    TypeError: Entity.update() missing 1 required positional argument: 'self'
    Помогите пожалуйста, я на 4:41

    • @симагеймс
      @симагеймс  2 года назад

      Привет, ты скорее всего в игроке забыл в функции update параметр self

  • @EgorGromovikUa
    @EgorGromovikUa 2 года назад

    вот код

    • @EgorGromovikUa
      @EgorGromovikUa 2 года назад

      ground_image = pygame.image.load('ground.png')
      ground_image = pygame.transform.scale(ground_image, (804, 60))
      GROUND_H = ground_image.get_height()
      enemy_image = pygame.image.load('goomba.png')
      enemy_image = pygame.transform.scale(ground_image, (80, 80))
      enemy_dead_image = pygame.image.load('goomba_dead.png')
      enemy_dead_image = pygame.transform.scale(ground_image, (80, 80))
      player_image = pygame.image.load('mario.png')
      player_image = pygame.transform.scale(player_image, (60, 80))
      class Entity:
      def __init__(self, image):
      self.image = image
      self.rect = self.image.get_rect()
      self.x_speed = 0
      self.y_speed = 0
      self.speed = 5
      self.is_out = False
      self.is_dead = False
      self.jump_speed = -12
      self.gravity = 0.5
      self.is_grounded = False
      def handle_input(self):
      pass
      def kill(self, dead_image):
      self.image = dead_image
      self.is_dead = True
      self.x_speed = -self.x_speed
      self.y_speed = self.jump_speed
      def update(self):
      self.rect.x += self.x_speed
      self.y_speed += self.gravity
      self.rect.y += self.y_speed
      if self.is_dead:
      if self.rect.top > H - GROUND_H:
      self.is_out = True
      else:
      self.handle_input()
      if self.rect.bottom > H - GROUND_H:
      self.is_grounded = True
      self.y_speed = 0
      self.rect.bottom = H - GROUND_H
      def draw(self, surface):
      surface.blit(self.image, self.rect)
      class Player(Entity):
      def __init__(self):
      super().__init__(player_image)
      def handle_input(self):
      self.x_speed = 0
      keys = pygame.key.get_pressed()
      if keys[pygame.K_a]:
      self.x_speed = -self.speed
      elif keys[pygame.K_d]:
      self.x_speed = self.speed
      if self.is_grounded and keys[pygame.K_SPACE]:
      self.is_grounded = False
      self.jump()
      def respawn(self):
      self.is_out = False
      self.is_dead = False
      self.rect.midbottom = (W // 2, H - GROUND_H)
      def jump(self):
      self.y_speed = self.jump.speed

      player = Player()
      score = 0

  • @MANDRAGORA_
    @MANDRAGORA_ 2 года назад +1

    Крутяк 🥳 Ты снимаешь 😍 прям как Я 🧐 можешь оценить 😇

  • @EgorGromovikUa
    @EgorGromovikUa 2 года назад

    снова привет марио бегает но проблемы с прыжком выкидывает вот такую ошибку
    Traceback (most recent call last):
    File "D:\mario\mario.py", line 112, in
    player.update()
    File "D:\mario\mario.py", line 64, in update
    self.handle_input()
    File "D:\mario\mario.py", line 89, in handle_input
    self.jump()
    File "D:\mario\mario.py", line 97, in jump
    self.y_speed = self.jump.speed
    AttributeError: 'function' object has no attribute 'speed'

    • @wiqres
      @wiqres 2 года назад

      попробуйте написать "self.jump_speed"

    • @симагеймс
      @симагеймс  2 года назад +1

      У тебя после speed точка стоит, а это функция в классе Player. Думает, что ты у функции переменную хочешь найти

    • @EgorGromovikUa
      @EgorGromovikUa 2 года назад

      Заработало