<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 定義子彈類 完成對飛機的控制后,我們來增加子彈類。在src目錄下新增bullet.py文件,定義Bullet類,代碼如下: ``` import pygame class Bullet(pygame.sprite.Sprite): def __init__(self): super(Bullet, self).__init__() self.image = pygame.image.load('../assets/missile.png') self.rect = self.image.get_rect() self.speed = 1 def update(self): self.rect.y -= self.speed ``` 修改我們的Main.py 1)引入Bullet:`from src.bullet import Bullet` 2)定義Bullet角色: ``` bullet_sprites = pygame.sprite.Group() bullet = Bullet() bullet_sprites.add(bullet) all_sprites.add(bullet) ``` 這里需要注意:bullet同時加到了 bullet_sprites和all_sprites 此時游戲效果如下: ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181020232547.png) ## 發射子彈 接下來,我們來用空格鍵來控制子彈的發射。首先,我們修改Bullet類,在子彈被創建的時候需要指定子彈的位置: ``` def __init__(self, position): super(Bullet, self).__init__() self.image = pygame.image.load('../assets/missile.png') self.rect = self.image.get_rect() self.speed = 1 self.rect.x = position[0] self.rect.y = position[1] ``` 接著,我們來修改Main類。子彈需要在空格鍵被按下時初始化,我們把原來子彈初始化的代碼,移動到空格被按下的位置: ``` if key_pressed[K_SPACE]: bullet = Bullet((plane.rect.x, plane.rect.y)) bullet_sprites.add(bullet) all_sprites.add(bullet) ``` 此時游戲效果如下: ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181020232637.png) so far so good,仔細觀察游戲,現在子彈發射的好快。我們需要降低子彈發射的速度。 首先,我們在bullet增加兩個類屬性和一個類方法: ``` # 注意,這里定義的是類屬性 # 子彈發射間隔,毫秒單位 shoot_delay = 250 # 上次子彈發射時間 last_shoot_time = 0 # 類方法,增加子彈,這里會根據上次發射時間來決定是否能構建新子彈 @classmethod def new_bullet(cls, position): if pygame.time.get_ticks() - cls.last_shoot_time > cls.shoot_delay: cls.last_shoot_time = pygame.time.get_ticks() return Bullet(position) ``` 然后,在main.py里修改空格被按下時的代碼: ``` if key_pressed[K_SPACE]: bullet = Bullet.new_bullet((plane.rect.x, plane.rect.y)) if bullet: bullet_sprites.add(bullet) all_sprites.add(bullet) ``` 此時,游戲就合理多了: ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181020232658.png) ## 定義敵艦 子彈定義好后,我們來增加敵艦。在src目錄里新增enemy.py文件,代碼如下: ``` import pygame class Enemy(pygame.sprite.Sprite): def __init__(self, position): super(Enemy, self).__init__() self.image = pygame.image.load('../assets/enemy1.png') self.rect = self.image.get_rect() self.rect.x = position[0] self.rect.y = position[1] self.speed = 1 def update(self): self.rect.y += self.speed ``` 在main.py中通過`from src.enemy import Enemy`引入Enemy,初始化6個敵艦: ``` enemy_sprites = pygame.sprite.Group() for i in range(6): enemy = Enemy((random.randrange(0, WIDTH), random.randrange(0, 50))) enemy_sprites.add(enemy) all_sprites.add(enemy) ``` 此時,游戲效果如下: ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181020232723.png) 下節課,我們來完成擊落敵艦。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看