mirror of
https://github.com/2OOP/pism.git
synced 2026-02-04 19:04:49 +00:00
Merge remote-tracking branch 'origin/Reversi' into UI
# Conflicts: # app/src/main/java/org/toop/app/App.java # app/src/main/java/org/toop/app/canvas/GameCanvas.java # app/src/main/java/org/toop/app/layer/layers/MainLayer.java # app/src/main/java/org/toop/app/layer/layers/OptionsPopup.java # app/src/main/java/org/toop/app/layer/layers/game/TicTacToeLayer.java # app/src/main/java/org/toop/local/AppSettings.java # app/src/main/resources/assets/localization/localization_ar.properties # app/src/main/resources/assets/localization/localization_de.properties # app/src/main/resources/assets/localization/localization_en.properties # app/src/main/resources/assets/localization/localization_es.properties # app/src/main/resources/assets/localization/localization_fr.properties # app/src/main/resources/assets/localization/localization_hi.properties # app/src/main/resources/assets/localization/localization_it.properties # app/src/main/resources/assets/localization/localization_ja.properties # app/src/main/resources/assets/localization/localization_ko.properties # app/src/main/resources/assets/localization/localization_nl.properties # app/src/main/resources/assets/localization/localization_ru.properties # app/src/main/resources/assets/localization/localization_zh.properties
This commit is contained in:
@@ -1,11 +1,17 @@
|
||||
package org.toop;
|
||||
|
||||
import org.toop.app.App;
|
||||
import org.toop.framework.audio.SoundManager;
|
||||
import org.toop.framework.audio.*;
|
||||
import org.toop.framework.networking.NetworkingClientManager;
|
||||
import org.toop.framework.networking.NetworkingInitializationException;
|
||||
import org.toop.framework.resource.ResourceLoader;
|
||||
import org.toop.framework.resource.ResourceManager;
|
||||
import org.toop.framework.resource.ResourceMeta;
|
||||
import org.toop.framework.resource.resources.MusicAsset;
|
||||
import org.toop.framework.resource.resources.SoundEffectAsset;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public final class Main {
|
||||
static void main(String[] args) {
|
||||
@@ -16,6 +22,21 @@ public final class Main {
|
||||
private static void initSystems() throws NetworkingInitializationException {
|
||||
ResourceManager.loadAssets(new ResourceLoader("app/src/main/resources/assets"));
|
||||
new Thread(NetworkingClientManager::new).start();
|
||||
new Thread(SoundManager::new).start();
|
||||
new Thread(() -> {
|
||||
MusicManager<MusicAsset> musicManager = new MusicManager<>(ResourceManager.getAllOfTypeAndRemoveWrapper(MusicAsset.class));
|
||||
SoundEffectManager<SoundEffectAsset> soundEffectManager = new SoundEffectManager<>(ResourceManager.getAllOfType(SoundEffectAsset.class));
|
||||
AudioVolumeManager audioVolumeManager = new AudioVolumeManager()
|
||||
.registerManager(VolumeControl.MASTERVOLUME, musicManager)
|
||||
.registerManager(VolumeControl.MASTERVOLUME, soundEffectManager)
|
||||
.registerManager(VolumeControl.FX, soundEffectManager)
|
||||
.registerManager(VolumeControl.MUSIC, musicManager);
|
||||
|
||||
new AudioEventListener<>(
|
||||
musicManager,
|
||||
soundEffectManager,
|
||||
audioVolumeManager
|
||||
).initListeners("medium-button-click.wav");
|
||||
|
||||
}).start();
|
||||
}
|
||||
}
|
||||
|
||||
26
app/src/main/java/org/toop/app/canvas/ReversiCanvas.java
Normal file
26
app/src/main/java/org/toop/app/canvas/ReversiCanvas.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package org.toop.app.canvas;
|
||||
|
||||
import javafx.scene.layout.Background;
|
||||
import javafx.scene.paint.Color;
|
||||
import org.toop.game.Game;
|
||||
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class ReversiCanvas extends GameCanvas{
|
||||
public ReversiCanvas(Color color, int width, int height, Consumer<Integer> onCellClicked) {
|
||||
super(color, width, height, 8, 8, 10, true, onCellClicked);
|
||||
drawStartingDots();
|
||||
}
|
||||
public void drawStartingDots(){
|
||||
drawDot(Color.BLACK,28);
|
||||
drawDot(Color.WHITE,36);
|
||||
drawDot(Color.BLACK,35);
|
||||
drawDot(Color.WHITE,27);
|
||||
}
|
||||
public void drawLegalMoves(Game.Move[] moves){
|
||||
for(Game.Move move : moves){
|
||||
drawDot(new Color(1f,0,0,0.25f),move.position());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package org.toop.app.layer.layers.game;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.paint.Color;
|
||||
import org.toop.app.App;
|
||||
import org.toop.app.canvas.ReversiCanvas;
|
||||
import org.toop.app.layer.*;
|
||||
import org.toop.app.layer.containers.HorizontalContainer;
|
||||
import org.toop.app.layer.containers.VerticalContainer;
|
||||
import org.toop.app.layer.layers.MainLayer;
|
||||
import org.toop.game.Game;
|
||||
import org.toop.game.reversi.Reversi;
|
||||
import org.toop.game.reversi.ReversiAI;
|
||||
import org.toop.local.AppContext;
|
||||
|
||||
public class ReversiLayer extends Layer{
|
||||
private ReversiCanvas canvas;
|
||||
private Reversi reversi;
|
||||
private ReversiAI reversiAI;
|
||||
public ReversiLayer(){
|
||||
super("bg-secondary"); //make reversiboard background dark green
|
||||
|
||||
canvas = new ReversiCanvas(Color.GREEN,(App.getHeight() / 100) * 75, (App.getHeight() / 100) * 75, (cell) -> {
|
||||
reversi.play(new Game.Move(cell,reversi.getCurrentPlayer()));
|
||||
reload();
|
||||
canvas.drawLegalMoves(reversi.getLegalMoves());
|
||||
});
|
||||
reversi = new Reversi() ;
|
||||
reversiAI = new ReversiAI();
|
||||
|
||||
|
||||
reload();
|
||||
canvas.drawLegalMoves(reversi.getLegalMoves());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reload() {
|
||||
popAll();
|
||||
canvas.resize((App.getHeight() / 100) * 75, (App.getHeight() / 100) * 75);
|
||||
|
||||
for (int i = 0; i < reversi.board.length; i++) {
|
||||
final char value = reversi.board[i];
|
||||
|
||||
if (value == 'B') {
|
||||
canvas.drawDot(Color.BLACK, i);
|
||||
} else if (value == 'W') {
|
||||
canvas.drawDot(Color.WHITE, i);
|
||||
}
|
||||
}
|
||||
|
||||
final var backButton = NodeBuilder.button(AppContext.getString("back"), () -> {
|
||||
App.activate(new MainLayer());
|
||||
});
|
||||
|
||||
final Container controlContainer = new VerticalContainer(5);
|
||||
controlContainer.addNodes(backButton);
|
||||
|
||||
final Container informationContainer = new HorizontalContainer(15);
|
||||
|
||||
addContainer(controlContainer, Pos.BOTTOM_LEFT, 2, -2, 0, 0);
|
||||
addContainer(informationContainer, Pos.TOP_LEFT, 2, 2, 0, 0);
|
||||
addGameCanvas(canvas, Pos.CENTER, 0, 0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user