スクラッチでオンラインゲームを作る⑦ プレイヤー管理

スクラッチでオンラインゲームを作る⑦ プレイヤー管理
グリフパッチ(動画)
ok-scratch(解説記事)

和訳解説は動画作者のグリフパッチさんご本人から許可をいただいて掲載しております。
チャンネルはYOUTUBE ( by griffpatch )からどうぞ。

新プレイヤーのデータを追加するぞ!
スターター
プロジェクト
なし
難しさ

任意)自分の作業中のスクラッチ作品URLを記録しておこう!再開するときに便利だよ。

LOADING...

※ この記録は今使ってるPCに保存されます。別のPCで作業するときは表示されません。

スクラッチプログラミングに挑戦している皆さん、どうも!スクラッチコーチです。

前回(ぜんかい)(べつ)プレイヤーを検知(けんち)することに成功(せいこう)したぞ!これで(あたら)しい(ひと)(おな)じプロジェクトをプレイしていることをプログラム(ない)()ることができたんだ。これはオンラインゲームにとって最高(さいこう)にエキサイティングな前進(ぜんしん)だよね!今回(こんかい)はこれをもっと(すす)めていくぞ。

今回(こんかい)目標(もくひょう)「プレイヤーを管理(かんり)する」

(あたら)しいプレイヤーを検知(けんち)できたので、このプレイヤー情報(じょうほう)格納(かくのう)するリストを(つく)りたい。そうすることでこのプレイヤーは検知(けんち)()みのプレイヤーとして判定(はんてい)することも出来(でき)る。それの(なに)(うれ)しいかというと、プレイヤーが(あたら)しく入場(にゅうじょう)した(さい)に1(かい)だけ(おこな)いたい処理(しょり)がある場合(ばあい)役立(やくだ)つんだ。(まった)(あたら)しいプレイヤーなら処理(しょり)Aと処理(しょり)B、検知(けんち)()みのプレイヤーなら処理(しょり)Bだけ、みたいな分岐(ぶんき)(つく)れるってことだよ。この機構(きこう)をプレイヤー管理(かんり)()ぼうか。今回(こんかい)はこの管理(かんり)システムを構築(こうちく)することを目標(もくひょう)一緒(いっしょ)にやっていこう!

カンタンなまとめ

今回(こんかい)(なが)れをカンタンにまとめておくよ。
  • (あたら)しく2つのリスト「★プレイヤーUID一覧(いちらん)」と「★プレイヤーデータ一覧(いちらん)」を(つく)りプレイヤー管理(かんり)(よう)のデータベースのように()(あつか)
  • (あたら)しいプレイヤーのときは入場(にゅうじょう)処理(しょり)とデータ更新(こうしん)処理(しょり)(おこな)い、検知(けんち)()みのプレイヤーのときはデータ更新(こうしん)処理(しょり)のみを(おこな)うように、クラウド変数(へんすう)受信(じゅしん)処理(しょり)(つく)()()
こんな(かん)じ。ステップは(すく)なそうに()えるけどリスト同士(どうし)関係性(かんけいせい)複雑(ふくざつ)になってくるので、じっくり()()もう!

(しん)プレイヤーを追加(ついか)する

検知(けんち)した(べつ)プレイヤーが(あたら)しくゲームをプレイし(はじ)めた(ひと)なのか、それともすでに検知(けんち)()みの(ひと)なのかによって処理(しょり)(こと)なるので、そこを判断(はんだん)できるようにしよう。作戦(さくせん)としては前回(ぜんかい)クラウド変数(へんすう)比較(ひかく)でやったように、リストを使(つか)った比較(ひかく)をしていく。ただし今回(こんかい)は、デコードしたプレイヤーUIDがすでに検知(けんち)()みのプレイヤーUID一覧(いちらん)にあるかどうかを調(しら)べて、なければ新規(しんき)、あれば既知(きち)として判断(はんだん)するコーディングをしていきたい!

(あたら)しいリスト①「★プレイヤーUID一覧(いちらん)」を用意(ようい)する

すでに検知(けんち)()みのプレイヤーなのか、それとも新規(しんき)プレイヤーなのかを判断(はんだん)するために、プレイヤーUID一覧(いちらん)をリストとして用意(ようい)しよう。

初期(しょき)()する

使(つか)

変数(へんすう)「エンコード文字列(もじれつ)」を1()デコードしたから、変数(へんすう)()」の(なか)にはプレイヤーUIDが(はい)っているんだったね。★プレイヤーUID一覧(いちらん)存在(そんざい)しているかどうか、ちょっと()わったブロックを使(つか)ってチェックしてみよう。
リストブロックの1つに、リスト(ない)何番目(なんばんめ)()存在(そんざい)するかを(おし)えてくれるものがあって、リスト(ない)になければゼロを(かえ)してくれる。ゼロが(かえ)ってきたら新規(しんき)プレイヤー、1以上(いじょう)なら検知(けんち)()みのプレイヤーっていうことになるよう(つく)っていくよ。

新規(しんき)プレイヤーの入場(にゅうじょう)処理(しょり)(おこな)

では条件(じょうけん)ブロックを使(つか)って判定(はんてい)していこう。プレイヤー(ばん)(ごう)がゼロなら新規(しんき)プレイヤーだね。
プレイヤーUIDを一覧(いちらん)追加(ついか)して、次回(じかい)からは検知(けんち)()みのプレイヤーとして(あつか)われるようにしよう。

(あたら)しいリスト②「★プレイヤーデータ一覧(いちらん)」を用意(ようい)する

ここで2つ()(しん)リストだ。★プレイヤーデータ一覧(いちらん)用意(ようい)しよう。

初期(しょき)()する

使(つか)

空白(くうはく)をリストに追加(ついか)して(なが)さを()やしておこう。(あたら)しいプレイヤーのデータが格納(かくのう)される予定(よてい)(ぎょう)だよ。

プレイヤー(ばん)(ごう)更新(こうしん)する

(あたら)しいプレイヤーの(ばん)(ごう)はゼロのままなので、このあとすぐ追加(ついか)するプレイヤーデータの(ぎょう)(ばん)(ごう)()()てておこう。

プレイヤーデータを更新(こうしん)する

ここまでは新規(しんき)プレイヤーのみの入場(にゅうじょう)処理(しょり)だったけど、ここからは検知(けんち)()みのプレイヤーとも共通(きょうつう)処理(しょり)になるよ。★プレイヤーUID一覧(いちらん)何番目(なんばんめ)にプレイヤーUIDが存在(そんざい)するか、新規(しんき)プレイヤーも検知(けんち)()みプレイヤーもこの段階(だんかい)では(あき)らかになっているね。そこで、★プレイヤーデータ一覧(いちらん)(おな)位置(いち)更新(こうしん)データを格納(かくのう)していきたい。()にするとこんな関係性(かんけいせい)だよ↓

プレイヤーデータリストを置換(ちかん)する

プレイヤー(ばん)(ごう)位置(いち)にあるデータを2つ()引数(ひきすう)更新(こうしん)データ」で置換(ちかん)しよう!

プレイヤー(ばん)(ごう)空白(くうはく)にしておく

後片付(あとかたづ)けとしてプレイヤー(ばん)(ごう)空白(くうはく)にしておこう。これは(つぎ)のチュートリアルで重要(じゅうよう)になってくるよ。

テストぉ!

(なら)べてテストしてみよう!
ナイスぅ!完璧(かんぺき)同期(どうき)できてるね。これタブを3つ(なら)べても上手(うま)くいくよ。やってみてね。プレイヤーUID一覧(いちらん)とプレイヤーデータ一覧(いちらん)が2(ぎょう)ずつに()えるから。その瞬間(しゅんかん)ゾワッてなるかもよ、自分(じぶん)すげーってw

次回(じかい)

この同期(どうき)システムを使(つか)えば、なんと100(にん)参加(さんか)(がた)のオンラインゲームを(つく)ることも可能(かのう)なんだよ……すごくない?(いま)はクラウド変数(へんすう)を1つだけしか使(つか)ってないっていうのも(しん)じられないよね。よくここまで()たね。スクラッチのトップクラスのオンラインゲームを(つく)る、そう豪語(ごうご)して(はじ)まったこのシリーズもいよいよココまで()た。頂上(ちょうじょう)はもう視界(しかい)(とら)えているぞ!もうちょっと一緒(いっしょ)頑張(がんば)ろう!次回(じかい)(べつ)プレイヤーを表示(ひょうじ)させるところを実装(じっそう)しよう。もちろん表示(ひょうじ)するだけじゃなくて(うご)きも同期(どうき)させるぞ!さらにその(あと)のチュートリアルではクラウド変数(へんすう)を8つ使(つか)ってスケールアップさせるよ。そしたら同期(どうき)のスムーズさが圧倒的(あっとうてき)()くなるから期待(きたい)してて。また近日(きんじつ)(ちゅう)更新(こうしん)するので()っててくれぃ。
ブクマよろしくお願いします! ブクマよろしくお願いします!
どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!

スクラッチプログラミングのゲーム攻略

スクラッチプログラミングのゲーム

    • 厳選されたスクラッチ人気作品リストがレビュー付きで楽しめます
      趣味に関するスクラッチ作品例
      勉強になるスクラッチ作品