<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          電子游戲的核心原理

          共 1397字,需瀏覽 3分鐘

           ·

          2022-06-28 12:31

          零基礎python入門教程:python666.cn


          大家好,歡迎來到 Crossin的編程教室 !


          你小時候有沒有玩過這樣一種玩具:一塊硬紙,一面畫著一只鳥,一面畫著一個籠子。硬紙下粘上一根細棒。用手來回轉(zhuǎn)動細棒,讓硬紙的兩面快速交替出現(xiàn),就會看見鳥被關在了籠子里。



          這種現(xiàn)象被稱為視覺暫留,又稱余暉效應。人眼的性質(zhì)使得光信號在進入之后,會保持一小段時間,這段時間大約是0.1~0.4秒。電影、動畫便是利用這種現(xiàn)象得以實現(xiàn),把一幅幅靜態(tài)畫面快速連續(xù)播放,形成看上去連續(xù)的活動畫面。游戲也不例外


          來看一段用 Python 里的知名游戲庫 pygame(需安裝)寫的一個“空游戲”代碼:



          這段代碼雖然只顯示了一張背景圖片,完全沒有任何游戲功能,但這已經(jīng)是一個最基本的游戲代碼框架了。


          注意代碼中一個 while True 的循環(huán),注釋為“游戲主循環(huán)”。這就是游戲的主體部分。每次循環(huán)都相當于是一張靜態(tài)的畫面,程序一直運行,只需要去修改這張畫面,就有了動態(tài)的效果。

          與動畫不同,游戲中不僅要把一幅幅畫面播放出來,還需要處理玩家的操作與游戲中內(nèi)容的交互。所以在這個 while 循環(huán)中,還要去接收玩家的輸入,以及處理游戲中的各種邏輯判斷、運動、碰撞等等。


          在以上代碼的主循環(huán)里,做了對退出事件的響應:

          for event in pygame.event.get():    if event.type == pygame.QUIT:        #接收到退出事件后退出程序        pygame.quit()        exit()


          然后把圖像繪制到窗口中:
          screen.blit(background, (0,0))


          最后,把整個窗口畫面更新:

          pygame.display.update()

          如果你看過“黏土動畫”,那么就可以把整個游戲過程想象成拍攝黏土動畫的過程:

          • 每一次,screen.blit() 相當于去把人偶、布景移動一點點位置

          • pygame.display.update() 則是按下快門拍下一幀新的畫面

          • if event.type == pygame.QUIT: 就是在判斷,導演是不是喊停收工了

          這一切都由計算機在很短的時間內(nèi)處理,以至于玩家感覺是連貫的。

          盡管這是非常簡單的游戲邏輯,但在核心原理上,絕大多數(shù)的游戲都是相通的。即便是酷炫的3D游戲或者大型網(wǎng)游,它們同樣是通過一個游戲主循環(huán),在循環(huán)中更新各種游戲邏輯和顯示效果來運作的。


          有些大型3D游戲需要在一次循環(huán)內(nèi)做很多事情,需要進行復雜的物理運算、計算光線的照射效果、處理大量電腦角色的智能、網(wǎng)絡信息通訊等。在配置不高的電腦上,這些計算花費的時間就多,游戲刷新畫面的頻率就變慢了。這也就是我們常聽說“一個游戲的幀率低”的原因,這種時候你就會感到游戲不流暢。


          以上就是對于電子游戲核心原理的簡單介紹。如果你是個對游戲開發(fā)感興趣的新手,可以看看我之前寫過的 pygame 系列教程:


          Pygame 入門 - 仿微信打飛機游戲


          雖然不像現(xiàn)在流行的游戲引擎那么“傻瓜化”操作,但是通過代碼實現(xiàn)游戲可以讓你對游戲的底層邏輯有更深刻的理解。


          感謝轉(zhuǎn)發(fā)點贊的各位~

          _往期文章推薦_

          我是如何在自學編程9個月后找到工作的




          如需了解付費精品課程教學答疑服務
          請在Crossin的編程教室內(nèi)回復: 666

          瀏覽 130
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品欧美乱码久久久久久 | 大香蕉在线视频精品视频 | 日韩欧美毛片 | 第一福利在线 | 福利导航网 |