Лабораторная работа №1 Изменения

This commit is contained in:
Максим Дмитриев 2025-02-25 15:30:39 +04:00
parent 4980d40df3
commit 48e5277680
4 changed files with 30 additions and 4 deletions

View File

@ -16,6 +16,7 @@ public class DrawningAirbus {
private Integer pictureHeight;
private Integer startPosX;
private Integer startPosY;
private DrawningWindows drawningWindows;
private final int drawningAirbusWidth = 155;
private final int drawningAirbusHeight = 70;
@ -24,9 +25,14 @@ public class DrawningAirbus {
return entityAirbus;
}
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean passengerSection, boolean engines) {
public DrawningWindows getDrawningWindows() {
return drawningWindows;
}
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean passengerSection, boolean engines, boolean windows) {
entityAirbus = new EntityAirbus();
entityAirbus.Init(speed, weight, bodyColor, additionalColor, passengerSection, engines);
entityAirbus.Init(speed, weight, bodyColor, additionalColor, passengerSection, engines, windows);
drawningWindows = new DrawningWindows();
pictureWidth = null;
pictureHeight = null;
startPosX = null;
@ -158,5 +164,9 @@ public class DrawningAirbus {
g.fillOval(startPosX, startPosY + 30, 35, 15);
g.strokeOval(startPosX, startPosY + 30, 35, 15);
}
if(entityAirbus.getWindows()) {
drawningWindows.drawWindows(g, startPosX + 40, startPosY + 35, entityAirbus.getAdditionalColor());
}
}
}

View File

@ -54,6 +54,11 @@ public class EntityAirbus {
return engines;
}
private boolean windows;
public boolean getWindows() {
return windows;
}
/**
* Шаг перемещения аэробуса
*/
@ -70,12 +75,13 @@ public class EntityAirbus {
* @param passengerSection Признак(опция) наличия доп. пассажирского отсека
* @param engines Признак(опция) наличия доп. двигателей
*/
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean passengerSection, boolean engines) {
public void Init(int speed, double weight, Color bodyColor, Color additionalColor, boolean passengerSection, boolean engines, boolean windows) {
this.speed = speed;
this.weight = weight;
this.bodyColor = bodyColor;
this.additionalColor = additionalColor;
this.passengerSection = passengerSection;
this.engines = engines;
this.windows = windows;
}
}

View File

@ -5,6 +5,8 @@ import javafx.fxml.FXML;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.Button;
import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;
import javafx.scene.paint.Color;
import java.util.Random;
@ -17,12 +19,17 @@ public class FormAirbus {
@FXML
private Canvas mainCanvas;
@FXML
private Spinner<Integer> spinnerSelector;
@FXML
private void initialize() {
drawningAirbus = new DrawningAirbus();
graphicsContext = mainCanvas.getGraphicsContext2D();
graphicsContext.setImageSmoothing(false);
spinnerSelector.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(10, 30, 10, 10));
random = new Random();
}
@ -36,8 +43,9 @@ public class FormAirbus {
random.nextInt(100, 300), random.nextInt(1000, 3000),
Color.rgb(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)),
Color.rgb(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)),
random.nextBoolean(), random.nextBoolean()
random.nextBoolean(), random.nextBoolean(), random.nextBoolean()
);
drawningAirbus.getDrawningWindows().setSpinnerBlockCount(spinnerSelector.getValue());
drawningAirbus.setPictureSize((int) mainCanvas.getWidth(), (int) mainCanvas.getHeight());
drawningAirbus.setPosition(random.nextInt(10, 100), random.nextInt(10, 100));

View File

@ -2,6 +2,7 @@
<?import javafx.scene.canvas.Canvas?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Spinner?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
@ -16,5 +17,6 @@
<Button id="buttonUp" layoutX="807.0" layoutY="452.0" mnemonicParsing="false" onAction="#buttonMove_Click" prefHeight="35.0" prefWidth="35.0" AnchorPane.bottomAnchor="55.199999999999974" AnchorPane.rightAnchor="57.600000000000065" />
<Button id="buttonLeft" layoutX="764.0" layoutY="452.0" mnemonicParsing="false" onAction="#buttonMove_Click" prefHeight="35.0" prefWidth="35.0" AnchorPane.bottomAnchor="12.800000000000011" AnchorPane.rightAnchor="100.79999999999995" />
<Button id="buttonDown" layoutX="807.0" layoutY="452.0" mnemonicParsing="false" onAction="#buttonMove_Click" prefHeight="35.0" prefWidth="35.0" AnchorPane.bottomAnchor="12.800000000000011" AnchorPane.rightAnchor="57.799999999999955" />
<Spinner fx:id="spinnerSelector" layoutX="15.0" layoutY="415.0" prefHeight="26.0" prefWidth="74.0" />
</children>
</AnchorPane>