Repository navigation
Expand file tree
/
Copy pathMover.pde
More file actions
63 lines (56 loc) · 1.5 KB
/
Copy pathMover.pde
File metadata and controls
63 lines (56 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
class Mover {
PVector position;
PVector velocity;
PVector acceleration;
float mass;
float damping;
float detectionRadius;
boolean isAttracted;
//constructeur pour le mouveur avec x y pour son 'spawn'
Mover(float x, float y) {
position = new PVector(x, y);
velocity = new PVector();
acceleration = new PVector();
mass = 24;
damping = 0.98;
detectionRadius = 100;
isAttracted = false;
}
//met a jour sa position selon les vecteurs de mouvement
void update() {
velocity.add(acceleration);
velocity.mult(damping);
position.add(velocity);
acceleration.mult(0);
}
void applyForce(PVector force) {
PVector f = force.copy();
f.div(mass);
acceleration.add(f);
}
//methode pour parametrer la distance
void setDistance(float distance) {
detectionRadius = distance;
}
//verifie si le joueur est dans la zone de detection
void checkProximity(Joueur joueur) {
float distance = PVector.dist(position, joueur.position);
if (distance < detectionRadius) {
isAttracted = true;
PVector force = PVector.sub(joueur.position, position);
force.setMag(10);
applyForce(force);
} else {
isAttracted = false;
}
}
//affiche le mover avec la couleur verte au repos et gris si il suit le joueur
void show() {
if (isAttracted) {
fill(127);
} else {
fill(0, 255, 0);
}
ellipse(position.x, position.y, mass * 2, mass * 2);
}
}