2024-10-09 02:01:23 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
2024-10-13 04:22:09 +02:00
|
|
|
#include <raylib.h>
|
|
|
|
|
|
2024-10-09 02:01:23 +02:00
|
|
|
#include "datatypes.h"
|
|
|
|
|
#include "moveable.h"
|
|
|
|
|
|
|
|
|
|
class Signal : public Movable{
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
Signal();
|
2024-11-01 02:38:47 +01:00
|
|
|
Signal(Vec2D<float> position, float r, float _speed, Color color) : Movable(position, Vec2D<float>(0,0), _speed), radius(r), color(color) {}
|
2024-10-09 02:01:23 +02:00
|
|
|
|
2024-11-01 14:08:27 +01:00
|
|
|
SPTR_Node next;
|
|
|
|
|
SPTR_Node last;
|
|
|
|
|
SPTR_Edge edge;
|
2024-10-13 04:22:09 +02:00
|
|
|
|
2024-11-01 14:08:27 +01:00
|
|
|
SPTR_Node start;
|
2024-10-24 21:05:05 +02:00
|
|
|
|
2024-10-13 04:22:09 +02:00
|
|
|
bool at_target = false;
|
2024-10-09 02:01:23 +02:00
|
|
|
|
|
|
|
|
float radius;
|
|
|
|
|
|
2024-10-25 02:43:41 +02:00
|
|
|
float multiplier = 1.0f;
|
|
|
|
|
|
2024-10-22 03:07:11 +02:00
|
|
|
Color color;
|
|
|
|
|
|
2024-10-28 02:07:47 +01:00
|
|
|
void update(double t_delta){
|
2024-10-25 02:43:41 +02:00
|
|
|
// 120px / 16th = 1920px / whole note
|
|
|
|
|
// whole note = 2s at 120bpm
|
|
|
|
|
// 960px / s
|
|
|
|
|
position += direction.norm() * speed * multiplier * (float)t_delta / 1000000.0f;
|
2024-10-22 01:55:31 +02:00
|
|
|
}
|
|
|
|
|
|
2024-11-01 02:38:47 +01:00
|
|
|
void draw(Vec2D<float> mouse, Camera2D cam) {
|
2024-10-22 03:07:11 +02:00
|
|
|
DrawCircle(position.x, position.y, radius, color);
|
2024-10-13 04:22:09 +02:00
|
|
|
}
|
2024-10-09 02:01:23 +02:00
|
|
|
};
|