lib.cpp 864 B

123456789101112131415161718192021222324252627282930313233343536
  1. #define ENTT_API_EXPORT
  2. #include <entt/entity/registry.hpp>
  3. #include <entt/lib/attribute.h>
  4. #include "types.h"
  5. ENTT_API entt::component int_type() {
  6. entt::registry registry;
  7. (void)registry.type<double>();
  8. (void)registry.type<float>();
  9. return registry.type<int>();
  10. }
  11. ENTT_API entt::component char_type() {
  12. entt::registry registry;
  13. (void)registry.type<double>();
  14. (void)registry.type<float>();
  15. return registry.type<char>();
  16. }
  17. ENTT_API void update_position(int delta, entt::registry &registry) {
  18. registry.view<position, velocity>().each([delta](auto &pos, auto &vel) {
  19. pos.x += delta * vel.dx;
  20. pos.y += delta * vel.dy;
  21. });
  22. }
  23. ENTT_API void assign_velocity(int vel, entt::registry &registry) {
  24. for(auto entity: registry.view<position>()) {
  25. registry.assign<velocity>(entity, vel, vel);
  26. }
  27. }