一起看看vue实现打地鼠小游戏


当前第2页 返回上一页

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

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

<template>

 <p class="game">

 <h2>打地鼠游戏</h2>

 <p class="wraper">

 <p class="item" v-for="n in TOTAL" :key="n">

 <p :style="{'visibility': random === n ? 'visible' : 'hidden'}" @click="clickItem">{{n}}号地鼠</p>

 </p>

 </p>

 <p class="scoped">

 <p class="set">

 <p>设置参数</p>

 <p>

 速度: <input type="number" v-model="setSpeed">

 </p>

 <p>

 总数:<input type="number" v-model="setNum">

 </p>

 <p>

 <button @click="playGame">开始</button>

 </p>

 </p>

 <p class="count set">

 <h3>统计分数面板</h3>

 <h3>总数: {{TOTAL}}</h3>

 <h3>击中: {{clickNum}}</h3>

 <h3>击中率: {{level}}%</h3>

 </p>

 </p>

 </p>

</template>

  

<script>

  

export default {

 name: 'App',

 data () {

 return {

 clickFlag: true, // 单个地鼠只能点击一次

 setNum: 40, // 绑定设置地洞数量

 setSpeed: 1000, // 绑定设置地鼠出现速度

 speed: 2000, // 地鼠出现速度

 random: '', // 随机出现的地鼠位置

 TOTAL: 40, // 地鼠总数

 count: 0, // 统计总共出现了多少次地鼠同于判断不能大于总数

 clickNum: 0, // 点中地鼠统计

 timmerId: null

 };

 },

 computed: {

 // 统计打中的地鼠数量

 level: function () {

 let num = ((this.clickNum / this.TOTAL) * 100).toFixed(2) || 0;

 return num;

 }

 },

 created () {

 },

 mounted () {

 },

 methods: {

 // 开始游戏

 playGame () {

 this.random = '';

 this.speed = parseInt(this.setSpeed);

 this.TOTAL = parseInt(this.setNum);

 clearInterval(this.timmerId);

 this.timmerId = setInterval(() => {

 this.random = Math.floor(Math.random() * this.TOTAL + 1);

 this.clickFlag = true; // 开放点击

 this.count++;

 if (this.count >= this.TOTAL) {

 clearInterval(this.timmerId);

 }

 }, this.speed);

 },

 // 点击地鼠

 clickItem () {

 if (this.clickFlag) {

 (this.count < this.TOTAL) && this.clickNum++;

 this.clickFlag = false;

 }

 }

 }

};

</script>

<style lang="less" scoped>

.game {

 border: 1px solid #ccc;

 width: 1200px;

 padding: 10px;

 user-select: none;

 &::after {

 content: "";

 display: block;

 clear: both;

 }

 h2 {

 font-size: 16px;

 color: #eee;

 padding: 10px 0;

 margin-bottom: 20px;

 border-bottom: 1px solid #ccc;

 }

 .wraper {

 width: 900px;

 float: left;

 }

 .scoped {

 width: 260px;

 height: 540px;

 float: left;

 padding-left: 15px;

 border-left: 1px solid #ccc;

 h3 {

 font-size: 16px;

 color: #fff;

 }

 .set {

 height: 200px;

 width: 100%;

 border: 1px solid #ccc;

 p {

 padding: 10px;

 text-align: center;

 color: #fff;

 font-size: 16px;

 button {

 width: 90%;

 }

 }

 }

 .count {

 .set;

 margin-top: 20px;

 padding-top: 25px;

 text-align: center;

 line-height: 40px;

 h3 {

 font-weight:normal;

 }

 }

 }

 .item {

 display: inline-block;

 height: 100px;

 width: 100px;

 border-radius: 50px;

 margin: 0 10px 10px 0;

 text-align: center;

 line-height: 100px;

 font-size: 20px;

 border: 1px solid #ccc;

 p {

 height: 100%;

 background: #eee;

 border-radius: 50px;

 }

 }

}

</style>

相关图文推荐:js教程(图文)

以上就是一起看看vue实现打地鼠小游戏的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

怎么在vue.js插图片

vue.use方法怎么用

vue怎么引用css

vue兄弟组件传值有哪五种方法

详解vue中动态添加类名的方法

vue-router是什么

vue项目全局使用axios的方法介绍

4个很 nice 的vue router过渡动效,快来收藏!

详解vue中watch如何使用?watch用法介绍

vue-cli项目怎么使用vw单位?

更多相关阅读请进入《vue》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...