当前位置: 首页 > 科技观察

H5小游戏开发教程

时间:2023-03-13 00:54:09 科技观察

中页面基础布局的开发本文我们将完成页面基础布局的开发。下面给大家展示一下我们本文实现的界面,如下图所示:首先在components文件夹下创建10个文件夹,分别是:2048、llk、maze、mine、pintu、snake、sudoku、tetris、wzq、xxk;然后,创建一个index.js文件;然后,在刚刚创建的10个文件夹中分别创建一个Index.vue文件。文件内容类似于下面的代码,其中2048是所属文件夹的名称。此代码只是一个占位符,稍后将被我们实际可玩的游戏所取代。现在,我们在components文件夹下的index.js文件中写入下面的代码很简单,童鞋们看得懂吗?我喜欢在JS中使用文档注释。文档注释可以让编辑器的语法提示更加智能,写代码不容易出错。对文档注释不熟悉的童鞋可以在头条搜索jsdoc学习文档注释的语法;下面的文档评论都添加了说明,希望童鞋们能够看懂。/***@typedefGame定义了一个类型,我们称之为游戏类型*@property{string}name声明了一个属性名,游戏的名字*@property{import('vue').AsyncComponentLoader}component异步组件loader*//**@type{object.}声明类型为对象类型,属性名称为字符串,值为游戏类型*/exportconstgameMap={2048:{name:'2048',component:()=>import('./2048/Index.vue')},llk:{name:'连连看',component:()=>import('./llk/Index.vue')},maze:{name:'走出迷宫',component:()=>import('./maze/Index.vue')},mine:{name:'Minesweeper',component:()=>import('./mine/Index.vue')},pintu:{name:'puzzle',component:()=>import('./pintu/Index.vue')},snake:{name:'snake',component:()=>import('./snake/Index.vue')},sudoku:{name:'Sudoku',component:()=>import('./sudoku/Index.vue')},tetris:{name:'Tetris',component:()=>import('./tetris/Index.vue')},wzq:{name:'五子棋',组件:()=>import('./wzq/Index.vue')},xxk:{name:'小小看',component:()=>import('./xxk/Index.vue')}}/***@param{string}id声明一个参数:游戏ID*@returns{游戏}声明返回值类型:game*/exportconstgetGame=id=>gameMap[id]现在,我们在src文件夹下创建一个文件夹layouts,用来存放布局组件,我们在这个文件夹下创建一个Main。vue文件,该组件定义了2个props:title用于定义头部显示的标题,hasBack用于定义是否包含返回按钮,我们在main标签下定义了一个slot插槽,用于渲染游戏;本系列教程重点介绍JS部分,HTML和CSS比较简单,我假装童鞋看得懂,就不讲了;文件源代码如下:.ui-layout-main{height:100vh;最大宽度:768px;保证金:0自动;显示:弹性;弹性方向:列;&_header{高度:42px;显示:弹性;对齐项目:居中;背景色:#2196f3;颜色:#fff;填充:015px;}&_title{flex:1;文本对齐:居中;字体大小:16px;字母间距:.1em;}&_btn-back{光标:指针;}&_main{flex:1;高度:0;填充:.8em;溢出-y:自动;背景色:#e3f2fd;}}然后,我们打开views文件夹下的Home.vue文件,替换为如下代码:.page-home{&_games{border-radius:4px;背景色:#fff;框阴影:01px3pxrgba(0,0,0,0.2),01px1pxrgba(0,0,0,0.14),02px1px-1pxrgba(0,0,0,0.12);}&_game-item{&:not(:last-child){border-bottom:1pxsolid#dcdee2;}a{显示:块;填充:10px;颜色:#515a6e;过渡:背景颜色.2s;&:hover{背景颜色:#f5f5f5;}}}}然后,打开views文件夹下的Game.vue文件,替换成如下代码在Vue3中,如果component组件的is属性绑定了异步组件,异步组件加载器必须传递给defineAsyncComponent函数,defineAsyncComponent函数的返回值必须绑定is属性,否则异步componentload直接绑定了router,什么都不渲染,并抛出警告;在这个路由组件中,我们通过路由参数id渲染不同的游戏;感谢阅读!以上就是我们文章的全部内容。这些代码是不是很简单?童鞋阅读起床容易吗?