ホームページ >ウェブフロントエンド >jsチュートリアル >vue を使用して 2048 ミニゲームを実装する方法
今回はvueを使って2048ミニゲームを実装する方法を紹介します。vueを使って2048ミニゲームを実装する際の注意点を紹介します。
使用方法:
git clone npm i npm run dev
実装アイデアは次のとおりです:
vue-cli を使用してプロジェクトをビルドします。このプロジェクトは少し面倒かもしれませんが、別のプロジェクトをビルドするのは面倒です
4X4 グリッドには 2D を使用します。配列 が保存されます。バインディング後は、この 2 次元配列のみを考慮して、キーボード
イベントを監視します<p class="box">
<p class="row" v-for="row in list">
<p class="col" :class="'n-'+col" v-for="col in row">{col}}</p>
</p>
</p>
メインゲーム部分のDOMは非常に複雑ですシンプルで、2 次元配列でレンダリングされ、スタイルに動的にバインドされます左にシフト主に次の状況によって発生します:
2 2 2 2 => 4 4 0 04 2 2 2 => 4 4 2 0
_list.forEach(item => {
let farthest = this.farthestPosition(list, item)
let next = list[farthest - 1]
if (next && next === item.value && !_list[farthest - 1].merged) {
//合并
list[farthest - 1] = next * 2
list[item.x] = undefined
item = {
x: farthest - 1,
merged: true,
value: next * 2
}
this.score += next * 2
} else {
if (farthest != item.x) {
list[farthest] = item.value
list[item.x] = undefined
item.x = farthest
}
}
})
rotate(arr, n) {
n = n % 4
if (n === 0) return arr
let tmp = Array.from(Array(this.size)).map(() => Array(this.size).fill(undefined))
for (let i = 0; i < this.size; i++) {
for (let j = 0; j < this.size; j++) {
tmp[this.size - 1 - i][j] = arr[j][i]
}
}
if (n > 1) tmp = this.rotate(tmp, n - 1)
return tmp
},
Vue で vee-validate を使用する方法
node を使用してドメイン間で Express+http-proxy-middleware を使用する詳細な手順
以上がvue を使用して 2048 ミニゲームを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。