Hello 各位 V 友,还记得我吗?新作品《滑稽大作战》

2017-05-31 16:02:03 +08:00
 doggg

(刚刚发的帖子主题好像点错了没在首页显示,现在重开一贴,另外游戏出现的一点 bug 也修复好)

这段时间我重构了之前的弹球游戏,改名《滑稽大作战》。

这次使用了技术栈改用 Vue + Spring Boot + Spring MVC + JPA。没有使用 VueCli,有一些 es6 的东西,所以兼容性非常糟糕( Edge 都不兼容)。

此次的亮点是加入 Websocket,支持双人实时游戏。希望大家玩得开心。

总结的博客还没来得写。

操作方式: 点击中间灰色的滑稽图案它会提示去新浪授权,授权后可以开始游戏,并同时自动开启 Websocket,如果有人邀请你点击确定即可一同游戏。 游戏的按键只有 3 个:A W D (只有主邀方才能按 W 开始游戏哦)

地址: http://demo.leeys.top/demo2/

4749 次点击
所在节点    游戏开发
15 条回复
a1310747
2017-05-31 16:11:43 +08:00
你太滑稽了,服务器已经挂了
buir
2017-05-31 16:17:32 +08:00
http://demo.leeys.top/demo1/
还是石头剪刀布 深得我心。
CruelMoon
2017-05-31 16:25:20 +08:00
websocket 连接错误! qaq
doggg
2017-05-31 16:27:59 +08:00
@CruelMoon 大哥这错误应该是不会出现的把。除非你伪造了 token。或者你清除 localstorage
a1310747
2017-05-31 16:48:37 +08:00
@buir 队手是 null
Kilerd
2017-05-31 18:38:47 +08:00
哦,所以为啥还要新浪授权呢。
doggg
2017-05-31 19:02:38 +08:00
@Kilerd 其实之前就是不用授权的。当时不懂 oauth2。用新浪权当学习 Oauth2。
Hilong
2017-05-31 19:15:49 +08:00
按 d 没用啊,只能 a
realwangyibo
2017-05-31 19:28:46 +08:00
Mac 的 safari 可以兼容
doggg
2017-05-31 19:37:36 +08:00
@realwangyibo 谢谢报告,身边没苹果电脑没得测试。edge 没提醒什么错误,我也不知道哪里不兼容
@Hilong 没这回事吧,都可以的 AD
SingeeKing
2017-05-31 19:55:32 +08:00
@Hilong 我想说我之前也是这个问题的。。。Vimium 就好了
Sixzeroo
2017-06-01 00:22:43 +08:00
D 没用 无奈
doggg
2017-06-01 09:09:57 +08:00
@Sixzeroo addEventListener("keydown", function(e) {console.log(e.keyCode)}) 在控制台输入,然后在页面按下 AD 看看 keyCode 是不是 65 和 68 ? 难道你们那边是 97 和 100 ?
ChenPeiPei
2017-06-01 14:47:27 +08:00
doggg
2017-06-01 20:25:20 +08:00
感谢大家的提醒,现在问题终于发现了。我在这里分享给大家。
首先按照 oauth2 的流程,在经过用户同意授权后我根据新浪传递的 code 值向新浪获取用户信息,此时会返回(长达 2000 字符)信息,我从中提取去用户名,uid,简介三个字段,另外开发时对于新浪返回这么多的信息我也没在意,想着以后可能要用到,干脆就新建了 3000 长度的字段存储这段 json。在 @ChenPeiPei 的提醒下,查过 Tomcat 日志后才发现这些注册失败的用户他们的第一条微博里都有 emoji 表情,emoji 采用 4 字节存储,而服务器的 MySQL 使用 utf8,只支持 3 字节。导致数据库插入失败抛出异常。https://www.v2ex.com/t/137724 V2EX 创始人有关于 emoji 存储的讨论,我在本地尝试改用 utf8mb4 时能够解决问题,不过对于 jpa 的使用者来说比较糟糕,首先 innodb 引擎的索引默认最多 767 字节,utf8 编码下索引最多支持 255 ( 255*3=765 )字符,而 utf8mb4 编码下索引最多支持 191 个字符,当然这只是默认情况下,你能够自行修改,用过 jpa 的人都知道支持使用注解创建索引,但偏偏不能自定义索引的长度。基于以上考虑我没有选择改用 utf8mb4 编码,我 emoji-java 库来去除 emoji 表情。用法是 EmojiParser.removeAllEmojis('包含 emoji 的字符串')

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/364962

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX