機能追加
以下の機能を追加してください
順番はどれからでも OK!
スコアボードの追加
以下の画像の通りにスコアボードを追加してください
(画像とは全く同じではなくてもいいよ)
ヒント
始める順番
- スコアボードの枠を作成
- スコアを保存して表示
- 点数が高い順に並べる
- 順位を表示
保存するデータの先
まずは変数にデータを保存してみよう!
サーバーと連携するのは暇な人だけでいいよ!
スコアボード作成ヒント
スコアボードの縦と横の大きさを定義しよう
board_with = 250 # 枠の幅
board_height = 180 # 枠の高さ
枠の位置を定義しよう
スクリーンの背景 - 枠の幅 - 10 で横の位置を定義しよう
こうすると、スクリーンの背景の右側に枠が表示されるよ
10 は枠と画面端との距離 (x は左から右だからね!)
board_x = SCREEN_WIDTH - board_with - 10 # 枠の横の位置
board_y = 50 # 枠の縦の位置
枠を表示しよう
# 考えてみて pygame.draw.rectを使うよ
スコアボードに文字を表示するヒント
フォントを呼び出そう
font = pygame.font.SysFont(...) # カッコに何が入るか考えてみて
フォントを出す関数は2種類!?
font.SysFont
フォントの名前でフォントを呼び出す方法
フォントの種類は以下の物があるよ!
- Yu Gothic
- MS Gothic
- Meiryo
- MS Mincho
- Yu Mincho
など...
パソ コンに入っているフォントが使えるから、あるパソコンでは使えないフォントもあるよ
font = pygame.font.SysFont(...)
font.Font
フォントのパスでフォントを呼び出す方法
フォントのパスは、フォントのファイルの場所を指定する方法だよ
Windows
C:\Windows\Fonts\
Mac
/System/Library/Fonts/
Linux
/usr/share/fonts/
例えば
font = pygame.font.Font("/System/Library/Fonts/ヒラギノ角ゴシック W3.ttc", 36)
これで、C:\Windows\Fonts\msyh.ttc のフォントを 36 の大きさで呼び出すことができるよ
文字を決められた位置に表示しよう
文字を準備
text = font.render(...) # カッコに何が入るか考えて!
文字を表示
screen.blit(text, (x, y)) # x,y は縦と横の位置
枠の中に薄くオーバーレイ(透明度が低い背景)を作成すると見やすいかも
もしできたら、スコアボードをサーバーと連携して見よう! (すごく難しいよ)
requestsパッケージのインストール方法
もしパッケージが入っていない場合(画像のようなエラーの場合)

VSCode の場合

pip install requests
pip コマンドを使用してパッケージをインストールしよう!
命中率及び表示機能の追加
あたったたまの数 / 発射したたまの数 で計算をし、小数第 1 位まで表示してください
ヒント
# shot_hit: あたった弾の数
# shot_fired: 発射した弾の数
accuracy = (shot_hit / shot_fired) * 100
少数第 1 位まで表示する方法
# :.1f で小数第 1 位まで表示
# :.2f で小数第 2 位まで表示
print(f"{accuracy:.1f}")
# 小 数第 1 位まで表示
print(f"{accuracy:.1f}")
# 小数第 2 位まで表示
print(f"{accuracy:.2f}")
敵からの弾発射の実装と体力の減少
敵から弾を発射するようにして、弾を受けると体力が減少するようにしてください。
攻撃力、つまり減る体力の量は好きな数で!
体力は 200 になってるよ
ゲームのリスタート
ゲームが終了しても、リスタートすることができるようにしてください。
Rキーでリスタートできるようにしてみて!
ヒント
game_stateでゲームの状態を管理しているよ!
game_state をgame_overからplayingに変更して、各変数を初期化しよう!