├── .gitignore
├── README.md
├── babel.config.js
├── package-lock.json
├── package.json
├── public
├── favicon.ico
└── index.html
└── src
├── App.vue
├── assets
└── images
│ ├── 2020-10-22-pic1.jpeg
│ ├── 2020-10-22-pic2.jpeg
│ ├── 2020-10-22-pic3.jpeg
│ ├── 2020-10-22-pic4.jpeg
│ ├── 2020-10-22-pic47.jpeg
│ ├── 2020-10-22-pic5.jpeg
│ ├── 2020-10-22-pic7.jpeg
│ ├── 2020-10-22-pic8.jpeg
│ ├── caixushen.jpg
│ ├── code.jpg
│ ├── logo.png
│ ├── re.jpeg
│ ├── share.png
│ ├── timg.jpeg
│ ├── timg2.jpeg
│ ├── timg3.jpeg
│ ├── timg4.jpeg
│ ├── timg6.jpeg
│ └── yang.jpeg
├── components
├── Cutdown.vue
└── HelloWorld.vue
└── main.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | pnpm-debug.log*
15 |
16 | # Editor directories and files
17 | .idea
18 | .vscode
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 拼图小游戏项目说明:(vue版本)
2 |
3 | ## Project setup
4 | ```
5 | npm install
6 | ```
7 |
8 | ### Compiles and hot-reloads for development
9 | ```
10 | npm run serve
11 | ```
12 |
13 | ### Compiles and minifies for production
14 | ```
15 | npm run build
16 | ```
17 |
18 | ### 拼拼乐(拼图小游戏)开发
19 |
20 | 在上班的地铁上面,某天早上看到了订阅公众号一篇文章,介绍的是一个移动端的拼图小游戏.试玩了一下,感觉还挺有意思的.于是周末抽空研究了一下.问了下作者,他用的是原生JS写的一版.我自己本身在用VUE,于是看了下游戏的大体效果,决定尝试用VUE改写一版玩一下.
21 |
22 | 于是说干就干,尝试着参考之前的项目,看了下有哪些效果.就用VUE开始改写了起来.其实这个游戏是一个很常见的拼图小游戏,就是选择一张图片,然后打乱,最后挪动图片拼成一张完整的图片,用`canvas`生成挑战结果页面,显示挑战成功~
23 |
24 | 
25 |
26 | 
27 |
28 | 
29 |
30 | 
31 |
32 | 试玩一下基本就知道具体的流程啦~
33 |
34 | 先贴上试玩游戏二维码,扫码即可开始调整哦.
35 |
36 | [挑战地址](http://pinpinle.901web.com/)
37 |
38 | 
39 |
40 |
41 |
42 | 本项目纯属娱乐,作为自己的一个业余项目在开发.另外在试玩的过程中.分割图片(3*3)的模块时候,比较简单,这种情况又弄了另外一个版本.
43 |
44 | **相邻的元素才可以移动**
45 |
46 | 做了一个判断,重新部署了一个版本.(`相邻元素才可以移动版本`)
47 |
48 |
49 | [挑战地址](http://pinpinle-step1.901web.com/)
50 |
51 | 
52 |
53 |
54 | 代码是很无趣的.要用无趣的代码做点有趣好玩的东西出来.哈哈~
55 |
56 | 当然,在开发过程中有很多JS基础知识,也遇到很多问题,例如图片切割,打乱排序,生产canvas结果页面,切换等级页面样式,倒计时等等.
57 |
58 | 项目做的比较粗糙,也存在很多问题.遇到问题慢慢的尝试解决,并慢慢的积累经验,做这种小游戏还是很考验基本功的.希望也能巩固自己的JS基础知识,提升能力.
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pinpinle",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "serve": "vue-cli-service serve",
7 | "build": "vue-cli-service build",
8 | "lint": "vue-cli-service lint"
9 | },
10 | "dependencies": {
11 | "core-js": "^3.6.5",
12 | "vue": "^2.6.11"
13 | },
14 | "devDependencies": {
15 | "@vue/cli-plugin-babel": "~4.5.0",
16 | "@vue/cli-plugin-eslint": "~4.5.0",
17 | "@vue/cli-service": "~4.5.0",
18 | "babel-eslint": "^10.1.0",
19 | "eslint": "^6.7.2",
20 | "eslint-plugin-vue": "^6.2.2",
21 | "vue-template-compiler": "^2.6.11"
22 | },
23 | "eslintConfig": {
24 | "root": true,
25 | "env": {
26 | "node": true
27 | },
28 | "extends": [
29 | "plugin:vue/essential",
30 | "eslint:recommended"
31 | ],
32 | "parserOptions": {
33 | "parser": "babel-eslint"
34 | },
35 | "rules": {}
36 | },
37 | "browserslist": [
38 | "> 1%",
39 | "last 2 versions",
40 | "not dead"
41 | ]
42 | }
43 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | <%= htmlWebpackPlugin.options.title %>
10 |
15 |
26 |
27 |
28 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
17 |
18 |
30 |
--------------------------------------------------------------------------------
/src/assets/images/2020-10-22-pic1.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/2020-10-22-pic1.jpeg
--------------------------------------------------------------------------------
/src/assets/images/2020-10-22-pic2.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/2020-10-22-pic2.jpeg
--------------------------------------------------------------------------------
/src/assets/images/2020-10-22-pic3.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/2020-10-22-pic3.jpeg
--------------------------------------------------------------------------------
/src/assets/images/2020-10-22-pic4.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/2020-10-22-pic4.jpeg
--------------------------------------------------------------------------------
/src/assets/images/2020-10-22-pic47.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/2020-10-22-pic47.jpeg
--------------------------------------------------------------------------------
/src/assets/images/2020-10-22-pic5.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/2020-10-22-pic5.jpeg
--------------------------------------------------------------------------------
/src/assets/images/2020-10-22-pic7.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/2020-10-22-pic7.jpeg
--------------------------------------------------------------------------------
/src/assets/images/2020-10-22-pic8.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/2020-10-22-pic8.jpeg
--------------------------------------------------------------------------------
/src/assets/images/caixushen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/caixushen.jpg
--------------------------------------------------------------------------------
/src/assets/images/code.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/code.jpg
--------------------------------------------------------------------------------
/src/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/logo.png
--------------------------------------------------------------------------------
/src/assets/images/re.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/re.jpeg
--------------------------------------------------------------------------------
/src/assets/images/share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/share.png
--------------------------------------------------------------------------------
/src/assets/images/timg.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/timg.jpeg
--------------------------------------------------------------------------------
/src/assets/images/timg2.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/timg2.jpeg
--------------------------------------------------------------------------------
/src/assets/images/timg3.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/timg3.jpeg
--------------------------------------------------------------------------------
/src/assets/images/timg4.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/timg4.jpeg
--------------------------------------------------------------------------------
/src/assets/images/timg6.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/timg6.jpeg
--------------------------------------------------------------------------------
/src/assets/images/yang.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pybyongbo/vue-pinpngle/082904ca0f0df00d88a2efe374b15045a46a30bc/src/assets/images/yang.jpeg
--------------------------------------------------------------------------------
/src/components/Cutdown.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
70 |
71 |
--------------------------------------------------------------------------------
/src/components/HelloWorld.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{ msg }}
6 |
7 |
8 |
![]()
9 |
10 |
15 |
16 |
开始游戏
17 |
18 |
19 |
20 |
21 |
倒计时:{{dealtime}}
22 |
23 |
27 |
重新排序
28 |
返回
29 |
30 |
31 |
32 |
33 |
恭喜闯关成功~!
34 |
用时: {{180-dealtime}}s
35 |
生成战绩海报
36 |
再来一次
37 |
38 |
39 |
40 |
41 |
![图片]()
42 |
重新再来
43 |
我要分享
44 |
45 |
46 |
47 |
48 |
49 |
50 |
396 |
397 |
398 |
634 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 |
4 | Vue.config.productionTip = false
5 |
6 | new Vue({
7 | render: h => h(App),
8 | }).$mount('#app')
9 |
--------------------------------------------------------------------------------