自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hull Qin

一名前端开发,教你做小游戏,教你追求极致用户体验。此外,我的游戏是支持联机的,所以还会分享一些后端(Go、Python)知识。

  • 博客(82)
  • 收藏
  • 关注

原创 我开发了《联机桌游合集: UNO+斗地主+五子棋》,让你享受纯粹的游戏

《联机桌游合集》是我独立开发的H5小游戏,目前包括3款游戏:支持2-10人联机的UNO、2-4人的斗地主、1-2人的五子棋。本文介绍了其中的技术选型,以及一些技术亮点。相信一定会给你些启发。

2022-08-01 13:25:43 7715 6

原创 我们用48h,合作创造了一款Web游戏:Dice Crush,参加国际赛事Game Jam

几个大厂小伙,有产品策划、有设计师、有程序员,合作创造游戏,48小时,能开发出什么游戏?快来看看我们艰辛的制作过程吧!

2022-07-23 16:31:22 6129 2

原创 [极致用户体验] 多页面应用里,「网页内返回」按钮,何时用 history.back 何时用 replaceState?

在网页中加一个「返回」按钮,有时可以调用history.back返回,有时调用history.back无法返回,必须用history.replaceState。在多页面应用中,如何实现呢?

2022-10-02 06:47:05 4414 2

原创 [极致用户体验] 为什么建议2022年不用“等比设计稿“+rem,而用“灵活设计稿“+px

2022年,我不建议你使用rem作为CSS单位了,而应该用px。本文介绍了rem的诞生历史,并循序渐进解释了不建议用rem的原因。

2022-09-30 06:54:56 5315

原创 [极致用户体验] 微信设置大字号后,iOS加载网页时闪动怎么办?

在iPhone或iPad的微信浏览器中,如果用户之前设置了网页的大字号,进入任意网页时,就有个明显的闪动。网页开发着如何解决这个问题呢?本文提供完美方案!

2022-09-29 06:47:29 4533

原创 [极致用户体验] 为什么2022年不建议你在小程序中用rpx

小程序有rpx属性,减少了适配各种手机设备的成本,提高了开发效率。但它并不是银弹,在宽屏设备上(例如Pad),用户体验较差。如果你追求极致用户体验,我建议你用px而非rpx。

2022-09-28 07:03:05 4622

原创 [极致用户体验] 让你的网页,适配微信大字号模式!体验超好,快来收藏

本文给你全网最完美的适配微信大字号的解决方案!超过90%的网页,不支持微信大字号模式!在微信浏览器的大字号模式/关怀模式下,网页排版会错乱。该如何解决呢?

2022-09-27 06:57:39 4954

原创 [Go WebSocket] 多房间的聊天室(六)为什么要加锁?不加锁行不行啊?

本文通过编写测试用例,回答以下问题:为什么一定要加锁?加锁后,你的代码逻辑是对的吗?换个描述方法:本文论证了给代码逻辑加锁的必要性和充分性。

2022-09-26 07:07:00 4362

原创 [Go WebSocket] 多房间的聊天室(五)用多个小锁代替大锁,提高效率

多房间的聊天室的第五篇。上次我们用Mutex互斥锁处理了「多房间聊天室」的黑天鹅事件(小概率Bug),但是并不完美,并行效率低。我们今天通过「多个小锁」代替「大锁」的方案,提升效率!

2022-09-25 06:56:08 4120

原创 [Go WebSocket] 多房间的聊天室(四)黑天鹅事件

多房间的聊天室的第四篇。上次我们开发了「多房间聊天室」的自动清理无人房间的逻辑,避免了内存无限增长。但是上次的实现并不完美,无法保证100%正确,今天我们做个优化。

2022-09-23 06:57:02 4044

原创 [Go WebSocket] 多房间的聊天室(三)自动清理无人房间

多房间的聊天室第三篇,上次我们开发了「多房间聊天室」的代码,但是存在内存无限增加的问题。这次我们增加自动清理无人房间的逻辑。

2022-09-22 07:03:42 4120 1

原创 [Go WebSocket] 多房间的聊天室(二)代码实现

实现一个多房间的聊天室第二篇。这次官网没有demo了,需要我们自己实现!本篇文章介绍了实现「多房间聊天室」的具体代码实现。

2022-09-21 06:48:53 4358

原创 [Go WebSocket] 多房间的聊天室(一)思考篇

该系列第四篇:实现一个多房间的聊天室。这次官网没有demo了,需要我们自己实现!本篇文章介绍了实现「多房间聊天室」的难点及解决方案。

2022-09-20 06:55:56 4634

原创 [Go WebSocket] 单房间的聊天室

如果你想实现WebSocket,基于压测数据,强烈建议你用Go!本文手把手教你实现一个支持多人聊天的聊天室服务,很适合用于新手入门!每一行代码都有详细注释。

2022-09-19 06:50:01 4314

原创 [极致用户体验] 在微信大字号模式下,网页样式乱了怎么办?

超过90%的网页,不支持微信大字号模式!在微信浏览器的大字号模式/关怀模式下,网页排版会错乱。快来看看,你的网页样式还正常吗?如何解决呢?

2022-09-18 06:52:04 4522

原创 [教你做小游戏] 滑动选中!PC端+移动端适配!完美用户体验!斗地主手牌交互示范

如何让你的网页交互同时支持PC端DragEvent和移动端TouchEvent?里面有诸多难点和坑点,本文教你如何实现多端体验都很完美的滑动选中!

2022-09-16 07:02:13 4602

原创 在互联网,摸爬滚打了几年,我悟了。面对如今经济形势,普通打工人如何应对?

也许你知道互联网行业很火,工资高,但并不理解互联网。只有你懂互联网,你才能更好的认知今天的世界,才能赚更多的钱。

2022-09-15 06:54:46 4796

原创 [教你做小游戏] 只用几行原生JS,写一个函数,播放音效、播放BGM、切换BGM

要做小游戏,播放音效、BGM是必须的。如何实现呢?本文讲解:只依靠原生DOM API,写几行JS就能播放背景音乐和音效!非常轻量级和高效!

2022-09-14 06:47:40 5094

原创 [Go WebSocket] 你的第一个Go WebSocket服务: echo server

如果你想实现WebSocket,基于压测数据,强烈建议你用Go!本文手把手教你实现一个echo服务,很适合用于新手入门!每一行代码都有详细注释。

2022-09-13 07:01:09 4549

原创 [教你做小游戏] 展示斗地主扑克牌,支持按出牌规则排序!支持按大小排序!

做斗地主游戏,要把扑克牌展示出来。常需要给扑克牌排序,例如手牌是按照大小排序,而出牌是按照出牌规则排序,底牌是不排序。如何满足这些复杂的排序需求呢?本文给你答案!

2022-09-12 06:50:06 4896

原创 [Go WebSocket] 为什么我选用Go重构Python版本的WebSocket服务?

我之前开发了《联机桌游合集》,但是很久没有发布新游戏了。作者最近在忙什么呢?在忙用Go重构后端WebSocket服务呢!快来看看吧~

2022-09-11 06:58:05 4291

原创 [JS入门到进阶] 手写解析uin8数组的工具:解析二进制字节,太快太方便了!

我常常需要处理二进制数据,他们通常用uin8数组来表示。我写了个工具,可以便捷的把uint8数组转换为二进制、十进制、十六进制、ASCII、整数。真的很方便!

2022-09-10 06:56:33 5185

原创 [CSS入门到进阶] 4行CSS实现footer置底!超常见的需求,快来收藏

大部分网站都需要footer,而footer置底是一个常见的产品诉求。今天我们用4行CSS样式,实现这个常见的需求!快来收藏~

2022-09-09 06:57:17 4634

原创 [JS入门到进阶] 手写裁剪图片的工具,并部署。一键裁剪掘金文章封面

裁剪图片,一个常用功能!但是无需下载APP、且安全、方便的工具还真不好找!今天,我们前端开发者用基础JS API手写一个裁剪图片工具!实现一键自动化裁剪!

2022-09-08 07:02:48 4002

原创 [JS入门到进阶] 手写解析URL参数的工具,并部署。用起来又快又爽!

工作中,要根据URL排查问题,需要解析它的参数才能去前端日志搜索;而我面试字节跳动、阿里巴巴时,都遇到了面试题:手写URL解析。所以,一起来手写实现解析URL的工具并部署吧!

2022-09-07 06:53:26 4233

原创 你必须要会uvloop!让Python asyncio异步编程性能直逼Go协程性能

如果你使用Python异步编程(例如async语法),但是你没听说过uvloop,那么你一定要看一下本文!这可能会让你的代码性能提升至少1倍!

2022-09-06 06:51:13 4469

原创 [CSS入门到进阶] 你真的了解 width height 吗?

width和height很常用,但你真的了解吗?本文带你系统性的梳理:工作中常见的width和height的特性。让你下次改样式时更快!

2022-09-05 06:51:02 4725

原创 [JS入门到进阶] 前端开发不能写undefined?这是误区!

看到有人说:不要再直接写undefined了,担心一些人会被误导。所以此文用「现代前端开发」的思想,为大家答疑解惑。以后请大胆使用undefined!

2022-09-04 06:53:07 3949

原创 [JS入门到进阶] 7条关于 async await 的使用口诀,新学 async await?背10遍,以后要考!快收藏

给你7条async await 使用口诀!帮助你把JS的async await玩得很6!初学者弄懂后,背10遍,立马进阶!

2022-09-03 06:59:51 3713

原创 [JS真好玩] 掘金创作者必备: 监控每天是谁取关了你?

「我这么好你还舍得取关我,那我什么时候能成为百万粉丝博主?」教你用JS监控粉丝,看看是谁取关了你!掘金创作者必备~

2022-09-02 06:59:26 3631

原创 [JS入门到进阶] 哎,被vite小坑了一波,大家记得配置build.cssTarget为‘chrome61‘

Vite用起来很爽,不必像Webpack一样手动配置各种Loader了,但是它仍存在一些小坑。我就被坑了,遇到个样式兼容性问题,好在最终找到了解决方案,一起来看一下解决过程吧!避免你再踩坑~

2022-09-01 07:02:00 4473

原创 [极致用户体验] 如何实现响应式canvas?保持canvas比例?教你让canvas自适应屏幕宽度!

用户体验好的canvas应有2个特性: 一屏展示全、比例与初始屏幕一致,且缩放过程中,比例不变并尽量撑满屏幕。本文教你如何实现这种极致用户体验的响应式canvas。

2022-08-31 06:52:53 8121 4

原创 [极致用户体验] 教你个超牛逼的分割线CSS!

给元素之间添加分割线,只需要一行牛逼的CSS!前提是你要学会文中这几个高级的CSS选择器,跟我一起来学习吧!以后秒杀CSS分割线需求!

2022-08-30 07:01:09 6116

原创 《 合 成 大 西 瓜 》 重 制 版 !( 联 机 版 在 做 了 )

我用Vite、物理引擎box2d、渲染库pixi.js重制了《合成大西瓜》!代码开源,手把手保姆级别教学!我还用React和WebSocket实现了《合成大西瓜》联机版!

2022-08-29 07:05:18 4959

原创 [CSS入门到进阶] 外国前端开发者说的 Intrinsic Ratios in css 是什么意思?

外国开发者很早就开始了对Intrinsic Ratios的讨论,它是CSS中的一类典型问题,前端面试也常考。本文带你了解一下这个问题,提供了传统解决方案和现代解决方案,并给出了具体的使用建议。

2022-08-28 07:01:47 3843

原创 [JS真好玩] 我帮掘金找到了一个小Bug,可利用该Bug增加专栏粉丝数

我发现了掘金专栏的Bug,不严重,但可以利用该Bug给专栏增加粉丝量。这是很常见的一种Bug类型:钱后端校验逻辑不一致。除了思考如何修复它,更重要的是:以后如何避免这种类型的漏洞。

2022-08-27 06:57:52 3850

原创 [教你做小游戏] 用86行代码写一个联机五子棋WebSocket后端

如何做一个联机对战的五子棋?这需要个后端服务,我手把手带你编写一下联机五子棋的WebSocket后端代码,只需要86行代码噢。快来学!

2022-08-26 06:54:42 5349

原创 [教你做小游戏] 用177行代码写个体验超好的五子棋

用177行代码做一个本地对战的五子棋游戏,手把手带你写每一行代码,并且使用码上掘金预览最终效果!没有任何依赖,无需素材,只用SVG、基础JS和简单的css。

2022-08-25 07:04:04 5421

原创 [教你做小游戏] H5小游戏技术选型分析,低代码?小游戏框架?canvas或SVG?还能用React?

做个H5小游戏,用什么技术?本文提供了4种技术方案,列出了各自优缺点和使用场景,给出了方案决策树,助你下次想做小游戏时,选出最适合你的技术方案!

2022-08-24 06:53:41 4405

原创 [JS真好玩] 表格不支持排序?用4行JS排序!两种方案:基于flex order或replaceChildren

有的表格不支持按某列排序,我提出了2个方法,使用JS修改Dom实现排序:基于flex order样式、基于Element.replaceChildren()这个API,分别只需7行和4行代码。

2022-08-23 06:54:27 1792

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除