GIF
流れるメッセージ
ここをクリックしてください
import pygame
import sys
import time
# Pygameを初期化
pygame.init()
width, height = 100, 70
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("flow_text")
#ここにフォントのパスを貼り付ける
font = pygame.font.Font(パス,20)
text = font.render("おはよう",True, (255,255,255))
pos = 70
time_start = time.time()
# メインループ
running = True
while running:
screen.fill((0,0,0))
time_end = time.time()
if time_end - time_start > 0.05 and pos >= -20:
pos -= 1
time_start = time.time()
screen.blit(text,(10, pos))
pygame.display.update() # 画面を更新
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Pygameを終了
pygame.quit()
sys.exit()
明滅するテキスト
ここをクリックしてください
import pygame
import sys
import time
# Pygame初期化
pygame.init()
# 画面設定
width, height = 640, 480
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Centered Text Drawing")
#ここにフォントのパスを貼り付けるパス
font = pygame.font.Font(パス, 35)
#ここに背景のパスを貼り付けるパス
surface = pygame.image.load(パス)
texts = ["かつて王国は豊かだった", "秘宝の力があったからだ", "豊かさはいつまでも続くと思われた", "しかし、"]
current_text_index = 0
# 色を定義
black = (0, 0, 0)
alpha = 0
transparent = (0, 0, 0, alpha)
cmd = 0
k = 0
text = True
time_start = time.time()
# メインループ
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if text:
time_end = time.time()
if time_end - time_start > 3 and cmd == 0:
# テキストを切り替える
current_text_index = (current_text_index) % len(texts)
k = (k + 1) % len(texts)
time_start = time.time()
cmd = 1
if time_end - time_start > 6 and cmd == 1:
# テキストを切り替える
current_text_index = (current_text_index + 1) % len(texts)
k = (k + 1) % len(texts)
time_start = time.time()
if alpha < 255 and cmd == 1:
alpha += 1
time.sleep(0.01)
if alpha == 254:
cmd = 2
if alpha > 0 and cmd == 2:
alpha -= 1
time.sleep(0.01)
if alpha == 0:
time.sleep(2)
cmd = 1
if current_text_index == 3:
text = False
screen.blit(surface,(0,0))
# 中央にテキストを描画
text_surface = font.render(texts[current_text_index], True, black)
text_surface.set_alpha(alpha)
# 中央にテキストを描画
text_rect = text_surface.get_rect(center=(width // 2, height // 2))
screen.blit(text_surface, text_rect.topleft)
pygame.display.flip()
pygame.quit()
sys.exit()
if time_end - time_start > 3 and cmd == 0:
最初の表示を早くするためです。
if time_end - time_start > 6 and cmd == 1:
6より少なくすると、テキストが透明になりきらずに、そのあとの表示がおかしくなります。
text_rect = text_surface.get_rect(center=(width // 2, height // 2))
height // 2のところを4にすると、テキストが上の方に表示されます。
細かく指定する場合は、0.1 ~ 0.9 をかけた方がよさそうですね。ex) height * 0.5
ここをクリックしてください
ここをクリックしてください
ここをクリックしてください
ここをクリックしてください