ウェブサイト検索

Pygameでテキスト入力ボックスを作成するにはどうすればよいですか?


Pygame は、Python を使用してビデオ ゲームなどのマルチメディア アプリケーションを開発するための無料のオープンソース ライブラリです。これには、ビデオ ゲームの設計に非常に役立つグラフィックスおよびサウンド ライブラリが含まれています。 Pygame は、ハードウェアや入力デバイスへの低レベルのアクセスを提供する Simple DirectMedia Layer (SDL) ライブラリ上に構築されています。 Pygame はSDL 上に構築されているため、グラフィックス、サウンド、入力処理のためのプラットフォームに依存しないインターフェイスを提供します。これは、ゲームやマルチメディア アプリケーションを一度作成すれば、Windows、Mac OS、Linux などの複数のプラットフォームで実行できることを意味します。

pygame を使用するには、Python 言語の基本を理解している必要があります。このチュートリアルが終わるまでに、Pygame がどのように機能するかを理解できるようになります。ビデオゲームやグラフィックスを作成するためのいくつかの機能が含まれています。 Pygame をインストールする前に、Python をシステムにインストールする必要があります。

例1

この例では、最初に Pygame と sys をインポートし、次に「pygame.init()」を使用してインポートされたすべてのモジュールを初期化し、指定された秒内にフレームを更新する「クロック」を定義しました。次に、フォントとテキストに続いて、画面の表示モードとキャプションを設定し、長方形の作成と色のパラメーターを設定します。次に、いくつかの関数を使用して入力ボックスの動作フローを設定します。最後に、「pygame.display.flip()」関数を使用して表示しました。

import pygame,sys
pygame.init()
clock = pygame.time.Clock()
screen= pygame.display.set_mode((500,500)) 
pygame.display.set_caption('text input')
user_text= ' '
font = pygame.font.SysFont('frenchscript',32) 
input_rect = pygame.Rect(200,200,140,40)
active=False
color_ac=pygame.Color('green')
color_pc=pygame.Color('red')
color=color_pc
active=False
while True:    
   for events in pygame.event.get():
      if events.type==pygame.QUIT:
         pygame.quit()
         sys.exit()
              
      if events.type==pygame.MOUSEBUTTONDOWN:
         if input_rect.collidepoint(events.pos):
            active = True

      if events.type == pygame.KEYDOWN:
         if active == True:
         
            if events.key == pygame.K_BACKSPACE:
               user_text = user_text[:-1]
            else:
               user_text+=events.unicode
          
   screen.fill('blue')
   if active:
      color=color_ac
   else:
      color=color_pc
      
   pygame.draw.rect(screen,color,input_rect,2)
     
      
   text_surface = font.render(user_text,True,(255,255,255))
   screen.blit(text_surface,(input_rect.x + 5, input_rect.y +5))
   input_rect.w=max(100,text_surface.get_width() + 10)
   pygame.display.flip()
   clock.tick(60)

出力

例 2

これは別の同様の例です。ここでは、pygame モジュールのみを使用してテキスト入力ボックスを作成し、その後、テキスト ボックスを作成するための他のメソッドを定義しました。最後に、「pygame.display()」関数を使用して表示しました。

import pygame
pygame.init()
screen = pygame.display.set_mode((700, 200))
clock = pygame.time.Clock()

font = pygame.font.SysFont(None, 50)
text = ""
input_active = True

run = True
while run:
   clock.tick(60)
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         run = False
      elif event.type == pygame.MOUSEBUTTONDOWN:
         input_active = True
         text = ""
      elif event.type == pygame.KEYDOWN and input_active:
         if event.key == pygame.K_RETURN:
            input_active = False
         elif event.key == pygame.K_BACKSPACE:
            text =  text[:-1]
         else:
            text += event.unicode

      screen.fill('purple')
      text_surf = font.render(text, True, (255, 0, 0))
      screen.blit(text_surf, text_surf.get_rect(center = screen.get_rect().center))
      pygame.display.flip()

pygame.quit()
exit()

出力

結論

Pygame はビデオ ゲームやマルチメディア アプリケーションを作成するための人気のあるライブラリであることがわかりました。開発者は、この有名なライブラリを使用していくつかのゲームを作成できます。グラフィックを作成および操作するための使いやすいインターフェイスを提供します。誰でもこれを使用して、画面上に図形、画像、アニメーションを描画できます。また、これを使用して、パーティクル システムやスクロールする背景などの視覚効果を作成することもできます。全体として、Pygame はさまざまなアプリケーションに使用できる強力で多用途なライブラリです。

Pygame を学ぶことで、誰もがグラフィックス プログラミング、サウンド プログラミング、入力処理、ゲーム開発、クロスプラットフォーム開発のスキルを開発できます。使いやすいインターフェイスと幅広い機能を備えた Pygame は、Python を使用してゲームやマルチメディア アプリケーションを作成することに興味がある人にとって最適な選択肢です。

関連記事: