-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAnimationRenderer.java
More file actions
73 lines (46 loc) · 1.93 KB
/
AnimationRenderer.java
File metadata and controls
73 lines (46 loc) · 1.93 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
64
65
66
67
68
69
70
71
72
package sample;
import javafx.animation.AnimationTimer;
import javafx.scene.image.Image;
import javafx.scene.canvas.GraphicsContext;
public class AnimationRenderer extends Renderer {
private GraphicsContext context;
protected double framerate;
protected Image[] frames;
protected Entity entity;
private int frameIndex;
/**
* Constructeur de la classe AnimationRenderer.
*
* @param prefix Le préfixe commun au nom des fichiers d'images.
* @param number Le nombre total d'images dans l'animation.
* @param framerate Le taux de rafraîchissement de l'animation en images par seconde.
* @param entity L'entité à laquelle l'animation est associée.
*/
public AnimationRenderer(String prefix, int number, double framerate,Entity entity) {
this.entity= entity;
this.framerate = framerate;
frames = new Image[number];
// calcule le chemin relat
for (int i = 0; i < number; i++) {
frames[i] = new Image("/sample/"+prefix + "" + (i+1) + ".png");
}
}
/**
* Dessine l'animation sur l'interface graphique.
*
* @param level Le niveau actuel du jeu.
* @param context Le contexte graphique sur lequel dessiner l'animation.
*/
@Override
public void draw(Level level, GraphicsContext context) {
frameIndex=(int) ((Mushroom) entity).getFrameIndex();
// extraire le bon index incrémenté de la méthode tick() du mushroom
double x = entity.getX();
double y = Renderer.computeScreenY(level, entity.getY());
context.clearRect( x - entity.getWidth() / 2, y - entity.getHeight() / 2,
entity.getWidth(), entity.getHeight());
context.drawImage(frames[frameIndex] , x - entity.getWidth() / 2,
y - entity.getHeight() / 2,
entity.getWidth(), entity.getHeight());
}
}