0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Tkinter と pygame の構文比較

Last updated at Posted at 2024-11-02

Pythonでつくるゲーム開発入門講座廣瀬豪)」という本で、Tkinterとpygameの両方を使って混乱したので、整理した記事です。

ウィンドウを作成する

  • tkinter
    screen = tkinter.Tk()
    
  • pygame
    pygame.init()
    

ウィンドウにタイトルを設定する

  • tkinter
    root.title("")
    
  • pygame
    pygame.display.set_caption("")
    

ウィンドウサイズを設定する

  • tkinter
    root.geometry(f"{800}x{600}")
    
  • pygame
    screen = pygame.display.set_mode((800, 600))
    

フォントを指定する

  • tkinter
    fnt = ("Times New Roman", 16)
    
  • pygame
    font = pygame.font.Font(None, 80)
    

画面を塗りつぶす

  • tkinter
    tkinter.Canvas(fill="black")
    
  • pygame
    screen.fill((255,255,255))
    

画像ファイルを取り込む

  • tkinter
    img = tkinter.PhotoImage(file="ファイルパス") # 800 x 600の画像の場合...
    canvas.create_image(400, 300, image=img, tag="IMAGE_TAG") # 画像の中心座標を指定する
    
  • pygame
    img_galaxy = pygame.image.load("ファイルパス")
    img_galaxy = pygame.image.load("ファイルパス").convert() # 表示が早くなる
    img_galaxy = pygame.image.load("ファイルパス").convert_alpha() # 表示が早くなる(透過色ありの場合)
    

矩形(四角形)を描く

  • tkinter
    cancas.create_rectangle(左上x座標, 左上y座標, 右下x座標, 右下y座標, ...)
    
  • pygame
    # screenは、### ウィンドウサイズで取得したもの
    pygame.draw.rect(screen, , [左上x座標, 左上y座標, , 高さ])
    

イベントに応じた処理をする

  • tkinter
    canvas.bind("<各種のイベント>", 関数)
    def 関数(e):
    	keystring = e.keysym
    	keycode   = e.keycode
    	keychar   = e.keychar
    
  • pygame
    pygame.event.get()
    if event.type == pygame.QUIT:
    	pass
    

押されたキーを取得する

  • tkinter
    canvas.bind("<各種のイベント>", 関数)
    def 関数(e):
    	keystring = e.keysym
    	keycode   = e.keycode
    	keychar   = e.keychar
    
  • pygame
    for event in pygame.event.get():
    	if event.type == pygame.KEYDOWN:
    		if event.key == pygame.K_F1:
    			pass
    

別の方法

  • pygame
    key              = pygame.key.get_pressed()
    key[pygame.K_DOWN]
    
  • pygame
    mouseX, mouseY   = pygame.mouse.get_pos()
    btn1, btn2, btn3 = pygame.mouse.get_pressed()
    

関連:マウスホイール

  • pygame
    if event.type == pygame.MOUSEWHEEL:  # マウスホイールイベント
    	print(f"ホイールの回転量: {event.y}")  # 回転量を表示
    	ang += event.y * 10	 # 回転量に基づいて角度を調整
    

一定時間後に処理をする

  • tkinter
    root.after(時間, 関数)
    
  • pygame
    clock = pygame.time.Clock()
    clock.tick(30)
    

画面を更新する

  • tkinter
    canvas.delete("タグ名")
    
  • pygame
    pygame.display.update()
    
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?