V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
doggg
V2EX  ›  游戏开发

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

  •  1
     
  •   doggg · 2017-05-31 16:02:03 +08:00 · 4864 次点击
    这是一个创建于 2726 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    总结的博客还没来得写。

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

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

    15 条回复    2017-06-01 20:25:20 +08:00
    a1310747
        1
    a1310747  
       2017-05-31 16:11:43 +08:00
    你太滑稽了,服务器已经挂了
    buir
        2
    buir  
       2017-05-31 16:17:32 +08:00
    http://demo.leeys.top/demo1/
    还是石头剪刀布 深得我心。
    CruelMoon
        3
    CruelMoon  
       2017-05-31 16:25:20 +08:00
    websocket 连接错误! qaq
    doggg
        4
    doggg  
    OP
       2017-05-31 16:27:59 +08:00
    @CruelMoon 大哥这错误应该是不会出现的把。除非你伪造了 token。或者你清除 localstorage
    a1310747
        5
    a1310747  
       2017-05-31 16:48:37 +08:00
    @buir 队手是 null
    Kilerd
        6
    Kilerd  
       2017-05-31 18:38:47 +08:00
    哦,所以为啥还要新浪授权呢。
    doggg
        7
    doggg  
    OP
       2017-05-31 19:02:38 +08:00
    @Kilerd 其实之前就是不用授权的。当时不懂 oauth2。用新浪权当学习 Oauth2。
    Hilong
        8
    Hilong  
       2017-05-31 19:15:49 +08:00
    按 d 没用啊,只能 a
    realwangyibo
        9
    realwangyibo  
       2017-05-31 19:28:46 +08:00
    Mac 的 safari 可以兼容
    doggg
        10
    doggg  
    OP
       2017-05-31 19:37:36 +08:00
    @realwangyibo 谢谢报告,身边没苹果电脑没得测试。edge 没提醒什么错误,我也不知道哪里不兼容
    @Hilong 没这回事吧,都可以的 AD
    SingeeKing
        11
    SingeeKing  
       2017-05-31 19:55:32 +08:00
    @Hilong 我想说我之前也是这个问题的。。。Vimium 就好了
    Sixzeroo
        12
    Sixzeroo  
       2017-06-01 00:22:43 +08:00
    D 没用 无奈
    doggg
        13
    doggg  
    OP
       2017-06-01 09:09:57 +08:00
    @Sixzeroo addEventListener("keydown", function(e) {console.log(e.keyCode)}) 在控制台输入,然后在页面按下 AD 看看 keyCode 是不是 65 和 68 ? 难道你们那边是 97 和 100 ?
    ChenPeiPei
        14
    ChenPeiPei  
       2017-06-01 14:47:27 +08:00
    doggg
        15
    doggg  
    OP
       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 的字符串')
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2854 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:30 · PVG 16:30 · LAX 00:30 · JFK 03:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.