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

機能追加

プレイヤーの移動

矢印の左と右のキーでプレイヤーを移動させよう!

備考

キーを取得して、プレイヤーの座標を変更してね

ヒント

キーの取得

いまどこが押されているのかを取得しよう

キーの取得のヒント

PyGame のキー取得方法

keys = pygame.key.get_pressed()

if keys[pygame.k_LEFT]:
# 左が押されている

if keys[pygame.k_RIGHT]:
# 右が押されている

プレイヤーの移動

playerという変数は、pygame.Rectで用意しよう

player = pygame.Rect(...)
#プレイヤーの移動速度を定義
player_speed = 8

# x座標は横
if (左が押されているとき):
player.x -= player_speed

if (右が押されているとき):
player.x += player_speed

スコアボードの表示とサーバー通信

Surfaceを使用してスコアボードを作成しよう!

ヒント

スコアボードの作成

スコアボードのヒント

縦と横を定義

board_heightboard_widthを定義しよう

board_height = 250
board_width = 180

サーフェスを作成しよう

サーフェスとは?

scoreboard_surface = pygame.Surface([board_width, board_height], pygame.SRCALPHA) # 透明度を持たせる

スコアボードの枠を作ろう

スコアボードの作成はpygame.draw.rectを使用して作成しよう

rect_width を指定しないと塗りつぶしになる。正の値を指定すると枠線が作成される。

pygame.draw.rect(scoreboard_surface, color, [x, y, board_width, board_height], rect_width)

タイトルを追加しよう

フォントを取得

font = pygame.font.SysFont(None, font_size)

テキストを描画

コードを考えてみよう

テキストを描画するヒント

title_text = font.render("トップスコア", True, WHITE)
scoreboard_surface.blit(title_text, (x, y))

サーバーと通信

サーバーとの通信はsocketパッケージを使用して通信しよう!

警告

サーバーとの通信はとても難しいです! わからなかったことがあったら聞いてね

socket(ソケット)通信はガンゲームの通信方法よりも更に難しいです。気を付けて!!

サーバーと通信のヒント

socketパッケージを使用する

使い方

import socket

#ソケットを作成
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

#サーバーに接続
client_socket.connect(('localhost', 12345))

#データを送信
client_socket.send(data)

#データを受信
#1024バイト分のデータを受信
receive_data = client_socket.recv(1024)
print(receive_data)

#ソケットを閉じる
client_socket.close()