自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 适用于QF的存档系统

今天分享一个适用于QF的存档系统这个系统的优点为1、轻量化,总共代码不超过400行2、自动化,基于QF框架,自动注入值缺点:1、不能序列化Unity内部类型,如Vector2、需要给能被序列化的类加上【Serialize】属性。

2024-09-20 10:40:49 435 1

原创 Unity进阶之路(2)UI Toolkit

UI,User Interface的缩写。所谓前端的本质,其实就是数据的映射。把数据映射成更加适合用户操作的模式,这就是前端。如果直接使用Unity提供的可视化UI创建工具创建UI面板,一个一个添加元素,只会生成uxml文件,样式直接通过内联样式的形式给出。在Unity中,我们可以从.csv文件中读取数据,作为数据的输入。在Unity的UI编辑器中,我们可以通过可视化的方式创建UI内容。UI Toolkit是Unity内置的一个游戏UI解决方案。我们需要把数据以一定的模式输出到用户界面。

2024-04-03 23:16:25 752

原创 Unity进阶之路(1)回顾与思考

但是现在这个学期段,想学习的Java后端还没有什么成绩,又开始想深入学习Unity了,最近也是抽时间速通了Python。但是呢,不论是web前端还是Unity,我学习的动力都是基于可视化,基于乐趣进行的。至于电脑续航的问题,我觉得还是得带到课堂上去,一定得带,至于续航方面,开了省点模式之后应该可以撑1小时左右。现在日复一日在电脑面前,写出了一点小效果就迫不及待的发到朋友圈,发到那些外行眼中,发到比自己弱的人那里show off。所以写代码的初衷呢?这里真的有很多厉害的人,很多半途而废的人,很多深陷其中的。

2024-04-03 22:24:57 572

原创 C语言编译和链接(极简速查)

目标文件下一步进行符号决议和重定向。在项目的多个文件中可能存在多处函数声明,这些函数的存放地址不同。符号决议是在相同的名称中选举一个地址,替换地址的过程称为重定向。这个阶段被称为链接。源文件.c需要通过语法检查,词法检查,语义分析等多个步骤,转化为汇编语言.obj,也称为目标文件。这个过程被称为编译。在vs中,项目属性->链接器->输入的附加依赖项可以找到所有链接阶段被链接的默认文件。在配置属性的VC++目录中,可以找到包含文件的路径。C语言是一门编译型语言。

2024-01-20 14:07:05 470

原创 联机游戏的前后端交互逻辑(Cocos)【第三章 单机 Entity and ObjectPool 】

实体与对象池是游戏开发中的常见概念。例如,我们可以为子弹设计实体,为玩家设计实体,甚至为爆炸效果设计实体。而对象池就是方便我们管理多个重复实体,而不必频繁创建和销毁的一种设计。

2024-01-07 17:09:55 1083

原创 联机游戏的前后端交互逻辑(Cocos)【第二章 单机StateMachine and DynamicCreation】

前一章我们详细讲解了一种数据驱动的单机游戏框架。主要思路为,将游戏内所有实体的状态储存在DataManager的state字段下,从输入系统拿到Input,调用DataManager中的applyInput方法进行处理。其中有一种特殊的Input,作为时间流逝的量度,周期性地使用applyInput方法应用它,达成某些事件累积状态发生改变的效果。这一章将要讲解状态机和动态创建。

2024-01-06 14:58:19 1074

原创 联机游戏的前后端交互逻辑(Cocos)【第一章 单机Data and Event】

不适合小白观看,但是这个大佬码力深厚,代码优美如诗,有一定基础的可以反复观摩学习。联机游戏跟单机游戏最大的不同在于联机需要实时同步多个客户端的数据。要研究清楚联机游戏的前后端交互逻辑,应该先了解单机游戏的运行逻辑。

2024-01-05 13:12:02 746

原创 Ts自封装WebSocket心跳重连

WebSocket是一种在单个TCP连接上进行全双工通信的协议,允许客户端和服务器之间进行双向实时通信。所谓心跳机制,就是在长时间不使用WebSocket连接的情况下,通过服务器与客户端之间按照一定时间间隔进行少量数据的通信来达到确认连接稳定的手段。Js提供的原生WebSocket的API较为简陋,博主这里对其进行简单封装,使其具有心跳机制。

2024-01-01 21:56:30 1647 1

原创 Ts手动封装http请求

首先,Js原生http请求是使用XMLHttpRequest实现的。虽然这个东东以XML为前缀,但是其实也可以进行JSON格式数据的传输。//创建XMLHttpRequest示例对象//设置请求头,用来适配json格式数据传输//初始化请求,设置请求方式,请求地址,是否异步调用//发送请求参数(请求参数是跟在url后面的一串字符串,如?name=张三&age=18)值得注意的是,参数其实是不支持中文字符的,但是为什么我们传入name=张三也是合法的呢?

2023-12-31 21:19:08 1564 1

原创 微信小程序学习记录8(云开发专题)

如果要获取多条数据,我们可以使用where方法,这和MySQL里面的where条件筛选还是很像的。为了能够处理多种情境下的数据选择,我们可以使用db.command对象中的方法,当然这个以后再介绍。其中update只会修改对应字段的值,而set会用传入的数据对象覆盖原有的数据对象。值得注意的是,如果在小程序端进行数据的添加,数据除了id属性,还会增加一个openid属性,用来唯一标识数据的创建者。首先,在使用云开发功能前,我们需要申请一个有效的appid,然后在小程序管理网站购买云开发功能。

2023-12-29 11:39:40 377

原创 FairyGUI-Cocos Creator官方Demo源码解读

这里首先进行了包的加载。我们在创建复杂游戏UI界面的时候,或者制作中大型游戏的时候,都需要自己写一套事件系统,或者更大一点,游戏框架。说明我们的主菜单承载了一个入口的作用,可以通过主菜单前往不同的Demo界面。我们发现,startdemo接受一个组件作为参数,将对应组件添加到当前节点之后,注册了一个自定义事件“start_demo”,然后销毁了主界面。包括设置按钮位置,设置按钮的绘制顺序,最后绘制可以显示在最上方,增加关联,可以适配屏幕的变化,设置关闭当前Demo的监听,最后将它加到根节点GRoot上。

2023-12-29 11:39:20 2120 1

原创 TypeScript学习记录

在基本掌握Js的语法之后,我们可以进一步学习TypeScript。Ts是Js的超集,也可以理解为扩展集合。Ts提供了面向对象的编程方式,加强了类型检查,并具有很多新特性。不同于Js是一门解释型语言,Ts是一门编译型语言。Ts代码需要经过编译,并最终转化为Js才能执行。Ts有很多新概念,下面进行一些介绍。

2023-12-27 14:14:37 933

原创 Node.js学习记录1

创建新的js文件,然后在文件里用module.exports暴露接口,然后用require导入。问题:为什么要自定义模块?1,增强代码的可读性2.提高项目的可维护性3.解决变量污染的问题express是对http模块的进一步封装,使用起来更加简便。搭建并启动本地服务器})监听get,post请求')})')})往app上挂载这个两个请求即可,用req和res接受回调。res.send方法可以传输数据。第一个参数可以省略。如果有参数,实际请求地址为根路径拼接上该参数。

2023-12-16 21:33:40 52

原创 120行代码如何用OpenGL输出一个简单的三角形

OpenGL是一个跨语言、跨平台的应用程序编程接口,它允许程序员直接在GPU上编写着色器,从而渲染出酷炫的效果。OpenGL的API非常底层,学习难度较高。通过引入GLAD或者GLEW这类扩展库,可以简化编程的流程。虽然它非常强大,但是入门门槛不低。在学习OpenGL之前,建议先去学习计算机图形学的基础。

2023-12-14 11:02:16 55

原创 C语言学习记录14(文件操作)

C语言具有操作电脑上的文件的功能。我们可以通过这个功能实现数据的存储。C程序中涉及到的所有变量和数据,都会随着程序终止被销毁。但是如果将一些数据写入文件,我们就能把它固定下来。

2023-12-13 08:33:55 49

原创 初识MySQL

作为专门储存和管理数据的工具,MySQL中的数据类型非常丰富。同时,用于表示文本数据的类型也有blob家族和text家族,还有表示少量文字的char和varchar。MySQL跟我之前学的微信小程序开发的差异还是很大的。一个网页,一款app,一项小程序,它们的核心在于数据。我们确实需要前端人员来编写精美的页面,但是如果拿不到后台的数据,我们的项目也会失去意义。除了学习了web前端和微信小程序的开发,我还想挑战一下完成数据库的学习,为我们的项目提供后台支持。数据在MySQL中的存储是具有很丰富的结构的。

2023-12-07 17:52:07 50

原创 C语言学习记录13

结构体是用来描述复杂数据类型的自定义数据类型。C语言是一门强数据类型语言,数据类型有int,long,short等整数类型,float,double等浮点数类型,char字符类型等。但是为了描述复杂事物,这些基本数据类型是不足以承担这项任务的。于是出现了结构体,它允许我们将基本数据类型组合起来,形成一个新的复杂数据类型。

2023-12-04 18:16:30 47

原创 微信小程序学习记录7

给组件标签添加custom-class属性,相当于类选择器,可以编写wxss控制组件的样式。

2023-12-02 12:09:26 48

原创 微信小程序学习记录6

今天来聊一下在实际开发中遇到的问题以及思考。笔者在学习微信小程序之前没有体系化的学习过vue,esm标准和commonjs标准,仅仅学习了html,css,js的基础语法,纯粹是一个萌新。在B站学习的时候,我发现微信小程序兼容了许多截然不同的语法。同一种功能可以用不同的方式实现。这对于知识体系的搭建很不利,如果不及时做好分析整理,难以致远。今天就开始分析一下遇到的问题。

2023-11-29 12:03:25 47

原创 C语言学习记录12

今天来聊聊整数浮点数在计算机中的存储。

2023-11-28 20:21:19 48

原创 C语言学习记录11

今天带大家来学习string.h中的函数。

2023-11-26 13:01:39 43 1

原创 C语言学习记录10(指针)

指针是C语言的独特数据类型。在Java、Go等其他常见编程语言中,很少见到指针的身影。可以说,指针是C语言的一种特色。C语言本身作为最接近汇编语言的编程语言,指针多种运算也代表了汇编语言中对于地址的运算。int *p;char* p;//普通数据类型指针定义void* p;//泛指针定义int *p[10];//指针数组定义(储存指针的数组)//数组指针定义(指向数组,解引用后访问的内存空间大小为数组大小)int **p;//普通数据类型二级指针定义。

2023-11-22 22:55:59 53 1

原创 微信小程序学习记录4

组件是封装好的数据和对象的集合。在实际开发中,有些时候我们会需要重复使用一种特殊自定义标签样式或者一类特殊自定义函数。这个时候可以将这些样式和方法定义在组件之中,需要时候进行调用。

2023-11-16 10:58:40 46 1

原创 微信小程序学习记录3

在page的js文件中的onpulldownrefresh函数里,可以进行数据的再次请求操作。在page的js文件中,找到data节点,定义一个新数据,isloading,初始值为false。在js的onreachbottom函数中,设置判断条件,如果isloading为true,就不执行请求数据函数。C语言中,字符串的本质是字符数组,可以通过操作下标来很方便的取出字符。在js中,字符串被视为一个元素,这时候可以通过strtok方法,传入间隔符参数为空字符,这样就可以把字符串转化为字符数组。

2023-11-12 16:10:35 34 1

原创 微信小程序学习记录2

一个页签配置项有四个,分别是iconpath,selectediconpath,text,pagepath这几个属性,分别控制跳转的页面路径,图标选中和非选中状态下的路径,文字描述。声明式导航,如果是tabbar页面直接使用navigator标签,指定url和open-type为switchtab即可,如果是非TabBar页面,指定open-type为navigate,或者省略。",然后以"="连接键值,不同键值对之间用&连接,实现导航传参。小程序的导航方式有两种,一种是声明式导航,一种是编程式导航。

2023-11-11 11:06:39 29 1

原创 微信小程序学习记录1

同时,wxml的标签也提供了一些更加方便的属性或者说特性。同时,wxml的rich-text中的node属性使得wxml可以很好的兼容html中的标签,对习惯使用html的开发者可以说是十分友好。用户在搜索微信小程序的时候,我们的小程序页面可能进入用户的搜索结果中。1.pages.json这个文件配置了该页面的设置,如果与app.json文件里的配置冲突,优先以pages.json为主。1.app.js 这个文件里有APP()函数,该函数只能调用一次,在整个小程序运行的生命周期中,贯穿头尾。

2023-11-06 21:06:03 68 2

原创 Js学习记录3

所谓方法就是一个函数。所以c语言中获得随机数的方法是rand()%5,js中获得随机数的方法是Math.floor(Math.random()*5)或者parse(Math.random()*5)其次,js对于对象的处理,是通过修改对象的属性值来造成影响。所以在数据的比较中,js的相等存在“==”和“===”之分,不相等存在“!js中的随机数处理是使用内置对象,Math的random的方法,返回一个[0,1)的随机数。js对于对象属性的修改流程是,获取对象,选择对象属性,在进行修改,或者修改对象的类名。

2023-11-03 16:22:41 24

原创 基于EasyX的扫雷游戏

在C语言的学习中,我们可以通过复刻一些小游戏来加深自己对于知识的理解。今天给大家带来的是一款经典小游戏,扫雷。在进行写代码之前,我们要先进入easyx的官网下载easyx图库,基于该图库可以进行可视化操作。

2023-11-01 11:13:58 365 5

原创 C语言高精度大数除法的算法实现(附有实战案例)

所以在以下所涉及到的数字中,包括被除数、除数、商、余数这四个数,我们都采用反向读入的方式,也就是将个位储存在arr[0]中,将十位储存在arr[1]中,依次类推。然而,这种思路的效率很低,因为如果被除数的位数是几百位,除数的位数是几十位,相除之后的商大概率也是几百位。最后一个语句return true意思是,如果被除数取出的每一位都和除数对应的那个位子上的数字相等,也可以相减,结果为零嘛。这个语句的意思是从最大位开始判断,遇到被除数的该位数字大于除数的情况就可以相减,被除数的该位数字小于除数的就不可相减;

2023-10-31 15:26:04 1583 1

原创 JS学习记录2

今天学习了伪选择器和盒子模型。选择器是css中可以用来选择你想要设置样式的标签,有通配符选择器,标签选择器,类选择器,id选择器,行内样式,!important。

2023-10-28 17:44:57 34 1

原创 JS 学习记录1

关于css的具体样式,我希望通过这些天的学习,能够看懂网上搜集的开源代码,并且自己通过修改格式加以灵活的运用。关于html,我希望掌握基本文本的输出格式,比如表单,列表,字体样式等。图片标签:image src用来指定图片位置,alt用来替换不显示的图片,title表示鼠标在图片上方悬浮显示的文字width或者height可以自动缩放图片。修改type属性以改变样式,可以用于输入单行文本,密码,单选,多选,上传文件等。网页标题在head的title标签中,输出段落用p,超链接用a,href制定转到路径。

2023-10-26 21:09:44 39 1

原创 C语言学习记录9

今天把pvz的收尾工作完成了,增加了开头巡场,阳光限制种植等功能,今后考虑加入更多的僵尸和植物。其中figure是池里包含的对象,Max是池的大小,used是对象的属性,代表该对象是否在池里。初始化游戏参数,包括创建对象结构体,初始化结构体,导入图片,配置随机种子等。flag是由用户交互模块所控制的,通过鼠标消息的不同点击状态来控制flag是否为真。处理游戏事件,包括碰撞检测,随机事件的发生,设置胜利与失败条件及其判断等。回顾这么多天的学习过程,我将总结制作一款小型游戏的基本框架和使用技巧。

2023-10-21 22:48:34 48 1

原创 C语言学习记录8

那行走时的动画怎么办呢,动画本质上是一系列图片的快速播放,我们可以自己去找这样的一组图片,它们循环播放就是僵尸行走的动画,然后给每个图片都标好序数,这样,我们可以在僵尸的“身份证”里定义一个动画帧序数,用来表示当前播放到第几帧。另外,在编写时,我们可以利用池的概念。因为电脑的程序运行是很快的,在很短的时间里这个程序会多次重复,所以我们需要限制僵尸生成的速度。而且这样生成的僵尸是静态的,为此我们需要把这个僵尸的参数传入更新模块,让僵尸的参数动态变化,需要动态变化的值有动画帧序数,僵尸的横坐标,血量等。

2023-10-20 11:59:52 391 2

原创 C语言学习记录7

例如,可以用type来表示该格地图的状态,比如是空白,墙还是什么。在pvz中,每个格子都只能种一个植物,所以我们可以用数字编码植物,以type来表示。在pvz中,毁灭菇爆炸后会留下一个弹坑,这个弹坑也可以设计一个type编码来实现。所有图像的放置都需要先载入。对于动画来说,可以制作一个对象每一帧的图像,将这些图像加载到一个数组中。背景图的刷新,对象的渲染需要用到时间模块,可以通过计算时间得到时间间隔,设定所需要的刷新间隔,比如以下代码。在跟进视频过程中我的收获最大的不是学习了新的代码,而是打开了新的思路。

2023-10-15 23:20:13 40 1

原创 C语言学习记录6

(2)键盘消息的话,可以采用_getch()进行键盘消息的读取,这个函数返回一个字符或者字符对应的asc码值,所以我们可以用一个变量key去存储它,然后再用switch进行分拣,再进行循环读入下一个数据。此时可以采用GetAsyncKeyState()函数进行消息读取,GetAsyncKeyState(VK_UP)指的是如果用户按下“上”这个按键,就会返回真,否则返回假。同时对函数的封装有了更深的印象,你可以自己定义想要的函数,从前对这个话理解并不是很深,现在当看到这段代码的时候印象变得尤为深刻。

2023-10-13 21:45:52 97

原创 C语言学习记录5

printf(“%6.2f”)中6和2可以通过*代替,在最后加两个参数,以后就可以用变量进行保留位数的改变了。因为getchar会自动读取用户输入的字符,但是没有字符输入的时候会阻止程序继续运行。但是setbkcolor必须在cleardevice之前使用才能生效。今天决定开始系统学习easyx图库,用于之后进行pvz的编写。发现了initgraph的几个有趣的参数,一些参数可以通。通过getchar();setbkcolor等函数。

2023-10-12 21:09:01 33

原创 C语言学习记录4

今天学习了用easyx图库进行简单的图形编辑,并且制作了pvz项目中的主界面。easyx图库还有很多要学习的地方,感觉脑子要炸了。

2023-10-12 06:59:10 50

原创 C语言学习记录3

今天学习了转义字符,并且开始跟着b站老师学习用c语言写一个Pvz啦。\0本质上是\ddd的一种,表示没有内容。'\130'和88和'X'是等价的。\xdd是字符的16进制表示形式。

2023-10-12 06:52:23 43

原创 C语言学习记录2

今天学会了快捷键的使用,Ctrl+k+c是全体注释,ctrl+k+u是取消注释,f10是一步一步调试,ctrl+f5是编译运行。同时把打印菱形程序完成了。

2023-10-08 21:06:40 52 1

原创 c++学习记录1

今天进行了pta上的15道题目练习,学会了%.2f,%04d等表达法,在群里运用了a

2023-09-28 18:33:51 67

空空如也

空空如也

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

TA关注的人

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