项目:漫漫H5游戏-抓娃娃机

项目信息

  1. 时间:2016.2-2016.3
  2. 该项目是为漫漫App做营销推广的方式之一;在CentOS+Tomcat+JDK+MySQL的服务器环境下用Html5 canvas+JQuery+Java等语言实现;
  3. 项目人数:项目经理1+程序员1+设计师1
  4. 负责与客户沟通、项目推进及管理、数据库设计、服务器管理等。

第一版需求

第一版需求设计图

微信H5游戏——吊娃娃(第一版)

  1. 进入游戏界面显示有两个按钮,一个是“PLAY”即开始游戏,另一个为“HELP”即游戏帮助.
  2. 点击“PLAY”按钮进入游戏,在界面上方有一个机械抓手匀速移动,下方堆积着为网络红人定制的漫画形象娃娃用户
    在10秒的游戏时间内,点击屏幕下方的“抓取”按钮,机械抓手随即下降并抓取下方娃娃(设置为百分百抓取成功).
  3. 抓取成功后在当前页面弹出新页面,显示与抓取的娃娃相应网络红人的动漫头像以及其定制小故事,在其下方有“上 传我的照片”按钮.
  4. 点击“上传我的照片按钮”,用户可选择从相册上传一张相片和拍摄一张相片,上传成功后跳转新界面,生成与用户上传照片相似的漫画头像(可预先设置10中漫画头像,随机生成),并在下方简单介绍该形象的特征.
  5. 在生成用户漫画形象的界面右上方显示“点击右上角,分享到朋友圈”字样及箭头,引导用户转发分享.

第二版需求—更改需求

第二版需求

区分用户是否是首次访问

增加后台统计量功能

用户可以选择不一样的时间段查看相应的那些统计过的信息

数据库设计

Table1:

字段名字段名称字段类型字段长度字段说明
IDnumber(int)自动增长(主键)
UserName用户名称Varchar50
UserPWD用户密码Varchar50
IsRoot是否为管理员bool

Table2:

字段名字段名称字段类型字段长度字段说明
IDnumber(int)自动增长(主键)
IPIP地址char15必须是数字和英语点
IsDown是否下载bool
IsShare是否分享bool是否分享到朋友圈
TerminalWay终端方式char5只有三个值:phone,PC,None
Date访问日期date

说明:

需要统计显示的信息

  1. 虚下载量 实际的下载量加上 [0 1]随机数的四舍五入
  2. 实下载量 实际的下载量(Table1的IsRoot为True时可见)
  3. 总访问量 无论来自哪个终端(统计Table2的记录个数)
  4. PC访问量 电脑终端的访问量(统计Table2的IsShare为PC的记录个数)
  5. 手机端访问量 手机端的访问量(统计Table2的IsShare为Phone的记录个数)
  6. 分享量 分享到朋友圈的次数(统计Table2的IsShare为True的记录个数)

第三版需求——追加需求

流程:

点击“上传照片,生成专属形象”后,选择照片,点击完成,自由的伸缩自己的照片对准镂空娃娃的脸后,点击确认后生成一张我和娃娃的合成体图片,为图片命名后,可点击分享到朋友圈或转发给朋友们后,朋友们(包括自己)点击后看到他合成的娃娃后,点击玩游戏,跳转到游戏首页,点击Play后,下方的第五个娃娃的头像变成了他合成的娃娃,当抓到的是他合成的娃娃后,其动漫故事为四个动漫故事中随机一个;以此循环.

新页面元素:

1,“自由的伸缩自己的照片对准镂空娃娃的脸”的页面中上方是镂空娃娃和自己照片的交叠,下方有“确认”按钮
2,“生成一张我和娃娃的合成体图片”的页面中上方是合成图片,下方有“请为图片命独一无二的名字”输入框和“提交信息”按钮
3,承接上述第二点,点击“提交信息”按钮后的页面,上方为图片名称,中间为合成体图片,下方有两个按钮,分别是“下载漫漫APP查看更多漫画”和“玩游戏”(分享或转发出去的页面)

逻辑:

1,不是由分享或转发进入的游戏的人,看到的第五个娃娃是现在这个大饼脸娃娃,只要是点击朋友分享或转发出来的人点击玩游戏,第五个娃娃就是发起分享或转发人合成的图片
2,只有点击“提交信息”按钮后,合成体的图片才存储在本地服务器上,且数据库表PicTable增一条数据
3,点击“提交信息”按钮后验证输入的图片是否相重或在输入后未提交前就验证,请随意,你定即可
4,曾上传过照片的玩家依然还可以继续上传照片,生成新的合成图片继而分享或转发出去

难点解决

问题1:两张图(其中一张是用户伸缩过)把它们合成一张图PNG(背景去掉)?
解决关键词:Canvas
参考Url: http://jackgit.github.io/ImageEditor/app/demo.html (两张图(其中一张是用户伸缩过)把它们合成一张图的demo)
https://github.com/zwhu/blog/issues/2 (白色背景的 JPEG 图片转成透明的 PNG 图片)
http://freeyiyi.com/canvas-1

问题2:怎么区分是不是由分享或转发进入的游戏的人
解决思路:游戏首页的url是 …../game/index.jsp?picid=数值,判断picid数值就行,默认第五个大饼脸娃娃的picid=1;
分享或转发的页面(即新页面元素的第三点)的url是 …../game/XXXX.jsp?picid=数值,其数值非1
PicTable表PicID=1的记录是存储在本地服务器上的第五个大饼脸娃娃,这条记录永远存在(不许人工删除)

数据库:

PicTable
字段名字段名称字段类型字段长度字段说明
PicIDnumber(int)自动增长(主键)
PicName图片名称Varchar50不可重复
PicUrl图片UrlVarchar150将合成的图片储存在本地服务器
Date日期date
Table2:(存储IP的表增加字段)
字段名字段名称字段类型字段长度字段说明
PicIDnumber(int)外键,PicTable的PicID

完成效果

访问域名:http://www.moredoer.com/game/index?picname=5f.png

游戏首页

游戏首页

游戏中

合成图片

通过别人分享玩的游戏

点击别人分享进入的游戏


需求还在继续更改中,已入佛门深似海

最终版效果图

游戏首页

帮助

抓娃娃

第二次访问结果效果

用户性别选择

选择照片上传提示

人脸识别失败后手动对准娃娃脸部

确认位置

由自己分享出去后的抓娃娃效果

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
<!DOCTYPE html> <html> <head> <title>随句子生成器</title> <meta charset="utf-8"> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: #f6f6f6; } h1 { text-align: center; margin-top: 50px; color: #333; } .container { display: flex; flex-direction: column; align-items: center; margin-top: 50px; } .btn { padding: 10px 20px; background-color: #333; color: #fff; border: none; border-radius: 5px; cursor: pointer; font-size: 18px; margin-bottom: 30px; } .result { font-size: 24px; text-align: center; color: #333; margin-bottom: 50px; } </style> </head> <body> <h1>随句子生成器</h1> <div class="container"> <button class="btn" onclick="generate()">生成句子</button> <p class="result" id="result"></p> </div> <script> function generate() { const sentences = [ "人生如梦,一樽还酹江月。", "富贵不能淫,贫贱不能移,威武不能屈。", "青山遮不住,毕竟东流去。", "天生我材必有用。", "千里之堤毁于蚁穴,九层之台起于垒土。", "路漫漫其修远兮,吾将上下而求索。", "燕雀安知鸿鹄之志哉。", "天行健,君子以自强不息。", "读书破万卷,下笔如有神。", "人生自古谁无死,留取丹心照汗青。", "知之者不如好之者,好之者不如乐之者。", "天将降大任于斯人也,必先苦其心志,劳其筋骨。", "岁月不待人,时光荏苒。", "君子坦荡荡,小人长戚戚。", "欲穷千里目,更上一层楼。", "不积跬步,无以至千里;不积小流,无以成江海。", "书山有路勤为径,学海无涯苦作舟。" ]; const randomIndex = Math.floor(Math.random() * sentences.length); const result = document.getElementById("result"); result.innerText = sentences[randomIndex]; } </script> </body> </html>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值