surface和螢幕

來源:互聯網
上載者:User
surface和螢幕

 

pygame最重要的部分就是surface。我們可以把surface看作是一張白紙。你可以對surface作很多操作,比如在surface上畫線、用某種顏色填充surface上的部分地區、把圖片拷貝到surface上去,把圖片從surface上複製下來、設定或者讀取surface上某個點的顏色。一個surface可以是任何大小,一個遊戲可以有任意多surface。其中有一個surface是特別的,就是用pygame.display.set_mode()建立的display surface。它代表了螢幕,對它的任何操作會出現在使用者的螢幕上。一個遊戲只能有一個這樣的surface,這是SDL的限制。

 

怎樣建立surface?剛才提到,用pygame.display.set_mode()可以建立特殊的display surface。此外,還可以用image.load()建立一個包含圖片的surface,還可以用font.render()建立一個包含文字的surface。你甚至可以用Surface()建立一個不包含任何東西的surface。

 

surface的大部分方法都不重要,只要學習其中的blit(), fill(), set_at()和get_at()就夠用了。

 

display surface的初始化操作是這樣的:

screen = pygame.display.set_mode((1024, 768))
或者 screen = pygame.display.set_mode((1024, 768), pygame.FULLSCREEN) 

 

你可以用set_mode把原來視窗的遊戲變成全屏。其它的俄顯式模式(可以用|串連)有

  • DOUBLEBUF: 對於平滑的動畫所必須
  • OPENGL: 讓你可以用PyOpenGL,但是不能用pygame的繪圖函數

還有一個可選的depth參數,用來控制顏色顯示的深度。一般情況下不用指定這個參數,只要用預設值就可以了。

如果使用DOUBLEBUF,你需要用flip函數來把繪製的內容顯示到螢幕上。

>>> pygame.display.flip()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.