
public Texture2D Bullet_Image = new Texture2D();
Bullet_Image = GD.Load<Texture2D>("res://bullet.png");
PhysicsServer 用于给赋值属性和属性初始化
Shape = PhysicsServer2D.CircleShapeCreate();
PhysicsServer2D.ShapeSetData(Shape,8);
在_Process里面调用QueueRedraw
public override void _Process(double delta)
{
QueueRedraw();
}
生成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);
}