Vue.js로 러시아 블록을 만들어 봤어요.
12709 단어 JavaScriptVue.js
개시하다
npm과 Vue는 가져오기가 완료된 전제에서 진행됩니다.
베일의 러시아 블록을 사용했다는 기사가 많이 없어서 이번에 써봤어요.
컨디션
다음과 같은 환경에서 구현됩니다.
OS: macOS High Sierra 10.13.6
Vue: 2.9.6
node: v10.7.0
npm: 6.2.0
컨텐트
Github 공개.
논리 주위를 간단하게 다음과 같이 기재하다
상술한 창고를 보면 바로 파악할 수 있다.
만드는 데 시간이 많이 걸리지 않았기 때문에, 완비되지 않은 곳이 있다면
연락 주시기 바랍니다.
논리/UI 주변
1. 외관
제가 CSS를 잘 못해서 사용Buefy해서 어느 정도 외관을 조정했습니다.
예: 시작할 때의 모드 화면
'b-'로 시작하는 구성 요소는 buefy에서 사용하는 구성 요소입니다.
또한 CSS 프레임워크bulma의 파생으로 인해
반에서 button과 is-ifo 등을 정의할 수 있습니다.
Main.vue
<b-modal :active.sync="startFlg"
:canCancel="false">
<button class="button is-info is-large"
@click="startFlg=false; start()">Game Start</button>
</b-modal>
2. 그리기SetInterval을 사용하여 드로잉합니다.
draw 함수를 사용하여 실제 그리기 처리를 합니다.
Main.vue
draw () {
this.init()
for (var b in this.block) {
console.log('draw b: ' + this.block[b].x + ', ' + this.block[b].y + ', ' + this.gameTable[this.block[b].y][this.block[b].x])
if (this.gameTable[this.block[b].y][this.block[b].x] === 0) {
console.log('draw: ' + this.block[b].x + ', ' + this.block[b].y)
this.gameTable[this.block[b].y].splice(this.block[b].x, 1, 1)
}
}
}
3. 블록 이동move 함수를 만들어 x 좌표와 y 좌표를 매개 변수로 이동합니다.
또한 이동 중인 블록은 1로 정의됩니다.
Main.vue
move (x, y) {
this.init()
for (var b in this.block) {
this.block.splice(b, 1, {x: this.block[b].x + x, y: this.block[b].y + y})
}
}
4. 블록 설정splice를 사용하여 "2"를 설정하면 블록이 설정된 것을 표시합니다.
Main.vue
setBlock () {
this.init()
for (var b in this.block) {
console.log('setBlock: ' + this.block[b].x + ', ' + this.block[b].y)
this.gameTable[this.block[b].y].splice(this.block[b].x, 1, 2)
}
}
5. 적목 제거2는 설정된 블록을 나타냅니다.
그게 일렬로 늘어날 때 해소 처리해.
unshift를 사용하여 삭제 처리를 합니다.
Main.vue
clearLine () {
var line = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
var clearLine = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for (var y = 0; y < this.gameTable.length; y++) {
if (this.arrayCheck(this.gameTable[y], line)) {
this.gameTable.splice(y, 1)
this.gameTable.unshift(clearLine)
this.score += 100
this.level -= 5
}
}
}
실행 결과
지운 후의 그리기와 조작 주위의 작업은 여전히 바키이지만 모양은 다음과 같다.
시간이 있으면 Fix를 원합니다.
Reference
이 문제에 관하여(Vue.js로 러시아 블록을 만들어 봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masa0209/items/f6c32b2d0cf029e4f098텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)