Pygameプログラミングの宇宙人侵入(三)

1844 ワード

今日は宇宙人が侵入した小さなゲームのプログラミングを共有し続けます.(一)では、このゲームをプレイする上で理解しなければならないボタン機能、つまりプレイヤーが理解しなければならない情報を共有し、私たちが言っている操作インタフェースでもあります.(二)ゲームの3つの主要な要素である弾丸、宇宙人、宇宙船に関する設定手順を理解しました.では、ゲームはどのように起動されますか?一般的なゲームはスタートボタンをクリックしてゲームを開くのですが、その下の実質は何ですか?今日は見てみましょう.import pygame.fontはモジュールpygameをインポートした.font、これによりテキストが画面にレンダリングされます.3つのメソッド:init(),prep_を含むButtonクラスを定義します.msg()とdraw_button().__init__主に、ボタンのサイズ、色、ボタン内のテキストのフォント、色など、ボタンの性質を作成するために使用されます.prep_msgは、fontに適用するテキストを画像としてレンダリングする処理を行う.render、これはmsgの中のテキストを画像に変換して、中には4つのパラメータがそれぞれテキスト情報を代表して、アンチエイリアシング機能をオンにするかどうか、テキストの色と背景の色、次の2行のコードはテキストの位置を定義します.draw_button()はボタンを画面に表示します.はい、そうです.前の2つの方法はボタンとその中の文字の性質を定義していますが、まだプレイヤーに見せていません.この方法はこの機能を実現することです.screen.fill()ボタンを表す矩形を描く、screen.blit()画面にボタンを描画します.コードは次のとおりです.
button.py
import pygame.font

class Button():

    def __init__(self, ai_settings, screen, msg):
        """        """
        self.screen = screen
        self.screen_rect = screen.get_rect()

        #        
        self.width, self.height = 200, 50
        self.button_color = (0, 255, 0)
        self.text_color = (255, 255, 255)
        self.font = pygame.font.SysFont(None, 48)

        #     rect  ,     
        self.rect = pygame.Rect(0, 0, self.width, self.height)
        self.rect.center = self.screen_rect.center

        #           
        self.prep_msg(msg)

    def prep_msg(self, msg):
        """ msg              """
        self.msg_image = self.font.render(msg, True, self.text_color, self.button_color)
        self.msg_image_rect = self.msg_image.get_rect()
        self.msg_image_rect.center = self.rect.center

    def draw_button(self):
        #                  
        self.screen.fill(self.button_color, self.rect)
        self.screen.blit(self.msg_image, self.msg_image_rect)