<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                到目前為止,只有player sprite可以移動。接下來我們讓游戲里的所有塊都可以移動,有了上面的基礎,讓所有角色一起移動也非常方便。 首先,我們向Block類里增加一個新的update方法。當block_list被的*update*被調用時,block的*update*方法會自動被調用。 將下面的代碼加到Block類里: ``` def update(self): """ Called each frame. """ # Move block down one pixel self.rect.y += 1 ``` 在游戲的主循環中增加如下代碼: ``` # Call the update() method for all blocks in the block_list block_list.update() ``` The code isn't perfect because the blocks fall off the screen and do not reappear. This code will improve the update function so that the blocks will reappear up top. 這個代碼還有一個小問題,block最終會移出screen并不再出現了。我們改一下update方法,讓block移出屏幕后再次重新定位到屏幕上。 ``` def update(self): # Move the block down one pixel self.rect.y += 1 if self.rect.y > screen_height: self.rect.y = random.randrange(-100, -10) self.rect.x = random.randrange(0, screen_width) ``` ## 優化游戲 到目前為止,pygame版本的吃豆子就完成了。我們可以對這個游戲做一些改動,讓它更好玩。 ### 發射子彈 ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181018200738.png) 喜歡玩射擊游戲?我們可以將這個代碼做稍微的改動,增加一個bullets角色來代表子彈。完整的代碼如下:ProgramArcadeGames.com/python_examples/f.php?file=bullets.py ### 增加阻礙 ![](https://adatech-1256165843.cos.ap-chengdu.myqcloud.com/20181018200757.png) 為了增加游戲的趣味性,我們給游戲增加點障礙物。讓player不能穿過墻面,參照代碼:ProgramArcadeGames.com/python_examples/f.php?file=move_with_walls_example.py 總結起來,開發一個pygame游戲的框架如下: ``` import pygame import random WIDTH = 360 HEIGHT = 480 FPS = 30 # 定義顏色常量 BLACK = (0, 0, 0) # 1. 初始化游戲 pygame.init() pygame.mixer.init() ## For sound screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("設計游戲") clock = pygame.time.Clock() # 2.游戲里的所有角色 all_sprites = pygame.sprite.Group() # 3.游戲主循環 running = True while running: # 4.設置游戲幀率 clock.tick(FPS) # 5. 處理用戶輸入 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 6. 更新所有角色 all_sprites.update() # 7. 渲染游戲背景 screen.fill(BLACK) # 8. 渲染所有角色 all_sprites.draw(screen) ## 9. 更新游戲畫面 pygame.display.flip() # 退出游戲 pygame.quit() ``` 整個游戲開發過程如下: 1. 初始化pygame 2. 添加游戲里的sprite 3. 定義游戲主循環 4. 設置游戲幀率 5. 處理用戶輸入 6. 更新所有角色狀態 7. 重新渲染游戲窗口背景 8. 渲染所有角色 9. 更新游戲畫面 10. 退出游戲 掌握了這個框架,我們就可以完成各種各樣的游戲了。 理解了pygame的核心sprite模塊,我們就可以自己的游戲了。下節課,我們就來一起完成一個酷酷的射擊游戲。
                  <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>

                              哎呀哎呀视频在线观看