• Python游戏《外星人入侵》来了~


      在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。

      游戏截图:

      

        

    alien_invasion.py 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    import sys
    import pygame
    from settings import Settings
    from ship import Ship
    import game_functions as gf
    from pygame.sprite import Group
    from alien import Alien
    from scoreboard import Scoreboard
    from game_stats import GameStats
    from button import Button

    def run_game():
        
    # 初始化游戏并创建一个屏幕对象
        pygame.init()
        
    # screen = pygame.display.set_mode((1200, 800))
        ai_settings = Settings()
        screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
        pygame.display.set_caption(
    "Alien Invasion")
        
    # 新建Play按钮
        play_button = Button(ai_settings, screen, "Play")
        
    # 创建一个用于存储游戏统计信息的实例,并创建记分牌
        stats = GameStats(ai_settings)
        sb = Scoreboard(ai_settings, screen, stats)
        
    # 创建一艘飞船
        ship = Ship(ai_settings, screen)
        
    # 创建一个用于存储子弹和外星人的编组
        bullets = Group()
        aliens = Group()
        
    # 创建外星人群
        gf.create_fleet(ai_settings, screen, ship, aliens)

        
    # 开始游戏的主循环
        while True:
            
    # 监视键盘和鼠标事件
            gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets)
            
    if stats.game_active:
                
    # 移动飞船
                gf.update_ship(ship)
                
    # 更新子弹
                gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets)
                
    # 更新外星人
                gf.update_aliens(ai_settings, stats, screen, sb, ship, aliens, bullets)
            
    # 更新屏幕
            gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button)


      参考下载:地址

  • 相关阅读:
    Hdu2222——Keywords Search(AC自动机模板题)
    20180804的Test
    Poj3764---The xor-longest Path
    Bzoj4567---背单词
    Bzoj1590——Secret Message(Trie)
    Bzoj 1212----L语言(Trie)
    Poj1056---IMMEDIATE DECODABILITY(Trie)
    The Xor Largest Pair(Trie)
    Bzoj 4260——Codechef REBXOR(Trie)
    [接上一篇]spring boot启动成功之后,测试用例中需要使用的注入对象均为null
  • 原文地址:https://www.cnblogs.com/MakeView660/p/9559754.html
Copyright © 2020-2023  润新知