Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Как создать нужный арканоид на питоне?

  1. Как создать нужный арканоид на питоне?

    Ребят, подскажите, кто делал арканоид на питоне? Хочу замутить игрульку, но не знаю с чего стартануть. Посоветуйте с какими библиотеками или фреймворками лучше работать, и если есть какой-то пример кода - вообще классно. Буду признателен за любые советы, касающиеся реализации логики игры, физики и графики. Заранее спасибо!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Привет! Для арканоида на питоне рекомендую воспользоваться Pygame. Это замечательная библиотека для 2D-графики и игр. Вот пример простейшего арканоида на Pygame:

    Программный код:
    import pygame
    import random
      
    # Инициализация Pygame
    pygame.init()
      
    # Размеры окна
    widthheight 800600
    screen 
    pygame.display.set_mode((widthheight))
      
    # Цвета
    black = (000)
    white = (255255255)
      
    # Класс игрока
    class Player(pygame.sprite.Sprite):
        
    def __init__(self):
            
    super().__init__()
            
    self.image pygame.Surface((10010))
            
    self.image.fill(white)
            
    self.rect self.image.get_rect()
            
    self.rect.width // 2 - 50
            
    self.rect.height 40
      
        def update
    (self):
            
    keys pygame.key.get_pressed()
            if 
    keys[pygame.K_LEFT]:
                
    self.rect.-= 5
            
    if keys[pygame.K_RIGHT]:
                
    self.rect.+= 5
      
    # Класс мяча
    class Ball(pygame.sprite.Sprite):
        
    def __init__(self):
            
    super().__init__()
            
    self.image pygame.Surface((1010))
            
    self.image.fill(white)
            
    self.rect self.image.get_rect()
            
    self.rect.width // 2
            
    self.rect.height // 2
            
    self.speed_x random.choice([-44])
            
    self.speed_y = -4
      
        def update
    (self):
            
    self.rect.+= self.speed_x
            self
    .rect.+= self.speed_y
            
    if self.rect.<= or self.rect.>= width 10:
                
    self.speed_x = -self.speed_x
            
    if self.rect.<= 0:
                
    self.speed_y = -self.speed_y
            
    if self.rect.>= height 10:
                
    self.kill()
      
    # Основной цикл
    player Player()
    ball Ball()
    all_sprites pygame.sprite.Group()
    all_sprites.add(player)
    all_sprites.add(ball)
      
    running True
    while running:
        for 
    event in pygame.event.get():
            if 
    event.type == pygame.QUIT:
                
    running False
      
        all_sprites
    .update()
        
    screen.fill(black)
        
    all_sprites.draw(screen)
        
    pygame.display.flip()
      
    pygame.quit() 
    Это базовая структура, с которой можно начать. Надеюсь, поможет!

  4. Цитата Сообщение от AlexValley
    Привет! Для арканоида на питоне рекомендую воспользоваться Pygame. Это замечательная библиотека для 2D-графики и игр. Вот пример простейшего арканоида на Pygame:

    Программный код:
    import pygame
    import random
      
    # Инициализация Pygame
    pygame.init()
      
    # Размеры окна
    widthheight 800600
    screen 
    pygame.display.set_mode((widthheight))
      
    # Цвета
    black = (000)
    white = (255255255)
      
    # Класс игрока
    class Player(pygame.sprite.Sprite):
        
    def __init__(self):
            
    super().__init__()
            
    self.image pygame.Surface((10010))
            
    self.image.fill(white)
            
    self.rect self.image.get_rect()
            
    self.rect.width // 2 - 50
            
    self.rect.height 40
      
        def update
    (self):
            
    keys pygame.key.get_pressed()
            if 
    keys[pygame.K_LEFT]:
                
    self.rect.-= 5
            
    if keys[pygame.K_RIGHT]:
                
    self.rect.+= 5
      
    # Класс мяча
    class Ball(pygame.sprite.Sprite):
        
    def __init__(self):
            
    super().__init__()
            
    self.image pygame.Surface((1010))
            
    self.image.fill(white)
            
    self.rect self.image.get_rect()
            
    self.rect.width // 2
            
    self.rect.height // 2
            
    self.speed_x random.choice([-44])
            
    self.speed_y = -4
      
        def update
    (self):
            
    self.rect.+= self.speed_x
            self
    .rect.+= self.speed_y
            
    if self.rect.<= or self.rect.>= width 10:
                
    self.speed_x = -self.speed_x
            
    if self.rect.<= 0:
                
    self.speed_y = -self.speed_y
            
    if self.rect.>= height 10:
                
    self.kill()
      
    # Основной цикл
    player Player()
    ball Ball()
    all_sprites pygame.sprite.Group()
    all_sprites.add(player)
    all_sprites.add(ball)
      
    running True
    while running:
        for 
    event in pygame.event.get():
            if 
    event.type == pygame.QUIT:
                
    running False
      
        all_sprites
    .update()
        
    screen.fill(black)
        
    all_sprites.draw(screen)
        
    pygame.display.flip()
      
    pygame.quit() 
    Это базовая структура, с которой можно начать. Надеюсь, поможет!
    Ооо, спасибо за пример! Как раз искал что-то похожее. Только вот как обработать столкновения мяча с платформой? Есть идеи?

  5. Да, Pygame топ вариант, как написали выше. Если еще дополнительно подучишься, то сможешь добавить разные уровни, бонусы и т.д. Тут главное не лениться и тестить свой код постоянно.

  6. Цитата Сообщение от Татьяна Андреевна
    Да, Pygame топ вариант, как написали выше. Если еще дополнительно подучишься, то сможешь добавить разные уровни, бонусы и т.д. Тут главное не лениться и тестить свой код постоянно.
    Верно, тестить надо много! Я начинал с Pygame - классная библиотека для новичков. Главное - не бояться экспериментов.

  7. Для новичков Pygame идеален. Если хочешь что-то пожёстче, можешь посмотреть в сторону Panda3D. Конечно, это уже для 3D, но опыт лишним не будет.

  8. Цитата Сообщение от Жасминовая
    Для новичков Pygame идеален. Если хочешь что-то пожёстче, можешь посмотреть в сторону Panda3D. Конечно, это уже для 3D, но опыт лишним не будет.
    Panda3D? Прикольно, не думал использовать его для арканоида. Но звучит как достойный челлендж!

  9. Я бы еще советовал сразу планировать структуру игры и делить логику на отдельные функции. Так будет проще дебажить потом.

  10. Цитата Сообщение от SunKnight
    Я бы еще советовал сразу планировать структуру игры и делить логику на отдельные функции. Так будет проще дебажить потом.
    Разделение логики - это прям мастхэв. Так и код чище и дебажить проще будет.

Страница 1 из 2 12 ПоследняяПоследняя