Menu
CoddyTech

TrueかFalseか

CoddyのPygameジャーニー「ゲームウィンドウで学ぶPython」セクションの一部。レッスン 14/32。

True と False は、それ自体が値で、ブール値と呼ばれます。スイッチのように、変数にどちらかを格納できます。

lamp_on = False

if で直接テストできます。if lamp_on: は、値が True のときに実行されます。not は値を反転させるので、lamp_on = not lamp_on とするとランプのオン・オフが切り替わります。

スイッチには、キーを押し続けるのではなく、キーを押す操作が必要です。get_pressed() はキーが押されているすべてのフレームで True になるため、ランプが1秒間に60回切り替わってしまいます。キーを押すと、ゲームループの先頭にあるイベントループで、KEYDOWN イベントが1回発生します。

for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False
    if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
        lamp_on = not lamp_on

セクション2ではイベントについて詳しく説明します。ここでは、event.type は何が起きたかを示し、event.key はどのキーかを示すことを覚えておきましょう。

challenge icon

チャレンジ

中級

スペースキーでランプを切り替えます:

  1. セットアップ部分で、lamp_on = Falseにします。
  2. イベントループで、K_SPACEのKEYDOWNイベントが発生したら、lamp_on = not lamp_onにします。
  3. 光を(320, 290)に半径30で描画します。lamp_onがTrueの場合は(255, 220, 100)、そうでない場合は(70, 70, 90)にします。

自分で試してみよう

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# ゲームループの前に、ここで準備をします。

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 各フレームで、ここで必要な変更をします。

    screen.fill((20, 24, 48))
    # 画面を塗りつぶした後、ここに描画します。
    pygame.draw.rect(screen, (90, 90, 110), (310, 300, 20, 180))
    pygame.draw.circle(screen, (70, 70, 90), (320, 290), 30)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ゲームウィンドウで学ぶPythonのすべてのレッスン

自分で練習してみよう: Pygameプレイグラウンド