开源中国-最新资讯 ( ) • 2024-04-22 10:33

关于作者

我与编程

居住在安徽六安,是一个高中生,目前正在读高一

我从六年级的那个寒假,因为学校组织的一场编程公开课而开始玩scratch,在六年级毕业的那个暑假开始学习Python,然后遇到了LStar,也是我遇到的第一个同龄计算机爱好者,我们一起创建了BugDuck开源团队。可以肯定的说的是,那场公开课影响了我的一生

我做的第一个还算成功的项目是一个叫tntjs的前端框架,并把宣传片放在了B站上,结果引起了两派人的轰动,一派认为我们只是在学习而已,另一派认为我们山寨了Vue,当时正值BugDuck团队的内部矛盾,最后分裂了(从三十多人到不到五人),tntjs就没有维护下去了

初三上学期,我一个学期没有碰代码,一部分原因是因为要中考了,另一部分原因是父母没收了我的电脑,但这段时间一直在构思我的新项目。当我看到老师电脑上那些老旧的flash课件,我就想着造一个动画引擎,并给他命名为newcar,于是在寒假的时候开始写newcar。newcar项目地址:https://github.com/dromara/newcar,文档地址:newcar.js.org

总的来说,我追求技术的初心始终没变,但是路上坎坎磕磕。

我与英语

从小学开始,我就摆出了一副不喜欢英语的样子,满分100只能考20多,还全都是蒙的,那么我是如何变成一个英语爱好者的呢?

上了初中之后,我便开始从头学英语,但是内心还是很抵触;到了初二毕业,我只能考个及格分,直到我找到了一个叫”英语兔“的up主,看了他的课之后,我便阴差阳错的喜欢上了英语。从那以后,我每天坚持背10个英语单词,英语能力也突飞猛进,截至今日,英语已经变成了我的强项

我的爱好

  • 编程:这不是肯定的嘛
  • 英语:这也一样
  • 电子技术:很菜,连晶体管都玩不好
  • 音乐:从小学二年级开始学习架子鼓,到初一就不学了,不过我还是很喜欢penbeat的,以及听电音,特别喜欢V神的The World Has A Heartbeat
  • 化学实验:很菜,只会做一些简单的,比如制取盐酸啥的
  • 打音游:很菜,平时主要玩Phigros和Dancing Line

Newcar介绍

Newcar是一个现代化的前端动画引擎,基于CanvasKit-WASM,在Skia的WebAssembly版本的加持下,既保证了它的性能,又带来了强大的绘图功能

特点

  1. 高度可自定义化的API
  2. 链式语法,区别于传统动画引擎和游戏引擎需要将物体保存为变量的方式,链式语法会让开发效率更高
  3. 拥有类似于Vue的diff算法的内核,进一步保证了动画的效率和“按需更新”的进行
  4. 多平台,可以在现代支持WebAssembly的浏览器上和nodejs上运行

未来计划

  1. 可以从项目根目录下的mods目录看,目前newcar已经发布了数学模块(包括数轴,平面直角坐标系,函数图像等),未发布的有:几何模块,markdown模块,动态图表模块,ui模块,物理模块,思维导图模块等等
  2. 未来将推出事件系统,让他变成动画游戏二合一引擎
  3. 一些小的东西比如动画树

背景故事

上数学课时,老师掏出了他清朝老幻灯片进行讲解,结果里面的flash课件打不开,因为电脑没有安装flash。于是我就在想,既然flash功能那么强大但没落了,我为什么不自己写一个类似于flash的库呢?说干就干,在2022年9月份开始思考,一直到12月份开始编写代码

刚开始的newcar十分简陋,甚至是基于原生Canvas的,性能非常差,动画编写的步骤也很繁杂。后来的newcar除了模仿flash,也集合了Manim等动画引擎及svg动画的设计原理。目前的Newcar的最新版本是重写重设计后的版本,但是未来会有更强大的功能

  • 文档:newcar.js.org/zh
  • GitHub: github.com/dromara/newcar
  • b站:BugDuck开源团队
  • Twitter: @bugduckteam