« November 2022 | Main | January 2023 »

December 20, 2022

covid-19 感染康复记录

月初还和同事调侃,这次谁也躲不掉,感染是迟早的事。最近全家都中招了,好在病毒这次还算轻柔,差不多都痊愈了。在此记录一下这次的历程。

起点是广州的全面开放。老婆在家已经被关了快一个月,憋得不行。开放第一个周末,就约了同事出去玩,周五晚上密室、周日下午(12 月 11 日)出去拍照。

我觉得广州已经放开,这次病毒的 R0 相当高,快速传播开无可避免,第一个周末外出有非常大的风险。所以取消了原本每个周末的攀岩活动,和两个孩子继续关在家中。儿子一直有点咳嗽,我有一些感冒,有流鼻涕的症状。

Day 0 (12 月 12 日周一)

老婆被通知一起玩的同事已经确诊,需要她居家办公,观察一天再考虑回办公室。

我当天正常上班了。这天我之前的感冒症状(流鼻涕)已经完全消失,精神状态非常好。

晚上她有一点低烧(38 度),自测抗原阴性,觉得是因为感冒。这一晚,女儿和妈妈睡觉。

Day 1

老婆有点不舒服,在家休息,我继续上班。感觉她有很大的可能已被感染,所以我上班时带严了口罩,和同事聊了这件事,大家都很放松。中午的时候,老婆发消息来说她发高烧了,抗原自测阳性。我担心我也被感染了,可能传染给同事,赶紧交代了一下接下来的工作就回家了。

家里有一点含对乙酰氨基酚的感冒药(不是泰诺、备的泰诺用完了),还有一瓶没开封的美林(布洛芬混悬液)。给她服了美林,很快就退烧了,但是精神状态很糟糕。注:美林是给小孩用的,所以服用的时候按体重换算比例加了一些量。

晚上儿子女儿都和我睡觉。

Day 2

老婆在房间隔离,我负责出入隔离房间送餐。按时服用退烧药。我爸妈过来和我们一起住,帮忙做饭,照顾小孩。我喉咙有点痒,偶尔咳嗽,但精神很好。儿子在家上网课,晚上和我打怪物猎人。他很开心,因为没有妈妈阻止他玩游戏。

晚上女儿和我睡,儿子和奶奶睡。

Day 3

广州有点降温,我还穿着短袖。白天玩 Rimworld 的时候感觉很冷,冷到坐不住。加了衣服还是无法集中精神玩游戏。怕玩废我这个铁人档,就把电脑关了躺床上去了。盖了两床被子还是觉得冷,开始头疼,一测体温 39.1 。想来是中招了,吃了颗感冒药。下午一直在昏睡,也没别的什么症状,但是就是不想起来打游戏。我一个人关房间里。

下午接了个朋友(同事)的电话,问问我的情况。他下周要去美国,担心这波被感染会打乱计划。我说还好,就算感染也很快会好吧。他家里有备药,叫了个跑腿的给我送了一盒泰诺林,一盒布洛芬。我吃了颗泰诺林继续睡。

晚上女儿去和奶奶睡了,儿子和爷爷睡。我睡到晚上 0:00 清醒了。体温 39.2 ,头不疼了,但是嗓子开始不舒服,痒痒的。玩了下手机继续睡。感觉整天都在床上也满舒服的。

Day 4

白天。平时活蹦乱跳的女儿蔫了,幼儿园的线上活动不想参加,缩成一团说不舒服。体温 39 ,给服了一些美林。

我好像恢复了。烧退了,有点咳嗽,所以还是关在房间里。儿子想和我联怪物猎人,我们就隔着门打。switch 的信号真是一言难尽啊,两盘都是中途掉线。好在他水平已经超过我了,大师五星的任务掉线后分开屠龙,两次都比我先完成任务。

头天给我送药的同事当天晚上阳了。我想病毒不是通过网络传给他的。和他交流了一下抗毒经验,他症状也比较轻。

到晚上女儿就恢复了精神,也不发烧了。还是和奶奶睡。爷爷和奶奶似乎都没被感染。

Day 5

我出了一身汗,衣服全湿透了,起来洗了个澡。精神很好,除了嗓子还有点痒。开始出现感冒的症状,而之前几天完全没有鼻涕。

奶奶发烧了, 39 度。怀疑是被孙女传染的。给她吃了同事送来的布洛芬。爷爷开始喉咙痒。儿子没事。

我觉得自己已经有抗体了,就去老婆房间陪她。她还是没精神。不发烧,但是喉咙疼的厉害。

晚上让女儿跟我睡。她很开心,因为睡前我给她看动画片(十二国记),而妈妈管不着她。

Day 6

奶奶退烧了精神不错。爷爷有点低烧 38 。小孩子都在家玩得很开心,想出去吃 KFC 。我感觉自己已经没问题了。只剩下喉咙有点痒,大约 5 分钟会咳一次。但老婆还是不舒服,主要是喉咙疼,没食欲。

Day 7

全家似乎都好了,终于又可以坐一桌吃饭。这天是女儿的生日。大家一起庆祝,分了个蛋糕。我陪她拼好了生日礼物(乐高)。

我在 Rimworld 中的小村子已经有 6 个人了,刚刚抗击完一次小瘟疫,一切都回到了正轨。

今天是 Day 8 ,我喉咙最后一点不适也消失了。从昨天晚上 22 点一觉睡到了早上 8 点。精神非常好。已经好多天没出门,上班路上感觉视野非常清晰,似乎视力也好了不少。走在珠江边,江对面楼宇招牌看得一清二楚。


关于抗原自检盒,我在回家前从公司领了两个。本来打算返办公室前确认一下。结果一盒里面的试管中完全没有测试剂,另一个测出来 C 杠几乎没有(T 杠深红)。罢了,不测就没有阳过。

这一周,我们组几个同事陆续都中招了。大约每天减员一个,最后算上我,六个程序全部居家。一个美术和一个策划一直相安无事。公司现在很冷清,估计只有 1/3 不到的人在岗。想想这样对项目进度伤害也还好,集体停摆,下周应该很快就能恢复正常了。

December 13, 2022

触摸屏上的一些交互设计问题

我们现在制作的游戏以手机优先,交互都是围绕着触摸屏来做。如果开发的时候总是在 PC 上用鼠标测试,很多交互问题都容易被忽视掉。所以,我们自研的引擎花了很大气力在手机设备上即改即所得。在开发时推荐开发人员直接在手机上修改、调试。这样更容易发掘出平时用鼠标操作难以察觉的问题。

btw,直接在手机上开发比在 PC 上开发还有另一个好处,就是随时能关注画面元素(尤其是字体)的大小是否合适。

鼠标和触摸屏在交互上有很多类似的地方,但也有很大的不同。

  1. 鼠标的点击是精确到单点的,触摸屏的 tap 其实是一个面。很多框架直接取了面的中心点和鼠标事件划上等号,这是不对的。我们做交互的时候,时刻应该清楚,触摸屏的 tap 事件并不是像鼠标点击事件那样有一个精确的屏幕坐标。

  2. 触摸屏是有多个触摸点同时存在的,而鼠标指针一般只有一个。我们未必要深入使用多点触摸的交互逻辑,但在用手机的时候,一只手不小心压住了屏幕一侧,另一只手做 tap 操作,这非常常见。

  3. 鼠标的基础操作有移动、左键点击、右键点击;而触摸屏只有在屏幕上拖动的消息,没有指针移动事件,也无法区分左右键两个不同的点击操作。或许可以用手势来区分,比如用轻触和长按来分出两种不同的交互操作,但滥用可能会造成用户的困扰。

  4. 鼠标手势属于高级玩法,一般不去教育初级用户使用;但触摸屏是反过来的,必须依靠手势完成更丰富的交互操作,而且用户已经被教育的很好。比如两指缩放,滑动,轻触点击这些手势已经不需要对用户再教育了。但引入高级手势还是需要慎重。

  5. 手机屏幕有一些禁区,那些位置用户难以操作;鼠标基本没有禁区。


对于一个基地建设(类异星工厂)的游戏,点击选中特定屏幕对象,在手机上怎么操作更好?显然,不能照搬鼠标键盘的交互逻辑。

首先,我倾向于把手机看成是游戏手柄,按手柄的操作逻辑做更好。这样,可以在屏幕的中间虚拟出一个鼠标指针,用软摇杆(搓玻璃)的方式移动地图,而指针固定在屏幕中间,确定键放在右下角,这样和鼠标逻辑最为接近。

其次,还需要保留直接点击屏幕上特定位置的方式,这在手机上最直接明了:我想关注哪个建筑就点哪个。这个时候,摄像机应该跟着聚焦的对象,把它移到屏幕中心。

那么,怎么解决点击面下有多个对象的问题呢?一般的鼠标逻辑精确到点,总可以精确的找到这个点上对应的对象。用户发现选错了,可以稍微移动鼠标指针调整。而手指操作却无法做这种调整:因为手指和屏幕本来就是面接触而不是点接触。而且,当手指按下后,盖住了焦点处的屏幕,难以进一步调整。

我的解决方法是,每次手指点选,都按一个面积去选取场景中的多个可能对象,然后只聚焦到其中一个。有一个全局循环队列记住历史上聚焦的对象。每次点选,如果有多个备选对象,那么就比对历史上的选取记录,选出过去几次没选取过的聚焦对象。如果所有备选对象都聚焦过了,就用 LRU 算法淘汰最老的那个。

用户操作的时候,它在对象密集的区域点选,发现选中的焦点对象并非他期望的,只需要不断地在原地多次 tap ,就能在附近的几个对象间轮换了。