A Smoll game engine
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

40 рядки
1.2 KiB

using System.Numerics;
using Raylib_cs;
namespace Smoll.Ex1 {
class RectangleGizmoComponent : Smoll.Component {
Complex size;
Color color;
Transform2DComponent? ownerTransform;
public RectangleGizmoComponent(int width, int height, Color color)
{
this.size = width + Complex.ImaginaryOne*height;
this.color = color;
}
public override void OnAttached() {
ownerTransform = owner.GetComponent<Transform2DComponent>();
}
public override void Draw(Smoll.Layer.DrawMode drawMode) {
ownerTransform ??= owner.GetComponent<Transform2DComponent>();
ownerTransform ??= new Transform2DComponent();
var tr = ownerTransform.AbsoluteTransform();
Raylib.DrawRectanglePro(
new Rectangle(
(float)tr.position.Real,
(float)tr.position.Imaginary,
(float)(size.Real*tr.scale),
(float)(size.Imaginary*tr.scale)
),
new Vector2(
(float)(0),
(float)(0)
),
tr.angle*180f/MathF.PI,
color
);
}
}
}