【原】我是超级收银员,你敢来挑战吗

微信在最新的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/

时间: 2024-08-03 11:06:02

【原】我是超级收银员,你敢来挑战吗的相关文章

网上书店收银员的源代码?

问题描述 网上书店收银员的源代码? 解决方案 解决方案二:路过帮顶=============11月6日,论坛升级公告,积分已经做了调整!http://topic.csdn.net/u/20081107/11/b27dc75f-14b1-4594-9de3-5b18d9e36a11.html此次调整增加了两个新的可用分获取渠道:1:帖子被推荐(加精)后,帖主可以获得88分的可用分奖励:2:帖子结帖后会返还帖主50%的悬赏分,无满意结帖不返还分数:3:接下来会不断增加新的可用分获取途径,比如参与活动

公司电脑系统有漏洞收银员“偷”了38000元

利用电脑系统漏洞,公司前台收银员先后侵占公司38000元.本以为自己做得天衣 无缝,却被公司发现了端倪--铁东某房地产开发公司的张经理最近发现公司账目 有点异常.查来查去,公司的账上就是少了38000元.公司前台负责收银的小王老家在浙江,已经离开了公司.小王之前具体负责汇款等相关的业务,为详细了解公司账目的详细情况,张经理给小王打了电话,可对方始终处于关机状态.公司觉得小王挺可疑, 于是报了案.在铁东公安分局园林派出所和分局经侦大队等相关部门的共同努力下,民警 终于发现了犯罪嫌疑人王某的行踪."

店长收银员勾结侵占营业款呷哺多分店负责人被捕

主管.分店店长.收银员合伙 小票上做手脚拿走差额 涉案金额近20万 呷哺呷哺揪出9名"内鬼" 本市呷哺呷哺快餐连锁店的多家分店负责人.收银员及区域主管,涉嫌职务侵占被抓捕到案. 记者今天获悉,9名涉案人员因涉嫌职务侵占已被朝阳警方刑拘. 案发:总部收到一封匿名举报信 呷哺呷哺(微博)餐饮有限公司是一家以涮锅为主要风格的快餐连锁店,在全市有200余家分店. 今年8月,该连锁店总公司收到一封匿名举报信,称朝外分店店长与收银员相互勾结,采取退单方式侵占公司营业款.接到匿名信后,总公司对该店账

超市招聘收银员来了不少本科生

四川商务人才招聘会昨在省科技馆举行,近4000岗位引来1万多人应聘 家乐福招收银员,只要求高中学历,但投简历的不少是大学本科生:一投资公司招区域经理,一名曾经的煤矿副矿长也来递简历.昨日,2009年四川商务人才招聘会在省科技馆举行.169家企业.近4000个岗位吸引了1万多人来应聘.企业现场收到6872份简历,其中现场达成录用意向的有1563人. 44岁的煤矿副矿长 来投资公司应聘 此次招聘会由省商务厅主办,9时30分正式开始,但9时不到,省科技馆门口就已排起了5列30多米长的纵队. "我们公司

两起利用木马程序破坏收银系统的“黑客”案

本报讯 (记者杨佳彬 通讯员李肇兴 实习生林幼真)将木马植入网吧收银系统,篡改收银记录,后秘密窃取收银款.昨日,市公安局公共信息网络安全监察支队向媒体披露了两起利用木马程序破坏收银系统的"黑客"案,7名犯罪嫌疑人因涉嫌破坏计算机信息系统罪被警方刑事拘留. 案发 交流群露马脚 黑客团伙现身 近日,泉州警方在日常工作中发现,网络上有不少"网吧管理员技术交流群",而这些交流群时常讨论一些如何窃取网吧收银款的话题.为了探明真相,民警随即介入调查.与此同时,警方接到线索举报称

【设计模式】【门面模式,收银-厨师-服务,用户就餐】

/** * Description: * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a> * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Da

推荐自己用的[商店管家收银管理系统专业版]

软件介绍: 商店管家收银管理系统是专门针对POS收银.商店店主设计开发,集商品进销存.帐目管理.客户 信息于一体的店主管理软件.功能实用,操作简单! 功能实用.集于一体 提供商店管理必备的商品进销存管理.客户信息管理.帐目管理.备忘录提醒等功能. 具备邮件发 送.快递单打印.帐目统计等辅助功能. 推荐自己用的[商店管家收银管理系统专业版] 功能特点: ---------------------------------------------------------- 1.收银界面友好美观,前台收

数据库-超市收银管理系统用java语言编写程序

问题描述 超市收银管理系统用java语言编写程序 超市收银管理系统 要求:使用图形用户界面. 由收银员输入顾客的会员卡卡号(若有卡).所购商品的货号等.从数据库中取出有关价格信息,再把这些信息返回给收银台.同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询. 另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息.如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠 解决方案 参考:http://down.51cto.

餐饮管理软件饭菜先生图文使用指南基础操作(二)前台收银

饭菜先生,http://www.aliyun.com/zixun/aggregation/18395.html">完全免费的餐饮收银管理软件,国内中小餐饮软件的最佳软件. 适合各类中小型餐馆,是快餐店.中餐馆.西餐扒房.火锅店.羊肉汤锅.家常菜馆.私房菜馆的首选. 软件下载:饭菜先生 v3.8中文版 安 装说明:首先执行饭菜先生的安装程序进入软件安装向导界面,程序默认安装路径为"C:\Proogram Files\饭菜先生",如想装到其他目录可点击"更改&qu