A Smoll game engine
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

39 rader
1.2 KiB

8 månader sedan
8 månader sedan
8 månader sedan
8 månader sedan
8 månader sedan
8 månader sedan
  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. }