A Smoll game engine
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

48 líneas
1.3 KiB

hace 8 meses
hace 8 meses
hace 8 meses
hace 8 meses
hace 8 meses
hace 8 meses
hace 8 meses
  1. using Raylib_cs;
  2. using Smoll;
  3. using Smoll.Ex1;
  4. using Smoll.Ex2;
  5. Raylib.InitWindow(800, 600, "Smoll");
  6. Layer layer = new Layer();
  7. Layer debugLayer = new Layer(Layer.DrawMode.Debug);
  8. Engine engine = new Engine();
  9. engine.AttachModule(new Smoll.Ex2.RaylibAssetManagerModule());
  10. engine.AttachLayer(layer);
  11. engine.AttachLayer(debugLayer);
  12. /* */
  13. var player = new Entity(layer);
  14. debugLayer.Attach(player);
  15. player.Attach(new Transform2DComponent(128, 128, 0, 1));
  16. player.Attach(new CrosshairGizmoComponent());
  17. player.Attach(new ExampleInputComponent(100f, 0.25f));
  18. var entity = new Entity(player);
  19. entity.Attach(new Transform2DComponent(-16, -16, 0, 4));
  20. var ship = new SpriteComponent("Ship.png");
  21. ship.zOrder = 1;
  22. entity.Attach(ship);
  23. var entity2 = new Entity(entity);
  24. entity2.Attach(new Transform2DComponent(5, -10, 0));
  25. entity2.Attach(new SpriteComponent("Laser.png"));
  26. var arrow = new ArrowComponent(4, 4);
  27. arrow.rawValue = new System.Numerics.Complex(0, -12);
  28. entity2.Attach(arrow);
  29. entity2.Attach(new ExampleShootingInputComponent());
  30. /* */
  31. while(!Raylib.WindowShouldClose()) {
  32. engine.Update();
  33. Raylib.BeginDrawing();
  34. Raylib.ClearBackground(Color.White);
  35. engine.Draw();
  36. Raylib.DrawFPS(0,0);
  37. Raylib.EndDrawing();
  38. GC.Collect(0);
  39. }
  40. Raylib.CloseWindow();