├── .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 | ![游戏界面](https://images.901web.com/2020-11-18-611605665816_.pic_hd.jpg) 25 | 26 | ![开始游戏](https://images.901web.com/2020-11-18-621605665817_.pic_hd.jpg) 27 | 28 | ![等级选择](https://images.901web.com/2020-11-18-631605665822_.pic_hd.jpg) 29 | 30 | ![挑战结果](https://images.901web.com/2020-11-18-641605666371_.pic_hd.jpg) 31 | 32 | 试玩一下基本就知道具体的流程啦~ 33 | 34 | 先贴上试玩游戏二维码,扫码即可开始调整哦. 35 | 36 | [挑战地址](http://pinpinle.901web.com/) 37 | 38 | ![二维码地址](https://images.901web.com/2020-11-18-661605666858_.pic.jpg) 39 | 40 | 41 | 42 | 本项目纯属娱乐,作为自己的一个业余项目在开发.另外在试玩的过程中.分割图片(3*3)的模块时候,比较简单,这种情况又弄了另外一个版本. 43 | 44 | **相邻的元素才可以移动** 45 | 46 | 做了一个判断,重新部署了一个版本.(`相邻元素才可以移动版本`) 47 | 48 | 49 | [挑战地址](http://pinpinle-step1.901web.com/) 50 | 51 | ![二维码地址](https://images.901web.com/2020-11-18-671605667550_.pic.jpg) 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 | 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 | 6 | 7 | 70 | 71 | -------------------------------------------------------------------------------- /src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 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 | --------------------------------------------------------------------------------