4.drawImage
さて、なにもしないウィンドウが出ただけではつまらないので先に進みましょう。
でもその前に、 3.simple simpleWindow で小さくまとめたスクリプトに、さらに手を加えたのでそれを最初に。
import pygame from pygame.locals import * #--------------------------------------------- # function start #--------------------------------------------- def pollingEvent(): global _running for event in pygame.event.get(): if event.type == pygame.QUIT: _running = False #--------------------------------------------- # function end #--------------------------------------------- _running = True _size = ( 320,200 ) _mode = pygame.HWSURFACE | pygame.DOUBLEBUF pygame.init() screen = pygame.display.set_mode(_size,_mode) pygame.display.set_caption("hello pygame") while(_running): pollingEvent() pygame.quit()
横にずらずら長いのとか、暗黙の了解みたいなのを平然と使うの、少なくともわたしは気持ち悪いと思うので。ずばっと書き直しました。
あと、イベント処理とかはまとめるならまとめようよ。って思ったのでpollingEventというファンクションにまとめました。
だいぶ見通し良くなったのではないでしょうか。
では、本題の画像表示にいきます!
下の方のwhileループの前に次のコードを追加します。
imgPath="/usr/share/raspberrypi-artwork/launch.png" img = pygame.image.load(imgPath).convert() #convert_alpha() screen.blit(img,(144,84)) pygame.display.update()
これで実行してみますと…。
やった! 表示されましたね。
img = pygame.image.load(imgPath).convert()
で読み込み、
screen.blit(img,(144,84))
で、オフスクリーンへの描画、144,84はX、Y座標。画面の真ん中に表示されるようにしてみました。
そして…
pygame.display.update()
で、画面への反映をしています。
いくらblitで書き込んでもupdate()しないと反映されないわけです。
ダブルバッファーっていうやつですね!
convert()はconvert_alpha()とすることで透明度を反映できます。
すっごい便利ですね…。人間ダメになっちゃいそうなほど簡単です…。
とりあえず今回はこれにて。