Skip to content

Commit 30f34d7

Browse files
Refac 2D rendering
1 parent 82aa4fa commit 30f34d7

File tree

10 files changed

+45
-46
lines changed

10 files changed

+45
-46
lines changed

pacman-app-arcade-mspacman/src/main/java/de/amr/pacmanfx/arcade/ms_pacman/rendering/ArcadeMsPacMan_GhostAnimationManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ public void selectFrame(String id, int frameIndex) {
5353
@Override
5454
protected void updateActorSprites(Actor actor) {
5555
if (actor instanceof Ghost ghost) {
56-
switch (currentAnimationID) {
57-
case ANIM_GHOST_NORMAL -> current().setSprites(ghostNormalSprites(ghost.wishDir()));
58-
case ANIM_GHOST_EYES -> current().setSprites(ghostEyesSprites(ghost.wishDir()));
56+
switch (selectedID) {
57+
case ANIM_GHOST_NORMAL -> currentAnimation().setSprites(ghostNormalSprites(ghost.wishDir()));
58+
case ANIM_GHOST_EYES -> currentAnimation().setSprites(ghostEyesSprites(ghost.wishDir()));
5959
}
6060
}
6161
}

pacman-app-arcade-mspacman/src/main/java/de/amr/pacmanfx/arcade/ms_pacman/rendering/ArcadeMsPacMan_PacAnimationManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ public ArcadeMsPacMan_SpriteSheet spriteSheet() {
4040
@Override
4141
protected void updateActorSprites(Actor actor) {
4242
if (actor instanceof Pac pac) {
43-
switch (currentAnimationID) {
44-
case ANIM_PAC_MUNCHING -> current().setSprites(msPacManMunchingSprites(pac.moveDir()));
45-
case PAC_MAN_MUNCHING -> current().setSprites(mrPacManMunchingSprites(pac.moveDir()));
43+
switch (selectedID) {
44+
case ANIM_PAC_MUNCHING -> currentAnimation().setSprites(msPacManMunchingSprites(pac.moveDir()));
45+
case PAC_MAN_MUNCHING -> currentAnimation().setSprites(mrPacManMunchingSprites(pac.moveDir()));
4646
}
4747
}
4848
}

pacman-app-arcade-pacman/src/main/java/de/amr/pacmanfx/arcade/pacman/rendering/ArcadePacMan_GhostAnimationManager.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import static de.amr.pacmanfx.Globals.*;
1515
import static de.amr.pacmanfx.Validations.requireValidGhostPersonality;
1616
import static de.amr.pacmanfx.arcade.pacman.ArcadePacMan_UIConfig.*;
17-
import static de.amr.pacmanfx.arcade.pacman.rendering.SpriteID.*;
1817
import static de.amr.pacmanfx.model.actors.CommonAnimationID.*;
1918

2019
public class ArcadePacMan_GhostAnimationManager extends SpriteAnimationManager<SpriteID> {
@@ -69,10 +68,10 @@ public void selectFrame(String id, int frameIndex) {
6968
protected void updateActorSprites(Actor actor) {
7069
if (actor instanceof Ghost ghost) {
7170
if (isCurrentAnimationID(ANIM_GHOST_NORMAL)) {
72-
current().setSprites(ghostNormalSprites(ghost.wishDir()));
71+
currentAnimation().setSprites(ghostNormalSprites(ghost.wishDir()));
7372
}
7473
if (isCurrentAnimationID(ANIM_GHOST_EYES)) {
75-
current().setSprites(ghostEyesSprites(ghost.wishDir()));
74+
currentAnimation().setSprites(ghostEyesSprites(ghost.wishDir()));
7675
}
7776
}
7877
}

pacman-app-arcade-pacman/src/main/java/de/amr/pacmanfx/arcade/pacman/rendering/ArcadePacMan_PacAnimationManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public ArcadePacMan_SpriteSheet spriteSheet() {
3939
@Override
4040
protected void updateActorSprites(Actor actor) {
4141
if (actor instanceof Pac pac && isCurrentAnimationID(ANIM_PAC_MUNCHING)) {
42-
current().setSprites(pacMunchingSprites(pac.moveDir()));
42+
currentAnimation().setSprites(pacMunchingSprites(pac.moveDir()));
4343
}
4444
}
4545

pacman-app-tengen-mspacman/src/main/java/de/amr/pacmanfx/tengen/ms_pacman/rendering/TengenMsPacMan_GameRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ public void drawMovingBonus(Bonus bonus) {
218218

219219
private void drawAnyKindOfPac(Pac pac) {
220220
pac.animations().map(SpriteAnimationManager.class::cast).ifPresent(spriteAnimations -> {
221-
SpriteAnimation spriteAnimation = spriteAnimations.current();
221+
SpriteAnimation spriteAnimation = spriteAnimations.currentAnimation();
222222
if (spriteAnimation == null) {
223223
Logger.error("No sprite animation found for {}", pac);
224224
return;

pacman-app-tengen-mspacman/src/main/java/de/amr/pacmanfx/tengen/ms_pacman/rendering/TengenMsPacMan_GhostAnimationManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ public void selectFrame(String id, int frameIndex) {
5757
protected void updateActorSprites(Actor actor) {
5858
if (actor instanceof Ghost ghost) {
5959
if (isCurrentAnimationID(ANIM_GHOST_NORMAL)) {
60-
current().setSprites(ghostNormalSprites(ghost.wishDir()));
60+
currentAnimation().setSprites(ghostNormalSprites(ghost.wishDir()));
6161
}
6262
if (isCurrentAnimationID(ANIM_GHOST_EYES)) {
63-
current().setSprites(ghostEyesSprites(ghost.wishDir()));
63+
currentAnimation().setSprites(ghostEyesSprites(ghost.wishDir()));
6464
}
6565
}
6666
}

pacman-app-tengen-mspacman/src/main/java/de/amr/pacmanfx/tengen/ms_pacman/rendering/TengenMsPacMan_PacAnimationManager.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,25 +56,25 @@ public TengenMsPacMan_SpriteSheet spriteSheet() {
5656
protected void updateActorSprites(Actor actor) {
5757
if (actor instanceof Pac) {
5858
if (isCurrentAnimationID(ANIM_PAC_MUNCHING)) {
59-
current().setSprites(spriteSheet.spriteSequence(SpriteID.MS_PAC_MUNCHING));
59+
currentAnimation().setSprites(spriteSheet.spriteSequence(SpriteID.MS_PAC_MUNCHING));
6060
}
6161
if (isCurrentAnimationID(ANIM_MS_PAC_MAN_BOOSTER)) {
62-
current().setSprites(spriteSheet.spriteSequence(SpriteID.MS_PAC_MUNCHING_BOOSTER));
62+
currentAnimation().setSprites(spriteSheet.spriteSequence(SpriteID.MS_PAC_MUNCHING_BOOSTER));
6363
}
6464
if (isCurrentAnimationID(ANIM_MS_PAC_MAN_TURNING_AWAY)) {
65-
current().setSprites(spriteSheet.spriteSequence(SpriteID.MS_PAC_TURNING_AWAY));
65+
currentAnimation().setSprites(spriteSheet.spriteSequence(SpriteID.MS_PAC_TURNING_AWAY));
6666
}
6767
if (isCurrentAnimationID(ANIM_MS_PAC_MAN_WAVING_HAND)) {
68-
current().setSprites(spriteSheet.spriteSequence(SpriteID.MS_PAC_WAVING_HAND));
68+
currentAnimation().setSprites(spriteSheet.spriteSequence(SpriteID.MS_PAC_WAVING_HAND));
6969
}
7070
if (isCurrentAnimationID(ANIM_PAC_MAN_MUNCHING)) {
71-
current().setSprites(spriteSheet.spriteSequence(SpriteID.MR_PAC_MUNCHING));
71+
currentAnimation().setSprites(spriteSheet.spriteSequence(SpriteID.MR_PAC_MUNCHING));
7272
}
7373
if (isCurrentAnimationID(ANIM_PAC_MAN_TURNING_AWAY)) {
74-
current().setSprites(spriteSheet.spriteSequence(SpriteID.MR_PAC_TURNING_AWAY));
74+
currentAnimation().setSprites(spriteSheet.spriteSequence(SpriteID.MR_PAC_TURNING_AWAY));
7575
}
7676
if (isCurrentAnimationID(ANIM_PAC_MAN_WAVING_HAND)) {
77-
current().setSprites(spriteSheet.spriteSequence(SpriteID.MR_PAC_WAVING_HAND));
77+
currentAnimation().setSprites(spriteSheet.spriteSequence(SpriteID.MR_PAC_WAVING_HAND));
7878
}
7979
}
8080
}

pacman-ui-lib/src/main/java/de/amr/pacmanfx/uilib/animation/SpriteAnimationManager.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class SpriteAnimationManager<SID extends Enum<SID>> implements AnimationM
1919

2020
protected final SpriteSheet<SID> spriteSheet;
2121
protected final Map<String, SpriteAnimation> animationsByID = new HashMap<>();
22-
protected String currentAnimationID;
22+
protected String selectedID;
2323

2424
public SpriteAnimationManager(SpriteSheet<SID> spriteSheet) {
2525
this.spriteSheet = requireNonNull(spriteSheet);
@@ -30,15 +30,15 @@ public SpriteAnimationManager(SpriteSheet<SID> spriteSheet) {
3030
// TODO: this is somewhat crude but currently the way to keep the sprites up-to-date with actor direction etc.
3131
protected void updateActorSprites(Actor actor) {}
3232

33-
public String currentAnimationID() { return currentAnimationID; }
33+
public String selectedAnimationID() { return selectedID; }
3434

3535
public boolean isCurrentAnimationID(String id) {
3636
requireNonNull(id);
37-
return id.equals(currentAnimationID);
37+
return id.equals(selectedID);
3838
}
3939

4040
public RectShort currentSprite(Actor actor) {
41-
var currentAnimation = current();
41+
var currentAnimation = currentAnimation();
4242
if (currentAnimation == null) {
4343
return null;
4444
}
@@ -65,21 +65,21 @@ public void setAnimation(String id, SpriteAnimation animation) {
6565
animationsByID.put(id, animation);
6666
}
6767

68-
public SpriteAnimation current() {
69-
return currentAnimationID != null ? animation(currentAnimationID) : null;
68+
public SpriteAnimation currentAnimation() {
69+
return selectedID != null ? animation(selectedID) : null;
7070
}
7171

7272
@Override
7373
public String selectedID() {
74-
return currentAnimationID;
74+
return selectedID;
7575
}
7676

7777
@Override
7878
public void selectFrame(String id, int frameIndex) {
79-
if (!id.equals(currentAnimationID)) {
80-
currentAnimationID = id;
81-
if (current() != null) {
82-
current().setFrameIndex(0);
79+
if (!id.equals(selectedID)) {
80+
selectedID = id;
81+
if (currentAnimation() != null) {
82+
currentAnimation().setFrameIndex(0);
8383
} else {
8484
Logger.warn("No animation with ID {} exists", id);
8585
}
@@ -88,22 +88,22 @@ public void selectFrame(String id, int frameIndex) {
8888

8989
@Override
9090
public void play() {
91-
if (current() != null) {
92-
current().play();
91+
if (currentAnimation() != null) {
92+
currentAnimation().play();
9393
}
9494
}
9595

9696
@Override
9797
public void stop() {
98-
if (current() != null) {
99-
current().stop();
98+
if (currentAnimation() != null) {
99+
currentAnimation().stop();
100100
}
101101
}
102102

103103
@Override
104104
public void reset() {
105-
if (current() != null) {
106-
current().reset();
105+
if (currentAnimation() != null) {
106+
currentAnimation().reset();
107107
}
108108
}
109109
}

pacman-ui/src/main/java/de/amr/pacmanfx/ui/_2d/DebugInfoRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ default void drawMovingActorInfo(GraphicsContext ctx, double scaling, MovingActo
4343

4444
private void drawAnimationInfo(GraphicsContext ctx, double scaling, Actor actor, SpriteAnimationManager<?> spriteAnimationMap, String selectedID) {
4545
ctx.save();
46-
String text = "[%s:%d]".formatted(selectedID, spriteAnimationMap.current().frameIndex());
46+
String text = "[%s:%d]".formatted(selectedID, spriteAnimationMap.currentAnimation().frameIndex());
4747
double x = scaling * (actor.x() - 4), y = scaling * (actor.y() - 4);
4848
ctx.setFill(Color.WHITE);
4949
ctx.setFont(Font.font("Sans", scaling * (7)));

pacman-ui/src/main/java/de/amr/pacmanfx/ui/_2d/GameRenderer.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,14 @@ public void drawActor(Actor actor, Image spriteSheetImage) {
106106
if (!actor.isVisible()) return;
107107

108108
actor.animations().ifPresent(animations -> {
109-
switch (animations) {
110-
case SingleSpriteNoAnimation singleSprite -> drawSpriteCentered(actor.center(), spriteSheetImage, singleSprite.sprite());
111-
case SpriteAnimationManager<?> spriteAnimations -> {
112-
if (spriteAnimations.current() != null) {
113-
drawSpriteCentered(actor.center(), spriteSheetImage, spriteAnimations.currentSprite(actor));
114-
}
115-
}
116-
default -> {}
109+
RectShort sprite = switch (animations) {
110+
case SingleSpriteNoAnimation singleSprite -> singleSprite.sprite();
111+
case SpriteAnimationManager<?> spriteAnimations
112+
-> spriteAnimations.currentAnimation() != null ? spriteAnimations.currentSprite(actor) : null;
113+
default -> null;
114+
};
115+
if (sprite != null) {
116+
drawSpriteCentered(actor.center(), spriteSheetImage, sprite);
117117
}
118118
});
119119
}

0 commit comments

Comments
 (0)