@kodasam2525

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Python⚪︎×ゲームのエラーについて

解決したいこと

ここに解決したい内容を記載してください。

例)
Pythonでような0xゲームをつくっています。
記事を投稿する機能の実装中にエラーが発生しました。
解決方法を教えて下さい。

### 発生している問題・エラー
Traceback (most recent call last):
  File "/Users/ksam/Documents/定数の宣言.py", line 49, in <module>
    title = title_font.render("〇×ゲーム",True,WHITE)
pygame.error: Passed a NULL pointer



出ているエラーメッセージを入力

該当するソースコード


# 定数の宣言

import pygame
pygame.init()

# 定数は大文字とアンダーバーのみで名前をつける

WINDOW_WIDTH=500#画面の幅
WINDOW_HEIGHT=500#画面の高さ

display_surface=pygame.display.set_mode((WINDOW_WIDTH,WINDOW_HEIGHT))


pygame.display.set_caption('gamegame')
#pygame.display.set_caption('つけたいゲームの名前’)

#色の宣言
BLACK=(0,0,0)
WHITE=(255,255,255)

#ゲームの設定
LINE_WIDTH=5#描写する線の幅

#画面の色の指定
display_surface.fill(BLACK)#画面の色を黒にする
#display_surface.fill(color)

pygame.draw.rect(display_surface,WHITE,(100,100,300,300),LINE_WIDTH)


#pygame.draw.rect(画面の指定,色の指定,(xの左上の座標,yの左上の座標,四角形の幅,四角形の高さ),線の幅
pygame.draw.line(display_surface,WHITE,(200,100),(200,399),LINE_WIDTH)
pygame.draw.line(display_surface,WHITE,(300,100),(300,399),LINE_WIDTH)
pygame.draw.line(display_surface,WHITE,(100,200),(399,200),LINE_WIDTH)
pygame.draw.line(display_surface,WHITE,(100,300),(399,300),LINE_WIDTH)

# クロックの設定
FPS=60#ゲームのフレームレートの値
clock=pygame.time.Clock()
 #pygame.time.Clock() プログラムの時間を管理するための命令
#ゲームのフレームレートを制御する(ゲームの実行速度に制限をかける)
#変数clockを、下のwhile文の中で、clock.tick(FPS)と使用して
#プログラムを1秒ごとに60フレームを超えないように制御する
⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩ここから
#文字の設定
title_font=pygame.font.Font('NotoSansJP-Regular.ttf',50)
#pygame.font.Font(フォントの名前,フォントのサイズ)#フォントオブジェクトを作成する

title = title_font.render("〇×ゲーム",True,WHITE)

#テキストの作成#フォントオブジェクト.render(メッセージ,文字の表示を滑らかにするかどうか
#文字の色)#変数titleには、Surfaceオブジェクトが代入される

title_font_rect = title.get_rect()
#作成したテキストのRectの値を取得#Rectの値は、
#top,left,bottom,rightなどの座標や
#size,width,heightなどの情報を持っている
#また、title_font_rect.center=(10,10)などとして
#その(テキストの)Surfaceオブジェクトの中央の位置が(10,10)となったRectの値の取得ができる

title_font_rect.center=(WINDOW_WIDTH//2,50)

#テキスト中央の位置を決める

display_surface.blit(title_font_rect)
#テキストの表示#display_surface.blit(テキストのSurfaceオブジェクト,
#テキストのSurfaceオブジェクトの描写位置)
#ここのtitle_font_rectは、中央の位置が
#title_font.centerによって、x座標はWINDOW_WIDTH//2、y座標は50になっている


pygame.display.update()
running=True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running=False
            clock.tick(FPS)
            pygame.quit()
                                       ```  

例)


### 自分で試したこと
文字のチェックや空白などもいじってみましたが、
なかなか上手くいきません。
身近に相談できる人もいなくて、一生進まないのでここで相談させていただきました。

#Python
0 likes

1Answer

title_font=pygame.font.Font('NotoSansJP-Regular.ttf',50)

↑このフォントファイルは、カレントディレクトに存在していますか?
別なディレクトなら、フルパスを書いてみてください。

2Like

Your answer might help someone💌