メインコンテンツまでスキップ

機能追加

以下の機能を追加してください

順番はどれからでも OK!

スコアボードの追加

以下の画像の通りにスコアボードを追加してください

(画像とは全く同じではなくてもいいよ)

ヒント

始める順番

  1. スコアボードの枠を作成
  2. スコアを保存して表示
  3. 点数が高い順に並べる
  4. 順位を表示

保存するデータの先

まずは変数にデータを保存してみよう!

サーバーと連携するのは暇な人だけでいいよ!

スコアボード作成ヒント

スコアボードの縦と横の大きさを定義しよう

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

フォントの名前でフォントを呼び出す方法

フォントの種類は以下の物があるよ!

  1. Yu Gothic
  2. MS Gothic
  3. Meiryo
  4. MS Mincho
  5. 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に変更して、各変数を初期化しよう!