游戏开发中的数学和物理基础知识

发表于 | 分类于 游戏

游戏开发中需要掌握一些基础的数学、物理等知识,本文将对这些知识进行整理

游戏开发中的长地图和摄像机

发表于 | 分类于 游戏

在一些横版游戏中,需要搭建超过一个屏幕的长地图,然后控制角色在整个地图中进行移动。本文主要讨论通过 tiled map 实现长地图场景,然后通过控制摄像机的方式访问整个地图。

使用cocos实现flappybird

发表于 | 分类于 游戏

打算梳理一下自己的游戏开发技能(虽然并没有什么技能),于是打算从易到难去实现一些比较完整的游戏案例。flappybird是一个比较精简的游戏,游戏玩法和规则都很简单,但是包含的内容比较丰富,能涉猎到不少知识点,因此用来入门是比较不错的。本文整理了使用 cocos creator 开发 flappy bird 的一些收获。

从dark-slash中学习游戏动画

发表于 | 分类于 游戏

最近在学习游戏开发中的动画效果(主要是技能效果),苦于找不到合适的资料,发现cocos官方提供了一个dark-slash暗黑斩的教学项目,这是一个比较完整的游戏项目,也包含了不少动画项目,很适合新手学习,本文主要整理了阅读该项目的一些收获。

一种易扩展游戏技能系统的实现方案

发表于 | 分类于 游戏

最近在实现一个卡牌类游戏,因此研究了一下卡牌游戏的核心玩法:卡牌技能,并给出一种比较通用的技能系统设计实现,稍作总结。

开发独立游戏需要解决的一些问题

发表于 | 分类于 游戏

做游戏一直是我的夙愿,也是我转行进入软件开发的动机。如今,当我已经有5年的开发经验,准备开发自己的独立游戏的时候,发现这件事远比我想的复杂,本文记录了我关于独立游戏开发的一些思考,以及对未来的展望。

petite-vue源码分析

发表于 | 分类于 源码分析/Vue

最近发现Vue增加了一个petite-vue的仓库。

大概看了一下,这是一个无虚拟DOM的mini版Vue,前身貌似是vue-lite(瞎猜的~),主要用于在服务端渲染的HTML页面中上"sprinkling"(点缀)一些Vue式的交互。颇有意思,于是看了下源码(v0.2.3),整理了本文。

React中封装组件的一些方法

发表于 | 分类于 前端/React

最近参与了一个基于Raact技术栈的项目,距离我上一次在工作中React已经过去了挺长一段时间,因此打算整理在React中封装组件的一些方法。

管理TypeScript项目中的类型声明

发表于 | 分类于 编程语言/TypeScript

说来惭愧,最近才正儿八经地在生产项目中使用TypeScript,遇见一个比较棘手的问题就是:如何管理项目中定义的各种类型声明。

本文将从TS项目和声明方式开始,探究如何解决该问题。

在React中处理埋点公共参数

发表于 | 分类于 前端/前端业务

前端埋点数据收集及上报方案这篇文章中研究了前端项目的数据埋点方案,描述了埋点字段设计、数据收集和数据上报的一些思路,并给出了在Vue中通过自定义指令和全局Mixin实现声明式数据收集的方法。同时在项目中使用一段时间后,总结了一些可以优化的问题。

最近在一个React项目中,打算实现类似的工作,同时解决之前遗留的问题。

infernoJS源码分析

发表于 | 分类于 源码分析/diff算法

inferno.js是性能最快的前端UI框架之一,Vue3的diff算法貌似也从Vue2的snabbdom实现修改为类似于infernod的实现。

本文主要通过阅读inferno的核心源码,了解其关于通过最长上升子序列优化diff DOM性能的原理。

多项目逻辑复用与monorepo

发表于 | 分类于 前端/前端工程

去年接手了一个新的项目,主要分为了移动端和PC端,在项目初期,两端承担不同的业务职责,在后期迭代过程中,陆续出现了一些相同和相似的业务逻辑,随之而来的是很多相似的代码。

回想之前,也经历过类似的场景,比如从一个to B的项目中再拆分一个to C的项目,两个项目具有业务或平台的差异,但也有很多相同的地方。

本文主要研究通过monorepo来处理这种多项目中逻辑复用问题。

koa源码分析

发表于 | 分类于 源码分析

本文将分析koa源码中相关实现。

axios源码分析

发表于 | 分类于 源码分析

axios是非常流行的前端网络请求库,本文将阅读其源码,了解内部实现原理,以及axios中核心的拦截器、cancelToken`等实现

snabbdom源码解析

发表于 | 分类于 源码分析/diff算法

最新在梳理一些前端框架的核心实现,关于diff算法这一块,发现目前大部分文章都是将源码翻译一遍,而关于诸如“为啥要定义多个游标”、”首尾对比”等细节,并没有给出比较好的解释。因此打算整理snabbdom源码,同时回答前面提到的一些问题。

支持Redux在WebStorm中像Vuex一样智能跳转

发表于 | 分类于 技术原理

之前的负责项目是用vue写的,vuex是专门为vue定制的,上手十分容易,由于是官方统一维护,webstorm在2020版本也已经支持直接从type字符串跳转到对应module定义。

最近有新项目打算统一使用React技术栈,研究了一下目前React状态管理主流方案,还是redux/mobx之类的,由于redux默认的combineReducers功能比较弱,且webstorm貌似不支持字符串type直接跳转到reducer定义,比较影响开发效率,因此决定研究一下相关的解决方案。

反思我写过的烂代码

发表于 | 分类于 编程技术

这篇博客的草稿是17年10月15号创建的了,每次写了些东西打算发布的时候,总觉得还差了什么。现在写了四五年代码了,经手了很多项目,有简单的活动页面,也有很复杂的业务逻辑,是时候反思一下我写过的烂代码了。

Android快速入门

发表于 | 分类于 客户端/Android

距离上一次写Android代码已经过去了三四年了,基本上都忘得差不多了,最近在尝试使用kotlin开发一个App,发现查询很多资料都不太全,浪费了大量的时间,因此决定整理一篇在Android入门中经常遇见的需求和问题,希望能对刚接触Android的朋友有一点帮助。

《面向对象是怎样工作的》读书笔记

发表于 | 分类于 读书笔记

最近阅读了《面向对象是怎样工作的》这本书,感觉还不错,记录一下。

使用cocos实现一个合成大西瓜

发表于 | 分类于 游戏

最近微博上曝出了很多瓜,"合成大西瓜"这个游戏也很火热,玩了一阵还挺有意思的。研究了一下原理,发现目前流传的版本都是魔改编译后的版本,代码经过压缩不具备可读性,因此决定自己照着实现一个。