本文实例为大家分享了vue实现简易打地鼠游戏的具体代码,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<!doctype html>
< html >
< head >
< meta charset = "utf-8" >
< title >打地鼠简易版</ title >
< script src = "js/vue.js" ></ script >
< style type = "text/css" >
*{margin: 0;padding: 0;}
#main{border: 1px solid #000;}
.ds{ float: left;border: 1px solid #000;box-sizing: border-box;}
.dd{background-color: #3e8f3e;}
</ style >
</ head >
< body >
< div id = "app" >
< div >倒计时{{t}}</ div >
< div >分数{{fs}}</ div >
< div v-if = "t<=0" >游戏结束</ div >
< div id = "main" v-bind:style = "{width:x*w+'px',height:y*h+'px'}" >
< div class = "ds" v-bind:class = "{dd:v==s}" v-on:click = "da(v)" v-for = "v in x*y" v-bind:style = "{width:w+'px',height:h+'px'}" ></ div >
</ div >
</ div >
< script type = "text/javascript" >
var vm=new vue({
el:'#app',
data:{
x:5,//地鼠格列数
y:5,//地鼠格行数
w:100,//地鼠格宽度
h:100,//地鼠格高度
t:10,//时间
dsq:null,
dsq2:null,
s:0,//地鼠位置
fs:0,
ys:true,//用于解决游戏结束点击继续得分问题
ty:false//用于解决连击得分问题
},
methods:{
da(i){
if(this.s==i && this.ys && this.ty){
this.ty=false;
this.fs++;
}
}
},
created(){
this.dsq=setinterval(()=>{
this.t--;
if(this.t<=0){
clearinterval(this.dsq);
clearinterval(this.dsq2);
this.ys=false;
}
},1000);
this.dsq2=setinterval(()=>{
this.ty=true
this.s=parseint(math.random()*this.x*this.y);
},2000);
}
})
</ script >
</ body >
</ html >
|
简易升级版,多个地鼠,打对得分,打错扣分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<!doctype html>
< html >
< head >
< meta charset = "utf-8" >
< title >打地鼠简易版升级版</ title >
< script src = "js/vue.js" ></ script >
< style type = "text/css" >
*{margin: 0;padding: 0;}
#main{border: 1px solid #000;}
.ds{ float: left;border: 1px solid #000;box-sizing: border-box;}
.dd{background-color: #3e8f3e;}
.dc{background-color: #ac2925;}
</ style >
</ head >
< body >
< div id = "app" >
< div >倒计时{{t}}</ div >
< div >分数{{fs}}</ div >
< div v-if = "t<=0" >游戏结束</ div >
< div id = "main" v-bind:style = "{width:x*w+'px',height:y*h+'px'}" >
< div class = "ds" v-bind:class = "[arr2[arr1.indexof(v-1)]==1?'dd':'',arr2[arr1.indexof(v-1)]==0?'dc':'']" v-on:click = "da(v-1)" v-for = "v in x*y" v-bind:style = "{width:w+'px',height:h+'px'}" >{{arr2[arr1.indexof(v-1)]}}</ div >
</ div >
</ div >
< script type = "text/javascript" >
var vm=new vue({
el:'#app',
data:{
x:5,
y:5,
w:100,
h:100,
t:30,
dsq:null,
dsq2:null,
s:4,
fs:0,
ys:true,
arr1:[],
arr2:[],
arr3:[]
},
methods:{
da(i){
if(this.arr1.includes(i)&& this.ys && !this.arr3.includes(i)){
this.arr3.push(i);
if(this.arr2[this.arr1.indexof(i)]==1){
this.fs++;
}else{
this.fs--;
}
}
},
sjs(){
var cc=parseint(math.random()*this.x*this.y);
if(this.arr1.includes(cc)){
this.sjs();
}else{
this.arr1.push(cc);
this.arr2.push(parseint(math.random()*2));
}
}
},
created(){
this.dsq=setinterval(()=>{
this.t--;
if(this.t<=0){
clearinterval(this.dsq);
clearinterval(this.dsq2);
this.ys=false;
}
},1000);
this.dsq2=setinterval(()=>{
this.arr1=[];
this.arr2=[];
this.arr3=[];
for(var i=0;i< this.s ;i++){
this.sjs();
}
},2000);
}
})
</script>
</ body >
</ html >
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/n994298535/article/details/90724918