機能追加
プレイヤーの移動
矢印の左と右のキーでプレイヤーを移動させよう!
備考
キーを取得して、プレイヤーの座標を変更してね
ヒント
キーの取得
いまどこが押されているのかを取得しよう
キーの取得のヒント
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_heightとboard_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()