自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 索引文件的建立与查询示例(六)

链表数据的建立、写入文件、读取文件是利用结构体指针实现,在文件中顺序写入并读取出来。

2024-02-06 10:36:50 171

原创 索引文件的建立与查询示例(五)

链表在内存中实现是通过链表的数据结构实现单个节点的存储。但是在存储至文件时,我们将内存的单个节点数据取出,通过写入文件的过程进行顺序写入。链表的大小是以字节算的,在fwrite和fread时以字节为单位进行读写,其中的size是块大小,或者理解为块大小,也就是通常说到的数据块,现在好像这个词更流行一些。我们写入5次数据节点,按链表大小16字节算,累计写入80字节的数据,入文件。我们在每写入一次节点后,打印一下文件的大小,最后写完节点后再打印一次。将链表的头节点与要写入的文件作为函数入参。

2024-01-30 23:57:35 217

原创 索引文件的建立与查询示例(四)

对上一节的链表在内存中的建立进行实验。得出以下数据输出。

2024-01-17 23:47:46 388

原创 索引文件的建立与查询示例(三)

在写一个索引文件前,我们通常需要了解树这个概念,因为在内存中存放的数据结构的实现,大多数是由树构成的,而树在内存中的实现是通过指针的方式实现。学习树的实现方式通常是在内存中的建立和遍历,而没有拓展到文件中,这就导致了很多人只了解到一些书面的练习,而没有在实际中进一步运用,比如将内存中的组织形式存入到文件中,因为除非内存数据库那种形式,否则大批量的数据仍然需要落地到文件,并且建立索引文件以便进一步组织各数据文件的逻辑关系。我们重新复习相关的知识点,试着定义链表、建立链表、做数据输入,先做内存部分实现。

2024-01-17 00:57:43 388

原创 索引文件的建立与查询示例(二)

如int型成员的自然对界条件为4字节对齐,而double类型的结构成员的自然对界条件为8字节对齐。我们在建立索引之前,需要对计算机各变量所占的内存大小有一个初步的了解,比如结构体内有不同的变量构成,在写入文件时会根据变量的大小进行文件内空间大小的占用。通过测试验证,看到结构体内的各变量占用内存大小分别是10字节、4字节、4字节、15字节,理论上结构体大小应该是10+4+4+15=33字节,但实际上结构体占用内存分配的大小是36字节,系统按4字节的单元进行内存分配,多余出的3字节也被预占了。

2024-01-14 13:35:55 380

原创 索引文件的建立与查询示例(一)

通过索引字段查找索引记录。输入要查找的记录id。在索引文件中查找。

2024-01-07 17:46:43 330

原创 linux练习操作

虚1.mount /opt/exam/kylin/iso/Kylin-Server-10-8.2-Release。虚2 nmcli connection add type bond ifname。在Archive目录下创建一个DocumentB.txt的硬链接‘LinkB’。在Archive目录下创建指向Report.txt的软链接。数据库 ./ksql -d test -U system。虚4.mkdir /home/Archive。虚3.rpm -qa |grep ntp。

2023-11-18 11:10:42 60

原创 Android (安卓)界面设计(一)

例如点击文本框,在右侧对应的属性则变成了文本框相关的属性,比如修改text,默认是hello world,可以修改为需要表达的内容。在新建一个简单的app工程后,在工程项目的框架中存在界面设计的配置界面。具体的在res->layout的目录下,生成的activity_main.xml。其中布局是对应的左侧的白色界面。安卓使用xml和java结合的方式进行开发,通过修改xml的配置达到快速预览的目的。在design的一栏中有attributes属性,里面有界面整体的属性设置。

2023-09-07 07:17:46 246

原创 Android 开发环境调测验证(三)

可以看到系统已经创建的模拟器,例如Pixel_3a_API_extension_lev…如果调试测试既没有连接手机设备,也没有连接模拟器,则可以自行创建模拟器。创建模拟器的方法,选择Tools->Device Manager,点击菜单Run->Run ‘app’,新建工程的程序开始启动。点击Create device。下图是具体创建模拟器的界面。创建后的模拟器管理如下窗。至此,调测程序正常完成。

2023-09-01 07:44:28 77

原创 Android 开发环境调测验证(二)

开发环境调测

2023-08-30 07:34:58 992

原创 Android 开发环境调测验证(一)

这里需要耐心等待一些,因为中间过程需要下载一些需要的文件,我们从编译日志中能够看出来。编译过程有的按毫秒计算,慢一些的按秒计算。下面是一个编译过程开始时的日志。选择编译App工程,编译整体项目的模块,选择Build->Make Project,编译整个项目下的所有模块。整体编译过程用时3分21秒。这和网络下载速率、本机CPU、内存配置有关系。在新建完一个最简单的工程后,我们来验证环境是否正常。Android 开发环境调测验证。

2023-08-27 10:44:56 128

原创 Unity二维平面上物体的移动(十九)

上一节中实现将机器人巡检各物体位置,并逐一到达各物体跟前。但此时机器人是不具备刚体属性,也就是能够穿越各类物体。当机器人从无刚体属性变成刚体属性时,给他再加上碰撞盒属性,他就不会随便穿过物体了。那此时他想到达目标物体,我们提到了会在实际的场景中遇到障碍物的情况,同时会出现选择哪条路径绕过障碍物,选择最优路径解的情形。Unity3D 本身自带了导航系统功能,不过为理解的深入一些,也可以按照自己的思路来做设计导航功能。Unity自带的导航功能是需要有3D空间内的网格渲染或者是地形,在二维平面中暂时没有找到相

2022-12-05 00:07:18 350 1

原创 Unity二维平面上物体的移动(十八)

上一节中实现了圆形机器人到达指定目标物体时,和目标物体打个招呼。实际情况是一个环境中会有很多物体,在出发前做一次整体扫描,了解环境中的整体物体数量和物体名称。我们随机做一下巡检,让物体在出发后按照扫描出来的顺序进行分析,逐一到达各个物体前。

2022-12-03 00:10:41 162

原创 Unity二维平面上物体的移动(十七)

上一节中实现了圆形机器人认识周围环境中物体的数量和名称。圆形机器人应该具备巡逻能力,了解环境中物体所在位置后,逐个到达物体前面进行巡逻。在环境中需要从近到远巡逻。到达目标物体时,和目标物体打个招呼。这就需要机器人具备自动感知目标物并且能够到达目标物的能力。

2022-11-29 13:27:56 450

原创 Unity二维平面上物体的移动(十六)

那么观察者就需要清楚一个空间内有多少物体,各个物体的位置坐标在哪里。当然物体量不大时,简单的运算就能出来了。做一下简单的认识运算。了解外部世界的变化,物体的移动,这就需要对其能力进行不断补充。在上一节中我们提到了相对物体的移动情况,即作为观察者不动时,参照物在移动,参照物的移动似乎也表示着空间内物体距离的变化。All Objects numbers is 14个。对照我们的环境,验证圆形机器人的输出结果是正确的。Foreach numbers is 14个。Foreach numbers is 5个。

2022-11-28 01:33:54 430

原创 Unity二维平面上物体的移动(十五)

这里面1、2两种是通过位移,3、4两种是利用刚体,但是有一个问题是当物体是刚体属性时,也能使用位移就是穿过其他物体或者说当其他物体能够有间隙移动时,从其他物体的间隙中通过。第5种可以当做顺时移动至某一位置。经过实践了二维平面上物体移动的场景,回顾一下,温故而知新。2.用开发环境自带设置,Input.GetAxis()4. 赋予一个刚体初速度。1.通过键盘方式控制。5.直接指定物体位置。

2022-11-27 17:16:44 684

原创 Unity二维平面上物体的移动(十四)

前几节都是提到物体移动作为操纵者主观的移动,按相对论的说法,物体相对于参照物的位置变化可以表示自身的运动变化情况。所以在二维模式中,我们可以将客观参照物作为一个移动变化的物体来达到操纵者相对变化的目的。以圆形和方形为例,圆形不动,让方形向左自动移动,当方形物体到达左面的一个边界时,使方形物体重新回到起点,重复上述轨迹。在上图中我们可以用另外一个标志物来衡量方形到达的左边界位置,就是前面所述中的弹弓slingshot,通过方形的自动移动,让方形到达左面边界时回到起点。

2022-11-27 01:59:18 265

原创 Unity二维平面上物体的移动(十三)

当然我们本次先试验能够基准打击即可,至于爆炸属性则是需要一些爆炸的物理方面的知识,在何种物理情况下的爆炸会使得什么样的物理对象发生炸裂,如果要做到客观,则需要精心设计这个环节。那么抛物线轨迹就是定的。12.这就是我们所说到的第三方非控制角色了,非控制角色其实也是设定好的一些角色的属性,但是智能有没有需要打一个问号,至少简单的游戏里面是没什么智能的,就是一些属性。有了抛物轨迹,我们通过物理公式小鸟和目标物的横向距离计算小鸟的水平初速度和上升初速度,然后通过赋予这一初速度矢量,实现小鸟的发射并定位。

2022-11-20 01:40:19 451

原创 Unity二维平面上物体的移动(十二)-抛物线推动力

如果小鸟能够做到自动判断,则小鸟需要对目标区域首先完成扫描才行,然后根据不同距离计算出发射初始的推动力的大小,然后实现精准打击。如何解决这一问题呢?我们在判断生成小鸟的条件时,不能按照原来的思路进行刚体速度的判断,需要根据位移情况进行判断。上一节说到小鸟移动是靠位移来实现的,但是由于之前生成小鸟的脚本是按预制体的刚体速度判断的,而小鸟之前的发射是靠推动力实现的,所以会出现小鸟在位移情况下不具备刚体速度,小鸟不断产生的情况。当然此时小鸟的刚体属性发挥作用,使得小鸟刚体没有速度时才会生成第二只小鸟。

2022-11-05 00:20:58 598

原创 Unity二维平面上物体的移动(十一)-位移和推动力移动的区别

如何解决这一问题呢?我们在判断生成小鸟的条件时,不能按照原来的思路进行刚体速度的判断,需要根据位移情况进行判断。或者如果按照刚体速度判断,则必须给小鸟使用推动力走抛物线,不能按照位移来实现。以上程序中小鸟移动是靠位移来实现的,但是由于之前生成小鸟的脚本是按预制体的刚体速度判断的,而小鸟之前的发射是靠推动力实现的,所以会出现小鸟在位移情况下不具备刚体速度,小鸟不断产生的情况。//重力初始速度为0。

2022-11-04 17:02:20 603

原创 Unity二维平面上物体的移动(十)-抛物线

由此可以联想到我们是否可以发射一个小鸟来形成炮弹状效果,击打物体。对于小鸟这个预制体,我们每隔一定时间,发射一次小鸟。在上一节,我们解决了一个小bug,使得小鸟不会一次产生多个。但是,小鸟没有自动发现目标并击中目标,我们可以为小鸟增加识别功能,进行对目标精准打击。当给小鸟不同的初速度时,小鸟发射的距离不一样。//通过一个式子计算初速度。//重力初始速度为0。//重力初始速度为0。

2022-11-03 00:35:10 991

原创 Unity二维平面上物体的移动(九)

无论如何拖动小鸟转圈,小鸟所达到的距离都在弹弓radius之内,所以,这个时候是不会超出边界的,也就不会不断产生小鸟。

2022-10-27 20:33:24 556

原创 Unity二维平面上物体的移动(八)

另外一个是小鸟飞出边界的问题。小鸟飞出边界的问题其实是同上几节中实践的圆形和方形飞出边界的问题一样,及位移导致没有被边界捕获。另外设置一下小鸟的物理特性,使用Physics Material 2D,设置Bounciness,表示小鸟的反弹情况。当我们将鸟弹射出去时,多次发射小鸟,会出现小鸟飞出边界但未被边界捕获的情况,而在边界外持续飞翔。当我们转动小鸟从弹弓圈内转出弹弓圈外的时候,小鸟会继续产生,发现这里面有一个bug,同前几节一样,我们设置边界,同时加上边界属性,再加上销毁超出边界的对象的属性。

2022-10-27 16:24:19 620

原创 Unity二维平面上物体的移动(七)

上一节中提到的给物体设定了边界,当物体在靠近边界时,边界使物体变成消失状态了。当然起到关键作用的是边界的触发属性,Is Trigger。Is Trigger后面的的小框必须打钩才能使得物体遇到边界变成消失,如果把√去掉,则边界使物体消失的功能就不能被触发。当圆形移至最左端时使得圆形来回跳动,改变坐标系,使得上下左右键其中能够起到对Z轴的控制。圆形已经位移到超出平面空间,进入次维空间。这时,圆形超出了摄像机的范围,故而在game界面无法查看到。当圆形和方形遇到边界时,被边界阻拦,无论如何都超不出边界?

2022-10-21 22:15:19 241

原创 Unity二维平面上物体的移动(六)

碰撞盒属性是可以设置碰撞盒的边界的,例如我们的leftBorder,Size是碰撞盒的大小。这里面需要提醒一下,这个碰撞盒属性是赋予在一个空的对象上的,而空的对象的Scale则填(1,1,1)即可,无需设置多么大的范围。利用一个空的对象,新建GameObject中的Create Empty,创建边界,左边界、右边界、上边界。我们给边界赋予属性,使得物体遇到边界时消失。我们在实验方形和圆形移动时,之前是没有添加边界的,所以会造成如果两物体超出底部的支撑端,则两物体掉入空间中。运行试试效果。

2022-10-21 20:36:43 218

原创 Unity二维平面上物体的移动(五)

因为此时自身坐标发生旋转,所以原本的控制按键则发生了让我们主观感觉没有按照既定设置去展示的移动方向,但是仔细观察,其实按键后方形移动方向和坐标方向还是一致的。这时能够看出来方形的坐标方向是XY轴是有了变化的,因为我们在控制方形跳跃圆形时,由于方形的不稳定性,方形会发生旋转。这是为什么呢,我们看下代码 this.gameObject.transform.Translate(Vector3.right * Time.deltaTime。因为圆形和方形具有了实际的移动属性,初始状态下圆形在左,方形在右。

2022-10-21 01:24:12 263

原创 Unity二维平面上物体的移动(四)

在同时按下圆形和方形互斥方向时,即圆形朝右侧移动但方形朝左侧移动,圆形和方形相遇后,方形能够推动圆形朝着左侧移动。给两图形分别添加刚体属性(rigidbody)和碰撞盒属性(collider box),一般情况下刚体和碰撞盒属性是同步添加的,刚体使物体具有实际物理属性,碰撞盒属性使物体具有不可被其他物体穿越的属性。在第二节我们提到后续我们可以给平面上的两个物体添加刚体属性,因为目前物体不具备实际物体的属性,遇到两物体相遇时仍然能够彼此通过,添加刚体属性后的情况实践一下就知道。运行程序,看一下效果。

2022-10-16 21:39:01 502

原创 Unity二维平面上物体的移动(三)

我们将灯泡图标旁边的2D点一下,让空间变成3D,然后执行程序,移动上下键,能看到物体在Z轴顺畅移动,Z轴是标蓝色的轴。从右图能看到圆形在二维平面上只是较少的上移了一些,与右面的方形物体的水平面相比,可结合上一张图的右图来对比。那是因为在二维平面上forward代表的Z轴体现效果不明显,所以看着物体是不移动的,换做三维空间中能看到顺畅的移动。总之,二维平面是三维空间的一部分,学好二维平面,在二维切换三维的过程中,原理是相通的,二维看到的效果可以和三维看到的效果做对比,更能反映空间成像效果。

2022-10-13 20:40:31 1480

原创 笔记本电脑usb供电不足的解决方法

电脑主板供电会采用一个轻重缓急的机制,在该机制中,电脑前置usb是不重要的一个 ,所以它的供电是排在供电顺序的后边的,如果需要供电,首先供电给其他零部件,所以就导致出现供电不足。选择USB3.0集线器属性中的电源管理,当然不同版本的操作系统可能在这个通用串行总线控制器下展示的内容不一样,但是只要找有电源管理的选项即可。找到“我的电脑(或此电脑)”,然后鼠标右键找到“设备管理器”,点击该选项,打开“设备管理器”面板,如图。重启电脑,即可彻底解决。把前面的这个对勾去掉。一、供电不足问题分析。

2022-10-13 09:41:00 15322

原创 Unity二维平面上物体的移动(二)

比照上一节给方形物体添加控制平面移动的脚本,SquareMovement.cs。这次选择从Add Component中添加脚本,New Script,建立的脚本默认的位置在Assets下。后续我们可以给这两个物体添加刚体属性,因为目前物体不具备实际物体的属性,遇到两物体相遇时仍然能够彼此通过,添加刚体属性后的情况实践一下就知道。当我们运行程序时,移动W/A/S/D键,则能看到两个物体同时在移动。在Inspector窗口中点击Script旁边的SquareMovement,能看到脚本的位置。

2022-10-09 11:13:37 556

原创 解决局域网内win7出现IPV4地址冲突的问题

通过管理员用户登录,输入:netsh winsock reset catalog 按回车。重新填写后还是不行。后使用配置NETBIOS的TCP/IP进行解决,在网卡TCP/IP的属性-高级-WINS下,NETBIOS设置中选择启用TCP/IP上的NETBIOS(N),解决此问题。局域网内win7会出现IPV4地址冲突,使用ipconfig -all 查看配置发现ipv4自动配置启用了。解决局域网内win7会出现IPV4地址冲突,关闭局域网内ipv4自动配置。

2022-10-09 08:27:35 2420

原创 Unity二维平面上物体的移动(一)

实验一个最简单的二维平面上物体的移动,通过键盘的WASD来控制物体。先建立二维平面,摄像机是默认出来的。我们导入一个圆形(Circle),然后给Circle添加组件(Add Component),New Script,通过在脚本中输入不同按键,来达到控制圆形的目的。也可以单独在自己这个存放脚本的文件夹下,建立一个Movement的C#文件,然后将此文件拖入Circle这个物体,从而达到对物体的控制。脚本名叫做Movement,这个放到Scripts文件夹下单独自己自定义一个文件夹,存放自己的脚本。

2022-10-08 23:44:56 701

原创 Unity 改变下载资源商店中资源默认路径的方法

但是,unity默认是将资源商店的下载路径设置在了C:\Users\操作系统当前用户\AppData\Roaming\Unity\Asset Store-5.x,如果你删除这个文件夹,一会Unity程序会自动创建这个文件夹,所以需要使用文件系统的软连接解决这个问题。系统提示结果:为 C:\Users\操作系统当前用户\AppData\Roaming\Unity\Asset Store-5.x D:\Unity\Asset Store-5.x 创建的联接。执行后,在原来位置上面建立了软链接。

2022-10-03 13:45:49 3416

原创 关于Unity创建项目时进度栏一直不动的问题

今天再次打开unity hub,将原先创建失败的项目先从unity hub 组中移除,然后找到电脑下的项目相关的文件夹,删除。重新再次创建新项目,直接提示许可证过期了,因为个人版的许可证总是有3天的一个期限,所以我们在使用许可证时一定要留意许可证的到期时间。好了,这次再进行项目创建,在上次停留的环节,耐心等待了一会,然后顺利创建了项目。所以通过这个过程判断,上次应该是卡在许可证过期的这个环节,尤其可能是3天期限这个周期,如果恰逢创建项目在许可证的过期临界点,那么可能造成项目不能够创建完整。

2022-10-02 01:05:37 2452

原创 关于inode使用量达到100%影响文件创建及数据库的问题

业务侧在启动数据库的时候,oracle启动监听的时候会在/var/tmp/.oracle/下创建文件,但在创建文件的时候,提示空间不足。通过排查,发现/var/log/maillog,占用空间比较大,约占用12G的空间,清理完之后,发现/var/tmp/.oracle/还是不能创建文件。最后检查/etc/mtab文件,发现根目录缺失,通过grep -v rootfs /proc/mounts命令修复。但在/var/tmp/.oracle/还是不能创建文件,提示空间不足,实际问题仍然没有解决。

2022-09-23 22:58:58 1239

原创 关于Unity Hub 和Unity的安装路径关联问题

Unity Hub和Unity 安装时请各自独立安装

2022-09-18 20:32:37 2306

原创 Unity3D 进行任意角度调节视角

通过ALT随心使用Unity3D,任意角度观察地形。

2022-09-04 18:06:50 5449 1

空空如也

空空如也

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

TA关注的人

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