スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。
今回 の目標 は「エンコード」
エンコードってなんやねん
ちょっと同期 処理 にはラグがある
クラウド- X
座標 をクラウド変数 1にセット - Y
座標 をクラウド変数 2にセット

① X座標 をクラウド変数 1にセットタブAでX座標 をクラウド変数 1にセットすると、0.1秒 後 にタブBでクラウド変数 1の値 が更新 されてX座標 に反映 される

② Y座標 をクラウド変数 2にセット少 し遅 れてタブAでY座標 をクラウド変数 2にセットすると、0.1秒 より少 し遅 れてタブBでクラウド変数 2の値 が更新 されてY座標 に反映 される
このラグは改善 できる
カクカクのどうやって1つにするか
変更 前
X座標 = 142 → クラウド変数 1 = 142Y座標 = 30 → クラウド変数 2 = 30
変更 後
X座標 = 142 → クラウド変数 1 = 142Y座標 = 30 → クラウド変数 1 = 14230
こんな問題 発生
うーん、なんかx = 14 と y = 230 かもしれない
x = 142 と y = 30 かもしれない
x = 1 と y = 4230 かもしれない
解決策
これを3142230

-
u003cpu003eこのケタ
数 みたいに数字 の長 さを示 す数字 のことをプレフィックスって呼 んでるけど、正式 名称 じゃないかも。プレフィックスってよくIPアドレス関連 で使 われる専門 用語 で、IPアドレスの長 さを意味 する数字 なんだよね。その流 れでこれも数字 の長 さを表 す数字 だからプレフィックスって呼 んでるだけかも。すまん、正式 名称 は違 うかもしれないけど、そこまで重要 な話 でもないからケタとかケタ数 って呼 んでもいいし、プレフィックスって呼 んでもいいと思 う。u003c/pu003e
結果
クラウドタブAでXとYを合体 させてクラウド変数 1にセットする → タブBでクラウド変数 1を分解 してXとYにセットする
これでラグが0.1で、エンコードってなに?
ここまで-
u003cpu003e
合体 させるのがエンコードで、それを分解 させるのがデコードといったけど、時間 が経 つと「どっちがエンコードでどっちがデコードだったっけ?」ってなる。はじめの頃 の僕 はなってたwu003c/pu003eu003cpu003eそのときに無理 やり思 いついた覚 え方 がある。くだらないけどwu003c/pu003eu003cpu003e「ENCODE」と「DECODE」の最初 の2文字 に注目 してみて。u003c/pu003eu003cpu003eENとDEだよね。Eが前 にあるからエンコードが先 (=合体 )で、Eが後 ろにあるからデコードが後 (=分解 )って覚 えた。……フッ、認 めたくないものだな。自分 自身 の若 さ故 の過 ちというものを。u003c/pu003eu003cpu003eu003c/pu003e
エンコード処理 を準備 しよう
変数 「エンコード文字列 」を用意 する
エンコードされた
-
u003cpu003eエンコードした
後 も数字 のカタマリなのだから、文字列 というよりも数字 列 という名前 が適当 では?と思 うかもしれないね。でもプログラミングにおいて数字 列 という言葉 は聞 き慣 れない。一方 で、文字列 という言葉 は頻繁 に使 われているんだ。u003c/pu003eu003cpu003eあと、プログラミングにおいては数字 と数値 は異 なるケースがある。数字 は文字 の仲間 として考 えられているんだ。わかりにくいから例 を出 すね。数値 の1と数値 の2を足 すと普通 に3になる。でも数字 の1と数字 の2を足 すと12になる。こういうことがプログラミングでは一般的 なので、今回 エンコードされるデータも文字列 と呼 ぶのが正 しいんだ。u003c/pu003e
初期 化 する

一時 変数 を用意 しておく
エンコードの
ブロック定義 「◯をエンコードする」を用意 する
エンコード
テスト用 のデータを渡 しておく
エンコードのブロック
一時 変数 に引数 をセットする

テストする

エンコード処理 を作 り込 む
ここまでは値 を丸 めておく
なにかのはずみで「100.5」みたいな
ケタ数 を調 べる
ケタ

u003cpu003e
ケタ数 と数字 を組 み合 わせる
ケタ

エンコード文字列 に追記 する
この

エンコード文字列 にセットする

テストする
クリックしてテストしよう!


次回 へ
まだまだ脳 トレ答 え
392411は924と1です。15234は5と34です。では、3322291は何 と何 ?
スクラッチでオンラインゲームを作る
- ① クラウド変数の使い方
- ② エンコードする (いまここ)
- ③ デコードする
- ④ マイナス値に対応する
- ⑤ バッファリングを実装する
- ⑥ 別プレイヤーを検知する
- ⑦ プレイヤーを管理する
- ⑧ クローンを使おう
- ⑨ スケールアップする
- ⑩ 退場処理を作る
- ⑪ 自作ゲーム「鬼ごっこ」を作る
- ⑫ MMO鬼ごっこに改造する
- ⑬ クラウド変数でユーザー名を共有する方法

このスクラッチゲームの作り方に挑戦していて分からないことが発生したら質問してみてね。気づいたタイミングで回答するよ。
質問は
僕のスクラッチのプロフィール
で受け付けているよ。
・□□ ... どんな問題が起きているのか、どういうときに起きるのか、具体的に書こう。
・共有済みURL ... たまに共有してない作品URLを書いてる人がいるけど、共有しないとこちらから確認できないからよろしくね。
質問テンプレート(素早く3回クリックすると全選択できるのでコピーしよう)
・◯◯ ... 記事のどこまで実装が終わったのかを記入しよう。・□□ ... どんな問題が起きているのか、どういうときに起きるのか、具体的に書こう。
・共有済みURL ... たまに共有してない作品URLを書いてる人がいるけど、共有しないとこちらから確認できないからよろしくね。