一、粒子系统
主要分为两个节点CPUParticles2D和GPUParticles2D,分别基于两种处理器进行计算粒子特效,GPU节点的性能相对较好,CPU节点的兼容性更好
以GPU节点为例,创建节点后需要在属性栏Texture处添加一个贴图,并在processMaterial过程材质中新建一个材质比如ParticleProcessMaterial,此时粒子特效会产生,默认会有一个坠落的效果
相关的属性设置
Amount:单位时间内的粒子发射数量
processMaterial→Accelerations→gravity:重力效果,可设置不同轴向的重力加速度
processMaterial→spawn→position:位置变量修改,能够对粒子的初始位置进行设置
processMaterial→spawn→angle:旋转变量修改,能够对粒子在发射过程的旋转角度进行设置
processMaterial→spawn→velocity:速度方向变量修改,能够对粒子的发射方向,速度等进行设置
processMaterial→display→scale:粒子的大小缩放
processMaterial→display→scale→scaleCurve:粒子大小随时间的变化曲线,可以设置先打后小的特效
processMaterial→display→colorCurves:可以设置粒子的颜色,可以设置粒子颜色随时间变化的渐变
Time→lifetime:粒子的存在时间,默认为1
Time→oneShot:表示粒子只会发射一次
Time→preprocess:预加载粒子,设置时间后之间调用会从该时间段后的粒子效果来显示,相当于跳过了发射阶段
二、存取数据
res://资源文件路径,游戏的各种图片声音等资源存放处
use://存档数据路径,此为虚拟路径,用于保存用户数据,不同系统的路径各不相同
//可以通过该语句将路径转化为本系统的实际路径进行调用 string path = ProjectSettings.GlobalizePath("user://1.txt"); //写入数据 File.WriteAllText(path,"test"); //前面为路径,后面为内容 //读取数据 string str = File.ReadAllText(path); //读取该路径的文件内容,赋值给str三、复杂数据的存储
通常使用的是json数据交换格式
{}表示一个大字典,[]表示一个数组(数组中类型必须一致),数据结构大致如下
{ "users":[{"name":aa,"Hp":100}, {"name":bb,"Hp":300}], "worldid":123 }创建json数据
//创建字典数据 Dictionary user1 = new Dictionary(); Dictionary user2 = new Dictionary(); //为字典填入数据 user1["name"] = "aa"; user1["Hp"] = 100; user2["name"] = "bb"; user2["Hp"] = 300; //新建一个数据,并将两个字典放入 var users = new Godot.Collections.Array(user1,user2); //创建一个新的数据字典 Dictionary dic = new Dictionary(); //将数组放入其中一个属性内容中 dic["user"] = users; dic["worldid"] = 123; string json = Json.Stringify(dic); //将数据转为json格式数据读取json数据
//将数据json字符串转为字典 Dictionary newDic = Json.ParseString(json).AsGodotDictionary();更多json数据的使用等,需要学习C#中的json数据使用
四、数据网络请求
添加HTTPRequest节点,为节点添加脚本
一般在创建时请求一次数据就可以
public override void _Ready(){ //发送get请求 Error error = this.Request("某个服务器数据路径"); if(error != Error.OK){ GD.Print("请求失败"); } }如果请求成功节点会发送信号到某个特殊方法中,需要在脚本中创建一个方法来接收数据
//res是请求结果,code是状态码,header是请求头,body为实际请求的内容即json数据 public void request_completed(int res,int code,string[] header,byte[] body){ //请求到的数据需要转换为json字符串 string str = Encoding.UTF8.GetString(body); }godot引擎基础学习完结,学习内容是B站的game飞羽的视频,笔记为自己总结