uni-app(H5)拼图游戏

业务需求

给你一张图片,平均分成4份(左1),打乱顺序(注意,拆分后的单图只是水平方向上的位置切换,右1),用户移动图片,从右1还原成左1。
在这里插入图片描述

思路

一张图片分四份,怎么拆?
找UI要psd,拿到图后,用工具切出1,2,3,4位置的图,然后画页面布局好。
拆完怎么随机?

let puzzleArray= [
	{
		index:0,
		imgUrl:'game1.png'
	},
	{
		index:1,
		imgUrl:'game2.png'
	},
	{
		index:2,
		imgUrl:'game3.png'
	},
	{
		index:3,
		imgUrl:'game4.png'
	},
]
puzzleArray.sort(()=>{
	return Math.round(Math.random()) - 0.5;
})
<view v-for="(item,index) in arr"></view>

随机排列好,怎么移动?移动完怎么交换?

//利用移动端的touch事件 具体可查看项目源码
touchstart touchmove touchend

交完完怎么校验是否拼好了呢?

var tmpArr= puzzleArray.filter((item, index) => {
	if (index != item.index) {
		return true
	} else {
		return false
	}
})
tmpArr.length == 0 证明拼好了

功能实现了,但不友好。这只是4份,如果是9*9呢?81份!
怎么办?
在这里插入图片描述
精灵图

一张图分成4份:

let puzzleArray = [
    {
        "backgroundPosition":"background-position: 0.00% 0.00%",
        "index":0,
        "leftStart":0,
        "leftEnd":0,
        "topStart":0,
        "topEnd":0,
        "id":"game_1_puzzle_0"
    },
    {
        "backgroundPosition":"background-position: 100.00% 0.00%",
        "index":1,
        "leftStart":0,
        "leftEnd":0,
        "topStart":0,
        "topEnd":0,
        "id":"game_1_puzzle_1"
    },
    {
        "backgroundPosition":"background-position: 0.00% 100.00%",
        "index":2,
        "leftStart":0,
        "leftEnd":0,
        "topStart":0,
        "topEnd":0,
        "id":"game_1_puzzle_2"
    },
    {
        "backgroundPosition":"background-position: 100.00% 100.00%",
        "index":3,
        "leftStart":0,
        "leftEnd":0,
        "topStart":0,
        "topEnd":0,
        "id":"game_1_puzzle_3"
    }
]
puzzleArray.sort(() => {
		return Math.round(Math.random()) - 0.5;
	})

使用精灵图,无论多少份,我们只需要计算出每一块位置的background-position即可。
项目源码请移步:uniapp-component

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-app 是一种基于 Vue.js 的跨平台应用框架,它能够帮助开发者通过编写一次代码即可发布到包括微信小程序、支付宝小程序、百度智能云等在内的多种移动平台上。uni-appH5播放器组件允许开发者轻松地在应用程序中嵌入音频或视频播放功能。 ### uni-app H5 播放器的基本组成部分: 1. **音频组件**: 支持基本的音量调节、暂停、继续播放、上一首、下一首等功能,并提供API供自定义播放行为。 2. **视频组件**: 提供了播放、暂停、全屏显示、上下左右滑动控制进度等功能。支持多种视频格式,如 MP4 等,并且可以添加字幕文件。 3. **音频和视频控制界面**: 自带简洁美观的播放控件设计,也可以通过配置选项定制播放器外观。 4. **事件处理**: 提供了一系列事件回调机制,便于监听用户操作,如播放完成、暂停、错误发生等。 ### 使用步骤: 1. **安装 uni-app**:首先需要下载并安装 uni-app 开发环境及配套工具。 2. **引入播放器组件**: 在项目中引入所需的音频或视频播放器组件。通常 uni-app 已内置这些组件,只需按需导入即可。 3. **创建播放器实例**: 初始化播放器,指定播放资源、是否自动播放、初始音量等参数。 4. **集成到页面中**: 将播放器组件插入到需要展示音乐或视频的页面模板中。 5. **处理用户交互**: 配置事件监听函数,以便对用户的点击、拖拽、触控等操作做出响应。 6. **调试与优化**: 测试播放器的各项功能,检查性能和兼容性,针对不同设备进行适配调整。 ### 相关问题: 1. 如何在uni-app中自定义H5播放器的样式? 2. uni-app H5播放器如何处理流式音频/视频数据? 3. 当在不同环境下运行应用时,uni-app H5播放器会遇到哪些常见的兼容性问题?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值