Add sound, rename game scene, add first customer

This commit is contained in:
2026-07-13 09:00:36 +02:00
parent 11dd8a64fa
commit 347ab3f64b
4 changed files with 109 additions and 95 deletions
+109 -6
View File
@@ -1,17 +1,120 @@
package project.scenes; package project.scenes;
import pi.Controller;
import pi.Rectangle;
import pi.Scene; import pi.Scene;
import project.utils.StatsCollection;
import pi.Text; import pi.Text;
import pi.actor.Actor;
import pi.actor.Animation;
import pi.actor.Image;
import pi.graphics.geom.Vector;
import static pi.Controller.fonts;
import java.awt.Font;
public class GameScene extends Scene public class GameScene extends Scene
{ {
public GameScene() { public GameScene() {
StatsCollection.addStatsCollectionOutline(this); // the background music, color, stats (some meta information)
Text[] texts = StatsCollection.createTexts(this); Controller.jukebox.playSound("sounds/Mozart_Turkish_March_-_Orchestral_Melodic_Techno_-_TVV_music_320k.mp3");
Rectangle bg = new Rectangle(2000, 2000);
bg.color("#ffffff");
bg.center(0,0);
bg.layerPosition(-100);
addStatsCollectionOutline(this);
Text[] texts = createTexts(this);
camera().meter(10); camera().meter(10);
// create customers
Actor[] customers = new Actor[1];
customers[0] = Animation.createFromAnimatedGif("images/kebab-pack/customer-mr-eggman.gif", 1.48*25, 1.25*25);
customers[0].center(-60,0);
customers[0].applyImpulse(new Vector(1, 0).multiply(100000));
// add all actors
add(bg);
add(customers);
}
// Static helper methods
public static void addStatsCollectionOutline(Scene scene) {
Image moneyButton = new Image("images/pixui-pack/Buttons/Button_White_Outline (9).png");
moneyButton.center(-10, 25);
Image kebabSoldButton = new Image("images/pixui-pack/Buttons/Button_White_Outline (9).png");
kebabSoldButton.center(0, 25);
Image waitingCustomersButton = new Image("images/pixui-pack/Buttons/Button_White_Outline (9).png");
waitingCustomersButton.center(10, 25);
Image moneyIcon = new Image("images/kebab-pack/money-128x128.png").size(2, 2);
moneyIcon.center(-12, 25);
Image kebabSoldIcon = new Image("images/kebab-pack/kebab-128x128.png").size(2, 2);
kebabSoldIcon.center(-2, 25);
Image waitingCustomersIcon = new Image("images/kebab-pack/aladin-256x256.png").size(2, 2);
waitingCustomersIcon.center(8, 25);
scene.add(moneyButton);
scene.add(moneyIcon);
scene.add(kebabSoldButton);
scene.add(kebabSoldIcon);
scene.add(waitingCustomersButton);
scene.add(waitingCustomersIcon);
}
public static Text[] createTexts(Scene scene) {
Text[] texts = new Text[10];
Font font = fonts.get("fonts/BitcountGridDouble-Regular.ttf");
Text money = new Text("0");
money.color("#000000");
money.font(font);
money.height(2.5);
money.center(-9, 25);
texts[0] = money;
Text kebabSold = new Text("0");
kebabSold.color("#000000");
kebabSold.font(font);
kebabSold.height(2.5);
kebabSold.center(1, 25);
texts[1] = kebabSold;
Text waitingCustomers = new Text("0");
waitingCustomers.color("#000000");
waitingCustomers.font(font);
waitingCustomers.height(2.5);
waitingCustomers.center(11, 25);
texts[2] = waitingCustomers;
scene.add(money);
scene.add(kebabSold);
scene.add(waitingCustomers);
return texts;
}
public static void setTexts(Text[] texts, int money, int kebabSold, int waitingCustomers) {
texts[0].content(String.valueOf(money));
texts[1].content(String.valueOf(kebabSold));
texts[2].content(String.valueOf(waitingCustomers));
}
public static void setMoney(Text[] texts, int money) {
texts[0].content(String.valueOf(money));
}
public static void setKebabSold(Text[] texts, int kebabSold) {
texts[1].content(String.valueOf(kebabSold));
}
public static void setWaitingCustomers(Text[] texts, int waitingCustomers) {
texts[2].content(String.valueOf(waitingCustomers));
}
public static void saveStats(Text[] texts) {
int money = Integer.parseInt(texts[0].content());
int kebabSold = Integer.parseInt(texts[1].content());
int waitingCustomers = Integer.parseInt(texts[2].content());
System.out.println(money);
System.out.println(kebabSold);
System.out.println(waitingCustomers);
} }
} }
@@ -1,89 +0,0 @@
package project.utils;
import pi.Scene;
import pi.actor.Image;
import pi.Text;
import static pi.Controller.fonts;
import java.awt.Font;
public class StatsCollection {
public static void addStatsCollectionOutline(Scene scene) {
Image moneyButton = new Image("images/pixui-pack/Buttons/Button_White_Outline (9).png");
moneyButton.center(-10, 25);
Image kebabSoldButton = new Image("images/pixui-pack/Buttons/Button_White_Outline (9).png");
kebabSoldButton.center(0, 25);
Image waitingCustomersButton = new Image("images/pixui-pack/Buttons/Button_White_Outline (9).png");
waitingCustomersButton.center(10, 25);
Image moneyIcon = new Image("images/kebab-pack/money-128x128.png").size(2, 2);
moneyIcon.center(-12, 25);
Image kebabSoldIcon = new Image("images/kebab-pack/kebab-128x128.png").size(2, 2);
kebabSoldIcon.center(-2, 25);
Image waitingCustomersIcon = new Image("images/kebab-pack/aladin-256x256.png").size(2, 2);
waitingCustomersIcon.center(8, 25);
scene.add(moneyButton);
scene.add(moneyIcon);
scene.add(kebabSoldButton);
scene.add(kebabSoldIcon);
scene.add(waitingCustomersButton);
scene.add(waitingCustomersIcon);
}
public static Text[] createTexts(Scene scene) {
Text[] texts = new Text[10];
Font font = fonts.get("fonts/BitcountGridDouble-Regular.ttf");
Text money = new Text("0");
money.color("#000000");
money.font(font);
money.height(2.5);
money.center(-9, 25);
texts[0] = money;
Text kebabSold = new Text("0");
kebabSold.color("#000000");
kebabSold.font(font);
kebabSold.height(2.5);
kebabSold.center(1, 25);
texts[1] = kebabSold;
Text waitingCustomers = new Text("0");
waitingCustomers.color("#000000");
waitingCustomers.font(font);
waitingCustomers.height(2.5);
waitingCustomers.center(11, 25);
texts[2] = waitingCustomers;
scene.add(money);
scene.add(kebabSold);
scene.add(waitingCustomers);
return texts;
}
public static void setTexts(Text[] texts, int money, int kebabSold, int waitingCustomers) {
texts[0].content(String.valueOf(money));
texts[1].content(String.valueOf(kebabSold));
texts[2].content(String.valueOf(waitingCustomers));
}
public static void setMoney(Text[] texts, int money) {
texts[0].content(String.valueOf(money));
}
public static void setKebabSold(Text[] texts, int kebabSold) {
texts[1].content(String.valueOf(kebabSold));
}
public static void setWaitingCustomers(Text[] texts, int waitingCustomers) {
texts[2].content(String.valueOf(waitingCustomers));
}
public static void saveStats(Text[] texts) {
int money = Integer.parseInt(texts[0].content());
int kebabSold = Integer.parseInt(texts[1].content());
int waitingCustomers = Integer.parseInt(texts[2].content());
System.out.println(money);
System.out.println(kebabSold);
System.out.println(waitingCustomers);
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB