This commit is contained in:
Егор Пыжов 2024-02-27 13:59:00 +04:00
parent fac7aba105
commit 7fb5ba8c39
10 changed files with 24 additions and 35 deletions

View File

@ -2,19 +2,17 @@ import java.awt.*;
import java.util.Random; import java.util.Random;
public class DrawningCatamaran { public class DrawningCatamaran {
public EntityCatamaran entityCatamaran; private EntityCatamaran entityCatamaran;
public EntityCatamaran getEntityCatamaran() {
return entityCatamaran;
}
private Integer _pictureWidth; private Integer _pictureWidth;
private Integer _pictureHeight; private Integer _pictureHeight;
private Integer _startPosX; private Integer _startPosX;
private Integer _startPosY; private Integer _startPosY;
private final int _drawingCatamaranWidth = 120; private final int _drawingCatamaranWidth = 120;
private final int _drawingCatamaranHeight = 70; private final int _drawingCatamaranHeight = 70;
private DrawningCatamaranPaddle _drawingCatamaranPaddle; public DrawningCatamaranPaddle _drawingCatamaranPaddle;
public EntityCatamaran EntityCatamaran() {
return entityCatamaran;
}
public void Init(int speed, float weight, Color bodyColor, Color additionalColor, boolean floaters, boolean sail) { public void Init(int speed, float weight, Color bodyColor, Color additionalColor, boolean floaters, boolean sail) {
entityCatamaran = new EntityCatamaran(); entityCatamaran = new EntityCatamaran();
@ -24,7 +22,7 @@ public class DrawningCatamaran {
_pictureWidth = null; _pictureWidth = null;
_pictureHeight = null; _pictureHeight = null;
_drawingCatamaranPaddle = new DrawningCatamaranPaddle(entityCatamaran); _drawingCatamaranPaddle = new DrawningCatamaranPaddle();
Random random = new Random(); Random random = new Random();
int paddlesCount = random.nextInt(1,4); int paddlesCount = random.nextInt(1,4);
_drawingCatamaranPaddle.setEnumNumber(paddlesCount); _drawingCatamaranPaddle.setEnumNumber(paddlesCount);
@ -49,6 +47,8 @@ public class DrawningCatamaran {
if (_drawingCatamaranHeight > height || _drawingCatamaranWidth > width) if (_drawingCatamaranHeight > height || _drawingCatamaranWidth > width)
return false; return false;
_pictureHeight = height;
_pictureWidth = width;
if (_startPosX != null && _startPosY != null) if (_startPosX != null && _startPosY != null)
{ {
@ -57,15 +57,10 @@ public class DrawningCatamaran {
if (_startPosY + _drawingCatamaranHeight > height) if (_startPosY + _drawingCatamaranHeight > height)
_startPosY = height - _drawingCatamaranHeight; _startPosY = height - _drawingCatamaranHeight;
} }
_pictureHeight = height;
_pictureWidth = width;
return true; return true;
} }
public boolean moveTransport(DirectionType direction) { public boolean moveTransport(DirectionType direction) {

View File

@ -2,14 +2,11 @@ import java.awt.*;
public class DrawningCatamaranPaddle { public class DrawningCatamaranPaddle {
private PaddlesCount _paddlesCount; private PaddlesCount _paddlesCount;
private final EntityCatamaran _entityCatamaran;
public DrawningCatamaranPaddle(EntityCatamaran entityCatamaran) {
_entityCatamaran = entityCatamaran;
}
public void setEnumNumber(int paddlesCount) { public void setEnumNumber(int paddlesCount) {
for (PaddlesCount value : PaddlesCount.values()) { for (PaddlesCount value : PaddlesCount.values()) {
if (value.enumNumber == paddlesCount) { if (value.getEnumNumber() == paddlesCount) {
_paddlesCount = value; _paddlesCount = value;
return; return;
} }
@ -22,7 +19,7 @@ public class DrawningCatamaranPaddle {
g2d.setColor(color); g2d.setColor(color);
g2d.setStroke(new BasicStroke(4)); g2d.setStroke(new BasicStroke(4));
int distanceBetweenPaddles = 27; int distanceBetweenPaddles = 27;
for (int i = 0; i < _paddlesCount.enumNumber; i++) { for (int i = 0; i < _paddlesCount.getEnumNumber(); i++) {
int posX = (int)(startPosX + i * distanceBetweenPaddles); // Позиция X для текущей пары весел int posX = (int)(startPosX + i * distanceBetweenPaddles); // Позиция X для текущей пары весел
drawPaddlePair(g2d, posX, (int)startPosY + 5); drawPaddlePair(g2d, posX, (int)startPosY + 5);
@ -31,16 +28,7 @@ public class DrawningCatamaranPaddle {
} }
private void drawPaddlePair(Graphics2D g2d, int posX, int posY) { private void drawPaddlePair(Graphics2D g2d, int posX, int posY) {
g2d.drawLine(posX + 20, posY + 15, posX + 5, posY); // Рисуем левое весло
if (!_entityCatamaran.getFloaters()) { g2d.drawLine(posX + 20, posY + 50, posX + 5, posY + 65); // Рисуем правое весло
g2d.drawLine(posX + 20, posY + 20, posX + 5, posY + 5); // Рисуем левое весло
g2d.drawLine(posX + 20, posY + 45, posX + 5, posY + 60); // Рисуем правое весло
} else {
g2d.drawLine(posX + 20, posY + 10, posX + 5, posY - 5); // Рисуем левое весло
g2d.drawLine(posX + 20, posY + 55, posX + 5, posY + 70); // Рисуем правое весло
}
} }
} }

View File

@ -81,7 +81,7 @@ public class FormCatamaran extends JFrame {
} }
private void Draw() { private void Draw() {
if (_drawningCatamaran.EntityCatamaran() == null) if (_drawningCatamaran.getEntityCatamaran() == null)
return; return;
if (PictureBox.getWidth() == 0 || PictureBox.getHeight() == 0) { if (PictureBox.getWidth() == 0 || PictureBox.getHeight() == 0) {
return; return;

View File

@ -10,7 +10,7 @@ public class Main {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(500, 200); frame.setLocation(500, 200);
frame.pack(); frame.pack();
frame.setSize(1000, 500); frame.setSize(700, 500);
frame.setVisible(true); frame.setVisible(true);
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text //TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
// to see how IntelliJ IDEA suggests fixing it. // to see how IntelliJ IDEA suggests fixing it.

View File

@ -3,6 +3,12 @@ public enum PaddlesCount {
Two(2), Two(2),
Three(3); Three(3);
public final int enumNumber; final private int EnumNumber;
PaddlesCount(int i) {this.enumNumber = i;} PaddlesCount(int enumNumber) {
EnumNumber = enumNumber;
}
public int getEnumNumber() {
return EnumNumber;
}
} }