Ajouter une classe des Paramètres
Jeu 30 Avr - 12:04
1) Eclipse IDE ICI
2) JRE et JDK 8
3) Des connaissances en Java
4) Avoir fini le tutoriel Créer un launcher Minecraft Animé
1] Ajout de la classe LauncherSettings
Pour commencer on va créer une classe qui s'appelle LauncherSettings
A l’intérieur, nous allons y mettre
- Cliquer pour ouvrir:
- Code:
import fr.trxyy.alternative.alternative_api.GameEngine;
import fr.trxyy.alternative.alternative_api.GameSize;
import fr.trxyy.alternative.alternative_api.utils.FontLoader;
import fr.trxyy.alternative.alternative_api.utils.Logger;
import fr.trxyy.alternative.alternative_api_ui.base.IScreen;
import fr.trxyy.alternative.alternative_api_ui.components.LauncherButton;
import fr.trxyy.alternative.alternative_api_ui.components.LauncherLabel;
import fr.trxyy.alternative.alternative_api_ui.components.LauncherRectangle;
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Slider;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class LauncherSettings extends IScreen {
private LauncherLabel titleLabel;
private LauncherRectangle topRectangle;
private LauncherButton saveButton;
private LauncherLabel memorySliderLabel;
private LauncherLabel sliderLabel;
private Slider memorySlider;
private LauncherLabel windowsSizeLabel;
private ComboBox<String> windowsSizeList;
private CheckBox autoLogin;
public LauncherSettings(final Pane root, final GameEngine engine, final LauncherPanel pane) {
this.drawBackgroundImage(engine, root, "background.png");
pane.userConfig.readConfig();
engine.reg(pane.userConfig.convertMemory(pane.userConfig.getMemory()));
engine.reg(pane.userConfig.getWindowSize(pane.userConfig.getWindowSize()));
/** ===================== RECTANGLE NOIR EN HAUT ===================== */
this.topRectangle = new LauncherRectangle(root, 0, 0, 500, 15);
this.topRectangle.setOpacity(0.7);
/** ===================== LABEL TITRE ===================== */
this.titleLabel = new LauncherLabel(root);
this.titleLabel.setText("PARAMETRES");
this.titleLabel.setStyle("-fx-text-fill: white;");
this.titleLabel.setFont(FontLoader.loadFont("Comfortaa-Regular.ttf", "Comfortaa", 28F));
this.titleLabel.setPosition(150, 20);
this.titleLabel.setSize(230, 35);
/** ===================== MC SIZE LABEL ===================== */
this.windowsSizeLabel = new LauncherLabel(root);
this.windowsSizeLabel.setText("Taille de la fenetre:");
this.windowsSizeLabel.setOpacity(1.0);
this.windowsSizeLabel.setFont(FontLoader.loadFont("Comfortaa-Regular.ttf", "Comfortaa", 16F));
this.windowsSizeLabel.setStyle("-fx-text-fill: white;");
this.windowsSizeLabel.setSize(370, 30);
this.windowsSizeLabel.setPosition(50, 60);
/** ===================== MC SIZE LIST ===================== */
this.windowsSizeList = new ComboBox<String>();
this.populateSizeList();
if (pane.userConfig.getWindowSize() != null) {
this.windowsSizeList.setValue(pane.userConfig.getWindowSize());
}
this.windowsSizeList.setPrefSize(100, 20);
this.windowsSizeList.setLayoutX(340);
this.windowsSizeList.setLayoutY(65);
this.windowsSizeList.setVisibleRowCount(5);
root.getChildren().add(this.windowsSizeList);
/** ===================== SLIDER RAM LABEL ===================== */
this.sliderLabel = new LauncherLabel(root);
this.sliderLabel.setText("RAM Allouee:");
this.sliderLabel.setOpacity(1.0);
this.sliderLabel.setFont(FontLoader.loadFont("Comfortaa-Regular.ttf", "Comfortaa", 16F));
this.sliderLabel.setStyle("-fx-text-fill: white;");
this.sliderLabel.setSize(370, 30);
this.sliderLabel.setPosition(50, 100);
/** ===================== SLIDER RAM LABEL SELECTIONNED ===================== */
this.memorySliderLabel = new LauncherLabel(root);
this.memorySliderLabel.setOpacity(1.0);
this.memorySliderLabel.setFont(FontLoader.loadFont("Comfortaa-Regular.ttf", "Comfortaa", 16F));
this.memorySliderLabel.setStyle("-fx-text-fill: white;");
this.memorySliderLabel.setSize(370, 30);
this.memorySliderLabel.setPosition(380, 100);
/** ===================== SLIDER RAM ===================== */
this.memorySlider = new Slider();
this.memorySlider.setStyle("-fx-control-inner-background: rgba(46, 47, 48, 0.5);");
this.memorySlider.setMin(1);
this.memorySlider.setMax(10);
if (pane.userConfig.getRamString() != null) {
this.memorySlider.setValue(pane.userConfig.getRam());
}
this.memorySlider.setLayoutX(50);
this.memorySlider.setLayoutY(140);
this.memorySlider.setPrefWidth(395);
this.memorySlider.setBlockIncrement(1);
memorySlider.valueProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue<? extends Number> ov, Number old_val, Number new_val) {
memorySlider.setValue(Math.round(new_val.doubleValue()));
}
});
this.memorySlider.valueProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable,
Number oldValue, Number newValue) {
memorySliderLabel.setText(newValue + "Gb");
}
});
Platform.runLater(new Runnable() {
@Override
public void run() {
root.getChildren().add(memorySlider);
}
});
this.memorySliderLabel.setText(this.memorySlider.getValue() + "Gb");
this.autoLogin = new CheckBox();
this.autoLogin.setText("Connexion auto (crack)");
this.autoLogin.setSelected(pane.userConfig.getAutoLogin());
this.autoLogin.setFont(FontLoader.loadFont("Comfortaa-Regular.ttf", "Comfortaa", 14F));
this.autoLogin.setStyle("-fx-text-fill: white;");
this.autoLogin.setLayoutX(50);
this.autoLogin.setLayoutY(180);
root.getChildren().add(autoLogin);
/** ===================== BOUTON DE VALIDATION ===================== */
this.saveButton = new LauncherButton(root);
this.saveButton.setText("Valider");
this.saveButton.setStyle("-fx-background-color: rgba(53, 89, 119, 0.4); -fx-text-fill: white;");
this.saveButton.setFont(FontLoader.loadFont("Comfortaa-Regular.ttf", "Comfortaa", 16F));
this.saveButton.setPosition(310, 170);
this.saveButton.setSize(130, 35);
this.saveButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
pane.userConfig.writeConfig("" + memorySlider.getValue(), windowsSizeList.getValue(), isAutoLogin());
Logger.log("" + memorySlider.getValue() + " " + windowsSizeList.getValue());
engine.reg(pane.userConfig.getMemory(memorySlider.getValue()));
engine.reg(pane.userConfig.getWindowSize(windowsSizeList.getValue()));
Stage stage = (Stage)((LauncherButton)event.getSource()).getScene().getWindow();
stage.close();
}
});
}
private void populateSizeList() {
for (GameSize size : GameSize.values()) {
this.windowsSizeList.getItems().add(size.getDesc());
}
}
private String isAutoLogin() {
if (autoLogin.isSelected()) {
return "true";
} else {
return "false";
}
}
}
Si vous avez des erreurs d'import, il vous suffit de faire "CTRL + SHIFT +O" pour un import général.
Ensuite dans la classe LauncherPanel, on ajouter en haut de classe
Dans le constructeur de notre classe, on ajoute en haut
Et en dessous de
On mets
- Code:
public UserConfig userConfig;
public GameEngine theGameEngine;
Dans le constructeur de notre classe, on ajoute en haut
- Code:
this.userConfig = new UserConfig(engine);
this.theGameEngine = engine;
Et en dessous de
- Code:
this.settingsButton.setSize(60, 45);
On mets
- Cliquer pour ouvrir:
- Code:
this.settingsButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Scene scene = new Scene(createSettingsPanel());
Stage stage = new Stage();
scene.setFill(Color.TRANSPARENT);
stage.setResizable(false);
stage.initStyle(StageStyle.TRANSPARENT);
stage.setTitle("Parametres Launcher");
stage.setWidth(500);
stage.setHeight(230);
stage.setScene(scene);
stage.initModality(Modality.APPLICATION_MODAL);
stage.showAndWait();
}
});
On a une erreur sur createSettingsPanel();
Pour la corriger, tout en bas de notre classe on créer une fonction
On ajoute
Pour la corriger, tout en bas de notre classe on créer une fonction
On ajoute
- Spoiler:
- Code:
private Parent createSettingsPanel() {
LauncherPane contentPane = new LauncherPane(theGameEngine);
Rectangle rect = new Rectangle(500, 230);
rect.setArcHeight(15.0);
rect.setArcWidth(15.0);
contentPane.setClip(rect);
contentPane.setStyle("-fx-background-color: transparent;");
new LauncherSettings(contentPane, theGameEngine, this);
return contentPane;
}
Re: Ajouter une classe des Paramètres
Mar 5 Mai - 11:15
Besoin d'aide ? Postez votre demande d'aide sur http://forum.alternative-api.fr/
Ou rejoignez-nous sur le Discord AlternativeAPI
Ou rejoignez-nous sur le Discord AlternativeAPI
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|