A Smoll game engine
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

39 行
1.2 KiB

8ヶ月前
8ヶ月前
8ヶ月前
8ヶ月前
  1. using System.Numerics;
  2. using Raylib_cs;
  3. namespace Smoll.Ex1 {
  4. class RectangleGizmoComponent : Smoll.Component {
  5. Complex size;
  6. Color color;
  7. Transform2DComponent? ownerTransform;
  8. public RectangleGizmoComponent(int width, int height, Color color)
  9. {
  10. this.size = width + Complex.ImaginaryOne*height;
  11. this.color = color;
  12. }
  13. public override void OnAttached() {
  14. ownerTransform = owner.GetComponent<Transform2DComponent>();
  15. }
  16. public override void Draw(Smoll.Layer.DrawMode drawMode) {
  17. ownerTransform ??= owner.GetComponent<Transform2DComponent>();
  18. ownerTransform ??= new Transform2DComponent();
  19. var tr = ownerTransform.AbsoluteTransform();
  20. Raylib.DrawRectanglePro(
  21. new Rectangle(
  22. (float)tr.position.Real,
  23. (float)tr.position.Imaginary,
  24. (float)(size.Real*tr.scale),
  25. (float)(size.Imaginary*tr.scale)
  26. ),
  27. new Vector2(
  28. (float)(0),
  29. (float)(0)
  30. ),
  31. tr.angle*180f/MathF.PI,
  32. color
  33. );
  34. }
  35. }
  36. }