前言
Godot 官方 教程
Godot 2d 官方案例C#重构 专栏
Godot 2d 重构 github地址
实现效果
难点介绍
Godot GDScript和C# 对应关系大部分靠猜
文件导入
- 资源地址:默认为res://开头
- 2D贴图导入类型:Texture2D
public Texture2D Bullet_Image = new Texture2D();
Bullet_Image = GD.Load<Texture2D>("res://bullet.png");
2D属性赋值,PhysicsServer
PhysicsServer 用于给赋值属性和属性初始化
Shape = PhysicsServer2D.CircleShapeCreate();
PhysicsServer2D.ShapeSetData(Shape,8);
刷新UI
在_Process里面调用QueueRedraw
public override void _Process(double delta)
{
QueueRedraw();
}
绘制UI
生成2D贴图
DrawTexture(Texture2D img, Vector2 position);
重载_Draw函数
public override void _Draw()
{
var offset = -Bullet_Image.GetSize();
//Godot重载了对应的运算符
offset = offset /2;
foreach (var item in bullets)
{
DrawTexture(Bullet_Image, item.position + offset);
}
base._Draw();
}
离开页面销毁
销毁
PhysicsServer2D.FreeRid(item.body);
离开页面销毁
public override void _ExitTree()
{
foreach (var item in bullets)
{
PhysicsServer2D.FreeRid(item.body);
}
PhysicsServer2D.FreeRid(Shape);
base._ExitTree();
}
定位到鼠标位置
重载 _Input函数,获取鼠标参数
public override void _Input(InputEvent @event)
{
if(@event is InputEventMouseMotion)
{
var mouseEvent = (@event as InputEventMouseMotion);
Position = mouseEvent.Position;
}
base._Input(@event);
}