Implement carousel-like reappearence of the one and only customer, Mr. Eggman

This commit is contained in:
2026-07-13 09:21:31 +02:00
parent 347ab3f64b
commit c7bdc98e69
+17 -5
View File
@@ -7,27 +7,32 @@ import pi.Text;
import pi.actor.Actor; import pi.actor.Actor;
import pi.actor.Animation; import pi.actor.Animation;
import pi.actor.Image; import pi.actor.Image;
import pi.event.FrameListener;
import pi.graphics.geom.Vector; import pi.graphics.geom.Vector;
import static pi.Controller.fonts; import static pi.Controller.fonts;
import java.awt.Font; import java.awt.Font;
public class GameScene extends Scene public class GameScene extends Scene implements FrameListener
{ {
Rectangle bg;
Text[] texts;
Actor[] customers;
public GameScene() { public GameScene() {
// the background music, color, stats (some meta information) // the background music, color, stats (some meta information)
Controller.jukebox.playSound("sounds/Mozart_Turkish_March_-_Orchestral_Melodic_Techno_-_TVV_music_320k.mp3"); Controller.jukebox.playSound("sounds/Mozart_Turkish_March_-_Orchestral_Melodic_Techno_-_TVV_music_320k.mp3");
Rectangle bg = new Rectangle(2000, 2000); bg = new Rectangle(2000, 2000);
bg.color("#ffffff"); bg.color("#ffffff");
bg.center(0,0); bg.center(0, 0);
bg.layerPosition(-100); bg.layerPosition(-100);
addStatsCollectionOutline(this); addStatsCollectionOutline(this);
Text[] texts = createTexts(this); texts = createTexts(this);
camera().meter(10); camera().meter(10);
// create customers // create customers
Actor[] customers = new Actor[1]; customers = new Actor[1];
customers[0] = Animation.createFromAnimatedGif("images/kebab-pack/customer-mr-eggman.gif", 1.48*25, 1.25*25); customers[0] = Animation.createFromAnimatedGif("images/kebab-pack/customer-mr-eggman.gif", 1.48*25, 1.25*25);
customers[0].center(-60,0); customers[0].center(-60,0);
customers[0].applyImpulse(new Vector(1, 0).multiply(100000)); customers[0].applyImpulse(new Vector(1, 0).multiply(100000));
@@ -37,6 +42,13 @@ public class GameScene extends Scene
add(customers); add(customers);
} }
@Override
public void onFrame(double pastTime)
{
if(visibleArea().xRight() < customers[0].anchor().add(new Vector(-20, 0)).x()) {
customers[0].center(-60,0);
}
}
// Static helper methods // Static helper methods
public static void addStatsCollectionOutline(Scene scene) { public static void addStatsCollectionOutline(Scene scene) {