一起看看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实现打地鼠小游戏的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

html5实现一个简单的多人飞机游戏实例详解

vue.js前端框架有哪些特点

浅谈vue中引入jquery的方法

代码详解vue中key的作用示例

vue3.0有哪些新特性

vue 的 render 方法中 h 是什么?

vue中让子组件修改父组件数据的方法

vue有react native吗

单独引入vue.js文件怎么写组件

vue cli3引入bootstrap的方法介绍

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




打赏

取消

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

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

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

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

评论

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