「Scratchでパズドラっぽいゲームを作ってみた」を解説してみた その3

解説その3では「Scratchでパズドラっぽいゲームを作ってみた」の「ドロップを移動する」を解説していきます。
※定義名・変数名はいくつか変更しています。
コードはこちら

「パズドラ」でドロップを移動すると、マウスのある位置のドロップと動いた先のドロップが入れ替わります。
つまり、マウスのある位置のドロップの値と動いた先のドロップの値が入れ替わることになります。
そしてマウスのある位置は動いた先の位置になることで次々にドロップの値が入れ替わります。

解説その2で説明したように、定義「ドロップの選択処理」では変数「何番目を選択中か」に選択しているドロップの位置を入れ、「選択中のドロップの値」にその位置の値を入れていました。
解説その1で説明したようにドロップの色はテーブルのその位置にある値で決められていましたね。

定義「ドロップを移動する」

上から命令を見て行きます。

1. 定義「マウスの位置からドロップの位置を取得する」で移動するドロップが「処理したドロップの位置」としてテーブルの何番目にあるかを計算しています。
2. もし「何番目を選択中か」(選択している位置)が「処理したドロップの位置」(移動先の位置)と同じでないなら、つまり移動していたら
3. 「移動するドロップは何番目か」を「処理したドロップの位置」(移動先の位置)にします。
4. 「移動するドロップの値」を「処理したドロップの位置」番目にすることで値を移動先の値に変更します。
5. 「処理したドロップの位置」番目(移動先の値)を「選択中のドロップの値」(選択している値)に置き換えます。 つまり、移動先のドロップがクリックしているドロップの色になります。
6. 「何番目を選択中か」番目(選択している位置の値)を「移動するドロップの値」(移動先の値)で置き換えます。 これは、移動先のドロップの色を後ろにあるドロップの色に入れ替えています。
7. 「何番目を選択中か」(選択している位置)を「移動するドロップは何番目か」(移動先の値)にして、選択している位置を移動先の位置に入れ替えています。

そして、解説その2で説明した定義「選択中のドロップを表示する」で選択しているドロップをマウスの少し下に表示します。 これを繰り返しているのでドロップを移動すると次々に色が入れ替わります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


Time limit is exhausted. Please reload CAPTCHA.