【原】我是超级收银员,你敢来挑战吗
微信在最新的iPhone版应用中运营刷卡功能,为了推广该功能,小组成员自主开发了简单的超级收银员小游戏。第一次写前端游戏,严重意识到js写少了,趁这次恶补下,毕竟还年轻,感觉老了脑袋不好使。今天给大家分享本次游戏的学习成果,有兴趣的同学先扫描二维码挑战。
目录:
- 游戏思路
- 游戏场景
- 核心代码
游戏思路
本人很喜欢玩游戏,也玩过不少小游戏,5月份的时候我接触了手游《刀塔传奇》,好玩、有趣味性,让自己又爱又恨投入了时间和金钱,享受其中的乐趣,相信“好玩”和“商业化成功”是做一款游戏的目标,对于超级收银员游戏,市场上类似的有很多,而我们的目标很简单,只想把超级收银员做成一个好玩的小游戏,更有趣味性,思路如下:
玩法简单
游戏界面随机出现不同物品,点击条形码格加分,其它减分。
易上手
随便玩一二局游戏就知道怎么玩,学习成本低。
趣味性
游戏UI风格幽默,如鸟被击中后爆炸。
虐心
游戏从一开始简单快速到困难,容易出错,用户不服输。
分享文案拉仇恨
大部分用户第一次玩得的分数低于40,被授予“水货收银员”的称号,并被全球50%以上的收银员打败,求朋友来帮忙报仇;
分数大于40,被授予“超级收银员”的称号,求朋友来超越;
通过用户传播、推广。
游戏场景
来自咸菜大师的作品,微信版截图,原版界面更好看- -
核心代码
1.随机生成物品
九宫格中,随时出现物品,函数如下:
//产生随机数,例如从1~9数字中随机选择3个,getRandom(3,9) function getRandom(count,totle){var arr = [];var tmp;while(arr.length < count){tmp = parseInt(Math.random() * totle);if(arr.indexOf(tmp) == -1){arr.push(tmp);}}return arr; }
九宫格中,随时为li标签添加class:
var time;//游戏时间 var interval;//游戏运行的频率 //随机显示卡牌,剩余时间越少,卡片的切换速度和数量的递增 function _updateInterval(){//随机选择class 并随机为选择的li添加该class$("body").find(".game-main li").removeClass();var prize_config = ["bird","code","code","code","bird","code","bird","code","card"]; if((interval >= 800)){var classname_arr = getRandom("1","3");var li_arr = getRandom("1","9");for(var i = 0; i < 1; i ++){ var li_randomName = prize_config[classname_arr[i]];var li_randomLi = $(".game-main li")[li_arr[i]];$("body").find(li_randomLi).addClass("ico-"+li_randomName);}}//此处省略代码...if((interval < 50)){var classname_arr = getRandom("8","9");var li_arr = getRandom("8","9");for(var i = 0; i < 8; i ++){ var li_randomName = prize_config[classname_arr[i]];var li_randomLi = $(".game-main li")[li_arr[i]];$("body").find(li_randomLi).addClass("ico-"+li_randomName);}}//循环自身time_out = setTimeout(arguments.callee,interval); }
2.时间、分数控制
var time_minus; var time_out;//时间控制 function prize_time(){ time_minus = setInterval(_countdown,1000);time_out = setTimeout(_updateInterval,interval); } function _updateTime(minus){time -= minus; } //游戏时间更新 function _updateCount(){$("#game_time").text(time); } //游戏时间减少 function _countdown(){_updateTime(1);if(time >= 0){_updateCount();interval = time * 15;interval = Math.max(interval,550);}else if(time < 0){_showEnd(); time_minus && clearInterval(time_minus);time_out && clearTimeout(time_out);}}//分数控制,触摸到鸟和卡片的头像扣5分 $(".game-main li").on("tap",function(){var gameMainLi = $(this);gameMainLi.addClass("on");if(gameMainLi.hasClass("ico-bird")){_updateTime(5)}else if(gameMainLi.hasClass("ico-card")){_updateTime(5)}else if(gameMainLi.hasClass("ico-code")){val += 1;$("#game_order").text(val);} })
3.根据游戏结果的单数生成分享文案
首先要加载微信分享模块的接口,这里就不做介绍,分享到朋友圈的分案如下:
//时间到,显示结果 function _showEnd(){$(".game-main li").removeClass();$(".state").removeClass("hide");$(".state-order").text(val);//分享到朋友圈的文案txt2 = Math.min((((val / 80)*100)+ (Math.random() *99 / 100)).toFixed(2) ,100);if(val >= 40){$(".state").addClass("show-suc");txt1 = "我是超级收银员,你敢挑战么";//分享出去的标题share_img = "ico_share_suc.jpg"//分享出去的图标share_txt = "我用微信扫码刷卡,60秒收银"+val+"单,打败全球"+txt2+"%的收银员,你敢挑战么?"//分享出去的描述 }else{$(".state").addClass("show-fail");txt1 = "我是水货收银员,谁来替我报仇";share_img = "ico_share_fail.jpg"share_txt = "我用微信扫码刷卡,60秒收银"+val+"单,被全球"+(100.00-txt2)+"%的收银员打败/(ㄒoㄒ)/~~,谁来替我报仇"} }
总结
第一次完整开发一个小游戏,虽然不难,但也是折腾了好几天,以上一点想法,水平有限,不足之处,欢迎大家拍砖~
最后感谢前端大猫的大力协助~
作者:白树
出处:http://peunzhang.cnblogs.com/
【原】我是超级收银员,你敢来挑战吗相关推荐
- 『设计模式』就因为多收了我2块5,我追着收银员问是不是不懂设计模式--策略模式
23种设计模式+额外常用设计模式汇总 (持续更新) 今天去超市买东西,买了50多块钱的东西,然后收钱的时候他多收了,明明会员要打白金会员打9折,黄金会员95折,我是白金会员因该是9折. 我问她:&qu ...
- 超市收银软件测试自学,pos前台收银员培训 免费超市收银软件 视频教程
作为一个超市店铺收银员,特别是一个新手人员,在刚开始的时候,由于对收银软件不甚了解,常常在使用收银软件的时候,觉得很困惑,不知道如何下手开始.本文以星宇免费超市收银软件为例,一步步教您从安装.设置.入 ...
- 【详细讲解】某书店有一个收银员该书店最多允许n个购书者进入。将收银员和购书者看作不同的进程,其工作流程如下图所示。利用PV操作实现该过程,设置信号量S1,S2和Sn,初值分别为0,0,n.则图中a1
某书店有一个收银员该书店最多允许n个购书者进入.将收银员和购书者看作不同的进程,其工作流程如下图所示.利用PV操作实现该过程,设置信号量S1,S2和Sn,初值分别为0,0,n.则图中a1和a2应填入( ...
- 收银员英文缩写_如何在没有收银员的苹果商店购买东西
收银员英文缩写 If you visit an Apple Store in the hopes of buying a new iPhone, iPad, or MacBook, you have ...
- 在宜家兼职收银员创收
十年前大学毕业之后留在了沈阳市工作,那时候和朋友特别喜欢逛宜家,就为了去吃牛肉丸和一块钱的冰淇淋!有一天发现一家张贴一个招聘兼职收银员的广告,时薪9.5元!我和朋友就报名面试了! 宜家是瑞典的企业,需 ...
- Callnovo与Freshii合作推出的北美餐饮业颠覆性解决方案-远程真人视频收银员
新闻:Callnovo与Freshii合作推出了北美餐饮业颠覆性解决方案-远程真人视频收银员(Remote Cashier).颠覆性的远程真人视频收银员(Remote Cashier)解决方案在加拿大 ...
- AI收银员火了 阿里云AI产品体系首次全方位公开
昨天,刚刚上任的AI收银员就让阿里云官抖收获了第一条10万+,嗯就是下面这个视频. 人类在点餐速度上输给了AI,面对每秒速5个字的点单需求:"五个巧克力.两个香草拿铁,巧克力加奶油--&qu ...
- 现在连收银员也要考试了吗?
小编这里指的收银员是指收银员审核员哦!那么什么是收银员审核员呢?收银审核员简单来说就是核对人员,保证资金安全的人员.那跟普通的收银员有什么区别吗? 收银员指超市,商场,宾馆,酒店等经营场所给顾客结账的 ...
- [差分约束] AcWing-393 雇佣收银员 AcWing-2128 狡猾的商人 AcWing-3265 再卖菜
差分约束的大概样子 (大概) 差分约束一般是由特殊的n元一次不等式组组成的,它包含N个变量X1-Xn和M个约束条件,而且每个约束条件都是由两个变量做差组成的,形如,其中的ck是常数,它需要我们找到一组 ...
最新文章
- form表单提交编码的问题
- intellij idea 生成可执行jar 运行提示没有主清单属性
- KafKa-----acks参数对消息持久化的影响
- tessorflow基本语法
- webstorm和intellij idea下如何自动编译sass和scss文件
- windows server2008无法将本地文件复制到远程计算机,windows2008/2012无法从本地复制文件到远程服务器处理方法...
- 电子工程师,学会阅读Datasheet很重要!
- 不同映射方式下cache的失效率_详解发动机在不同工况下的喷油量控制方式
- Spark : DNS resolution failed for url in bootstrap.servers xx:9092
- gis 空间分析 鸟类栖息地选取_GIS空间分析专题一:鸟儿栖息地查找
- C++ public、protected、private 继承方式的区别
- poj 1503 Integer Inquiry (高精度运算)
- Windows环境下用nmake编译libevent
- Markdown学习笔记
- Cacti auth.php,linux下cacti的搭建之详细过程!
- 量子力学奇妙之旅-算符和电子自旋
- 第二十章 指针 二 为指针分配和释放空间(转)
- 读书笔记--《Effective C#》总结
- 小米笔记本windows插入电源无法充满电问题处理
- 观影指南(使用java语言模拟实现观影指南. 实现添加电影,查看电影列表,分类查看电影列表,显示人气最高的电影)