新年到,快来玩拼小老虎的游戏吧

简介: 今天的主题是拼图小游戏,主角是虎年最火,人见人爱花见花开的到处送祝福的小老虎。

微信截图_20220531143744.png

PK创意闹新春,我正在参加「春节创意投稿大赛」,详情请看:春节创意投稿大赛


前言

每到春节,各大游戏平台都会推出春节场景的特别版,而且各种奖励不断,我也在和平精英肝了好几天,作为一个喜欢玩游戏的人,从俄罗斯方块到魂斗罗再到4399的小游戏,再到QQ飞车、CF以及现在的CSGO,我也算是个游戏老玩家了,但是其实忘不了的是4399的益智类小游戏,当年小学时在微机课上没少跟同学一起抢着玩,既然玩了那么多那自己也想写一个简单的玩玩。废话不多说,接下来进入主题,今天的主题是拼图小游戏,主角是虎年最火,人见人爱花见花开的到处送祝福的小老虎。


一.效果图

微信截图_20220531144045.png二.实现思路


拼图游戏也叫九宫格游戏,所以是游戏主图会被切割成9等分,不然图片太大平铺不了整个table或者太小拼不起来,然后就是进入游戏主界面时初始化子图并打乱子图顺序,打乱顺序可以依靠随机数, 然后就是怎么才能算拼图成功的判断,这里是给子图的div分配id,当div对应的子图id与其父级div的id一致并且相同次数累加为9则代表拼图成功,还有就是游戏的重新开始,定义一个点击事件重新刷新页面或者再次调用初始化方法都可以实现。


三.功能分解


1.把图片切割成9等分

1)拼图的主图,尺寸长宽均为600px即可

.image_game{
    background-image:url(image/888.png);
}
复制代码

2)针对1)的主图进行9等分并用随机分布子图的方式打乱顺序

//对原图进行9等分切割然后打乱顺序
$(document).ready(function(){
    for(var i=0;i<100;i++){
        var tus=document.getElementsByClassName('image_game');
        var m=parseInt(Math.random()*9);
        var n=parseInt(Math.random()*9);
        var tusmp=tus[m].parentNode;
        var tusnp=tus[n].parentNode;
        tusmp.appendChild(tus[n]);
        tusnp.appendChild(tus[m]);
    }
});
复制代码

2.动作,捕捉对图片的一系列事件,包括拖动图片,图片互相覆盖

1)抓起,也可以理解为鼠标点击到子图,给每子图分配id,

//抓起
function drag(e){
    var id=e.target.id;
    e.dataTransfer.setData("id",id);//设置传输的是被抓id;
}
复制代码

2)图片拖拽后的互换

function over(e){
    e.preventDefault();
}
复制代码

3)互换后的判断,是否完成拼图的判断

function drop(e){
    var beizhuaId=e.dataTransfer.getData("id");//接受被抓id;
    var fangID=e.target.id;//所放位置的id;
    var beizhua=document.getElementById(beizhuaId);//获取被抓对象;
    var fang=document.getElementById(fangID);//获取放的对象;
    var f_beizhua=beizhua.parentNode;//分别找到对应的父节点
    var f_fang=fang.parentNode;
    //互换子
    f_beizhua.appendChild(fang);
    f_fang.appendChild(beizhua);
    //成功的判断方法
    win();
}
复制代码

4)判断是否拼图完成:每个父和子id名字序号相同,循环 ,累加count;

function win(){
    var tus=document.getElementsByClassName('image_game');
    var count=0;
    for(var i=0;i<tus.length;i++){
        var tu=tus[i];
        var fu=tu.parentNode;
        var tu_id=tu.getAttribute("id");
        var fu_id=fu.getAttribute("id");
        if(tu_id.replace("z-","")==fu_id.replace("f-","")){
            count++;
            console.log(count);
        }else{
            return;
        }
    }
    //累加到9时即代表图已经完全拼好即游戏结束
    if(count==9){
        alert("你成功了!祝你虎年行大运!");
    }
}
复制代码


四.项目链接,因为暂时没法部署,感兴趣的小伙伴可以拿到项目了自己玩玩哈


代码地址:gitee.com/ShaChengPo/…


最后


由于时间不允许,功能不是很完善,后续可以添加完成游戏时长,多关卡,简单、一般、困难、极难模式等功能

目录
相关文章
|
8月前
|
NoSQL Java 关系型数据库
蚂蚁金服+拼多多+抖音+天猫(技术三面)面经合集助你拿大厂offer
很多Java开发者面试之前,可能没有较长的工作时间或者较为丰富的工作经验,所以不知道互联网公司或者一线互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。针对这些的读者朋友,小编整理了一些知名大厂的面经,在这分享给读者朋友们参考,让即将面试或是有想法跳槽的读者朋友们了解一下一线大厂面试时都喜欢问那些问题。
为什么头条和抖音上这么多人月入好几万?
为什么头条和抖音上这么多人月入好几万?
|
程序员 开发者
福利 | 看直播赢奖品,快来加入吧!
大家好,阿里云开发者社区公开课频道一批新视频上线了!目前平台诚邀了一批在技术领域有所建树的视频博主,他们畅谈技术心得,洞察最新技术浪潮、分享实用coding经验,帮助更多程序员在技术领域持续学习成长!最让人难以置信的是,观看视频即可参与抽奖活动!快来加入我们,抱走惊喜!
10713 73
福利 | 看直播赢奖品,快来加入吧!
|
开发者
2024 乘风者计划全新启航!快来加入吧!
 2021年,阿里云开发者社区焕新升级,重磅推出“乘风者计划”!诚邀四海技术博主入驻社区,泼墨云间,书写天地。入驻社区,即可享丰厚权益! 新的一年,乘风者计划重磅升级!
250495 81
2024 乘风者计划全新启航!快来加入吧!
|
开发者
【开发者7日学】求职达人训练营上线啦~快来打卡赢好礼
阿里云培训中心联合开发者社区推出求职达人训练营7天学习活动,由阿里师兄们围绕行业介绍、职业选择、职场经验等内容进行分享,帮助大学生快速了解真实职场环境、提升实用求职技巧、培养必备职业素养等。
【开发者7日学】求职达人训练营上线啦~快来打卡赢好礼
|
开发者 智能硬件
答题闯关赛第一期正式开始,快来冲顶上榜
去阿里云app刷题,千道模拟题助力刷题备考,突破盲点,拿证+领奖,快乐双倍
733 2
答题闯关赛第一期正式开始,快来冲顶上榜
|
物联网 开发者 iOS开发
618程序员如何“狂欢”,来夏令营游学,开发者学堂送iPhone13、千元猫超卡
618组团夏令营活动,不仅可以在四个学习馆系统学习,还可以邀请好友组团一起游园逛馆,还有惊喜大礼iPhone 13 和千元天猫超市卡等你来拿哟~
1634 12
618程序员如何“狂欢”,来夏令营游学,开发者学堂送iPhone13、千元猫超卡
|
开发工具 Android开发 iOS开发
中秋快乐,快来摇一摇,摇出你的本命月饼吧
中秋节到了,吃月饼必不可少,为了让大家能够更愉快的过中秋,我花了一晚的功夫开发了一个摇一摇的页面,通过页面摇一摇,可以摇出各种各样的月饼,快来试试你的本命月饼是什么吧。
|
前端开发
新年到,一起听听这些新年歌曲
每年过年,不管是大街小巷还是春晚的舞台上,歌曲都是必不可少的,热热闹闹才是年嘛,那今天跟着我一起来用我这个半吊子前端水平开发的简易的手机音乐盒听听那些新年歌曲吧,我是90后所以歌都比较的老,但是越老的歌越有味道嘛,来吧看看这个简易手机音乐盒是怎么实现的。
257 0
新年到,一起听听这些新年歌曲
国庆福利 | 答题赢限量版阿里经济体纪念铜币啦
小程序商家参与问卷调研,即可参与抽取限量版阿里经济体纪念铜币。
1466 11
国庆福利 | 答题赢限量版阿里经济体纪念铜币啦