godot引擎基础学习笔记12(C#)(完结)

该文章已生成可运行项目,

一、粒子系统

主要分为两个节点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飞羽的视频,笔记为自己总结

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值