From 523b5466b2650c3a4ff6423dddc857a82c932b75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D1=88=D0=B8=D0=BD=20=D0=9C=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D0=BC?= Date: Wed, 19 Oct 2022 09:59:21 +0400 Subject: [PATCH 1/6] =?UTF-8?q?=D0=9D=D0=B0=D0=B4=D0=B5=D1=8E=D1=81=D1=8C?= =?UTF-8?q?=20=D1=87=D1=82=D0=BE=20=D1=82=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83?= =?UTF-8?q?=D1=87=D0=B8=D1=82=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/modules.xml | 2 +- src/Direction.java | 10 ++++++---- src/DrawingField.java | 3 +-- src/DrawingGasolineTanker.java | 5 ++--- src/EntityGasolineTanker.java | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.idea/modules.xml b/.idea/modules.xml index aae69c9..661d1b8 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/src/Direction.java b/src/Direction.java index 5b70d63..5f50742 100644 --- a/src/Direction.java +++ b/src/Direction.java @@ -1,6 +1,8 @@ public enum Direction { - Up, - Down, - Left, - Right; + Up(1), + Down(2), + Left(3), + Right(4), + None(0); + Direction(int value){} } diff --git a/src/DrawingField.java b/src/DrawingField.java index 0fc63dd..94df9a6 100644 --- a/src/DrawingField.java +++ b/src/DrawingField.java @@ -42,8 +42,7 @@ public class DrawingField extends JPanel { } public void CreateButtonAction(){ Random rnd=new Random(); - _gasolineTanker=new DrawingGasolineTanker(); - _gasolineTanker.Init(rnd.nextInt(50)+10,rnd.nextInt(100)+500,new Color(rnd.nextInt(256),rnd.nextInt(256),rnd.nextInt(256))); + _gasolineTanker=new DrawingGasolineTanker(rnd.nextInt(50)+10,rnd.nextInt(100)+500,new Color(rnd.nextInt(256),rnd.nextInt(256),rnd.nextInt(256))); _gasolineTanker.SetPosition(rnd.nextInt(100)+10,rnd.nextInt(100)+10,getWidth(),getHeight()); field.SpeedLabel.setText("Speed: "+_gasolineTanker.getGasolineTanker().getSpeed()); field.WeightLabel.setText("Weight: "+_gasolineTanker.getGasolineTanker().getWeight()); diff --git a/src/DrawingGasolineTanker.java b/src/DrawingGasolineTanker.java index 8169677..f7f3bb9 100644 --- a/src/DrawingGasolineTanker.java +++ b/src/DrawingGasolineTanker.java @@ -13,10 +13,9 @@ public class DrawingGasolineTanker { private final int _gasolineTankerWidth = 160; private final int _gasolineTankerHeight = 55; - public void Init(int speed, float weight, Color bodyColor) + public DrawingGasolineTanker(int speed, float weight, Color bodyColor) { - GasolineTanker = new EntityGasolineTanker(); - GasolineTanker.Init(speed, weight, bodyColor); + GasolineTanker = new EntityGasolineTanker(speed, weight, bodyColor); Wheels = new DrawingWheels(); Wheels.SetCountWheels((int)(2 + Math.random() + Math.random()*2)); } diff --git a/src/EntityGasolineTanker.java b/src/EntityGasolineTanker.java index bb890d8..b881fb0 100644 --- a/src/EntityGasolineTanker.java +++ b/src/EntityGasolineTanker.java @@ -16,7 +16,7 @@ public class EntityGasolineTanker { } public float Step; - public void Init(int speed, float weight, Color bodyColor){ + public EntityGasolineTanker(int speed, float weight, Color bodyColor){ Random rnd = new Random(); Speed = speed <= 0 ? rnd.nextInt(50)+10 : speed; -- 2.25.1 From b2c1f7e979af78a207e0e3425be47ff8f20e7cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D1=88=D0=B8=D0=BD=20=D0=9C=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D0=BC?= Date: Wed, 19 Oct 2022 10:08:53 +0400 Subject: [PATCH 2/6] =?UTF-8?q?=D0=A1=D0=B5=D0=B9=D0=B2=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B4=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=D0=BC?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AbstractMap.java | 148 ++++++++++++++++++++++++++ src/EntityImprovedGasolineTanker.java | 26 +++++ src/IDrawingObject.java | 8 ++ src/LongMap.java | 37 +++++++ src/SimpleMap.java | 36 +++++++ 5 files changed, 255 insertions(+) create mode 100644 src/AbstractMap.java create mode 100644 src/EntityImprovedGasolineTanker.java create mode 100644 src/IDrawingObject.java create mode 100644 src/LongMap.java create mode 100644 src/SimpleMap.java diff --git a/src/AbstractMap.java b/src/AbstractMap.java new file mode 100644 index 0000000..a895bdd --- /dev/null +++ b/src/AbstractMap.java @@ -0,0 +1,148 @@ +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.Random; + +public abstract class AbstractMap { + private IDrawingObject _drawingObject = null; + protected int[][] _map = null; + protected int _width; + protected int _height; + protected float _size_x; + protected float _size_y; + protected final Random _random = new Random(); + protected final int _freeWaterArea = 0; + protected final int _land = 1; + + public BufferedImage CreateMap(int width, int height, IDrawingObject drawingObject) + { + _width = width; + _height = height; + _drawingObject = drawingObject; + GenerateMap(); + while (!SetObjectOnMap()) + { + GenerateMap(); + } + return DrawMapWithObject(); + } + + public BufferedImage MoveObject(Direction direction) + { + float[] dim = _drawingObject.GetCurrentPosition(); + + if (CheckLand(dim[0], dim[1], dim[2], dim[3]) != 0) + { + _drawingObject.MoveObject(SetOppositDirection(direction)); + } + + if (true) + { + _drawingObject.MoveObject(direction); + } + return DrawMapWithObject(); + } + + private boolean SetObjectOnMap() + { + if (_drawingObject==null || _map == null) + { + return false; + } + int x = _random.nextInt(10); + int y = _random.nextInt(10); + _drawingObject.SetObject(x, y, _width, _height); + + float[] dim = _drawingObject.GetCurrentPosition(); + + while (CheckLand(dim[0], dim[1], dim[2], dim[3]) != 2) + { + int res; + do + { + res = CheckLand(dim[0], dim[1], dim[2], dim[3]); + if (res == 0) + { + _drawingObject.SetObject((int)dim[0], (int)dim[1], _width, _height); + return true; + } + else + { + dim[0] += _size_x; + } + } while (res != 2); + dim[0] = x; + dim[1] += _size_y; + } + return false; + } + + private BufferedImage DrawMapWithObject() + { + BufferedImage bmp = new BufferedImage(_width, _height,BufferedImage.TYPE_INT_RGB); + if (_drawingObject == null || _map == null) + { + return bmp; + } + Graphics gr = bmp.getGraphics(); + for (int i = 0; i < _map.length; ++i) + { + for (int j = 0; j < _map[i].length; ++j) + { + if (_map[i][j] == _freeWaterArea) + { + DrawWaterPart(gr, i, j); + } + else if (_map[i][j] == _land) + { + DrawLandPart(gr, i, j); + } + } + } + _drawingObject.DrawingObject(gr); + return bmp; + } + private int CheckLand(float Left, float Right, float Top, float Bottom) + { + int RUi = (int)(Left / _size_x); + int RUj = (int)(Right / _size_y); + int LDi = (int)(Top / _size_x); + int LDj = (int)(Bottom / _size_y); + + if (RUi < 0 || RUj < 0 || LDi >= _map[0].length || LDj >= _map.length) + { + return -1; + } + for (int x = RUi; x <= LDi; x++) + { + for (int y = RUj; y <= LDj; y++) + { + if (_map[x][y] == _land) + { + return 1; + } + } + } + return 0; + } + private Direction SetOppositDirection(Direction dir) + { + switch (dir) + { + case Up: + return Direction.Down; + case Down: + return Direction.Up; + case Left: + return Direction.Right; + case Right: + return Direction.Left; + case None: + return Direction.None; + } + return Direction.None; + } + + protected abstract void GenerateMap(); + protected abstract void DrawWaterPart(Graphics gr, int i, int j); + protected abstract void DrawLandPart(Graphics gr, int i, int j); +} diff --git a/src/EntityImprovedGasolineTanker.java b/src/EntityImprovedGasolineTanker.java new file mode 100644 index 0000000..c97681e --- /dev/null +++ b/src/EntityImprovedGasolineTanker.java @@ -0,0 +1,26 @@ +import java.awt.*; + +public class EntityImprovedGasolineTanker extends EntityGasolineTanker{ + public Color DopColor; + public Color GetDopColor() { + return DopColor; + } + + public boolean BodyKit ; + public boolean GetBodyKit () { + return BodyKit ; + } + + public boolean OrnamentWheels ; + public boolean GetOrnamentWheels () { + return OrnamentWheels ; + } + + public EntityImprovedGasolineTanker(int speed, float weight, Color bodyColor, Color dopColor, boolean bodyKit, boolean ornamentWheels){ + super(speed,weight,bodyColor); + DopColor = dopColor; + BodyKit = bodyKit; + OrnamentWheels = ornamentWheels; + + } +} diff --git a/src/IDrawingObject.java b/src/IDrawingObject.java new file mode 100644 index 0000000..e4f54ff --- /dev/null +++ b/src/IDrawingObject.java @@ -0,0 +1,8 @@ +import java.awt.*; +public interface IDrawingObject { + public float Step=0; + void SetObject(int x, int y, int width, int height); + void MoveObject(Direction direction); + void DrawingObject(Graphics g); + float[] GetCurrentPosition(); +} diff --git a/src/LongMap.java b/src/LongMap.java new file mode 100644 index 0000000..51e7cca --- /dev/null +++ b/src/LongMap.java @@ -0,0 +1,37 @@ +import java.awt.*; + +public class LongMap extends AbstractMap{ + + @Override + protected void GenerateMap() { + _map = new int[60][60]; + _size_x = (float) (_width / _map.length); + _size_y = (float) (_height / _map[0].length); + int counter = 0; + for (int i = 0; i < _map.length; ++i) { + for (int j = 0; j < _map[i].length; ++j) { + _map[i][j] = _freeWaterArea; + } + } + while (counter < 20) { + int x = _random.nextInt(59); + int y = _random.nextInt(59); + if (_map[x][y] == _freeWaterArea) { + _map[x][y] = _land; + counter++; + } + } + } + + @Override + protected void DrawWaterPart(Graphics gr, int i, int j) { + gr.setColor(new Color(0xFFFFFF)); + gr.fillRect((int) (i * _size_x), (int) (j * _size_y), (int) (i * (_size_x + 1)), (int) (j * (_size_y + 1))); + } + + @Override + protected void DrawLandPart(Graphics gr, int i, int j) { + gr.setColor(new Color(0x050303)); + gr.fillRect((int) (i * _size_x), (int) (j * _size_y), (int) (i * (_size_x + 1)), (int) (j * (_size_y + 1))); + } +} diff --git a/src/SimpleMap.java b/src/SimpleMap.java new file mode 100644 index 0000000..5278e90 --- /dev/null +++ b/src/SimpleMap.java @@ -0,0 +1,36 @@ +import java.awt.*; + +public class SimpleMap extends AbstractMap { + @Override + protected void DrawWaterPart(Graphics gr, int i, int j) { + gr.setColor(new Color(0x5285B6)); + gr.fillRect((int) (i * _size_x), (int) (j * _size_y), (int) (i * (_size_x + 1)), (int) (j * (_size_y + 1))); + } + + @Override + protected void DrawLandPart(Graphics gr, int i, int j) { + gr.setColor(new Color(0x422A1D)); + gr.fillRect((int) (i * _size_x), (int) (j * _size_y), (int) (i * (_size_x + 1)), (int) (j * (_size_y + 1))); + } + + @Override + protected void GenerateMap() { + _map = new int[100][100]; + _size_x = (float) (_width / _map.length); + _size_y = (float) (_height / _map[0].length); + int counter = 0; + for (int i = 0; i < _map.length; ++i) { + for (int j = 0; j < _map[i].length; ++j) { + _map[i][j] = _freeWaterArea; + } + } + while (counter < 50) { + int x = _random.nextInt(99); + int y = _random.nextInt(99); + if (_map[x][y] == _freeWaterArea) { + _map[x][y] = _land; + counter++; + } + } + } +} \ No newline at end of file -- 2.25.1 From 14f32cb3f708866be17876c2aebbd62725777de5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D1=88=D0=B8=D0=BD=20=D0=9C=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D0=BC?= Date: Sat, 22 Oct 2022 16:07:28 +0400 Subject: [PATCH 3/6] Full restart --- src/AbstractMap.java | 32 +++-- src/DrawingField.java | 69 +++++----- src/DrawingGasolineTanker.java | 59 +++++++-- src/DrawingImprovedGasolineTanker.java | 50 ++++++++ src/DrawingMap.java | 71 ++++++++++ src/DrawingObjectGasolineTanker.java | 39 ++++++ src/DrawingOrnamentWheelsFirst.java | 54 ++++++++ src/DrawingOrnamentWheelsSecond.java | 55 ++++++++ src/DrawingWheels.java | 51 ++++---- src/EntityGasolineTanker.java | 4 +- src/EntityImprovedGasolineTanker.java | 10 +- src/FormGasolineTanker.form | 160 +++++++++++++++++++++++ src/FormGasolineTanker.java | 166 +++++++++--------------- src/FormMap.form | 171 +++++++++++++++++++++++++ src/FormMap.java | 87 +++++++++++++ src/IDrawingObject.java | 1 + src/IDrawningObjectWheels.java | 6 + src/LongMap.java | 42 +++--- src/Main.java | 6 +- src/OrnamentForm.java | 9 ++ src/SimpleMap.java | 16 +-- 21 files changed, 935 insertions(+), 223 deletions(-) create mode 100644 src/DrawingImprovedGasolineTanker.java create mode 100644 src/DrawingMap.java create mode 100644 src/DrawingObjectGasolineTanker.java create mode 100644 src/DrawingOrnamentWheelsFirst.java create mode 100644 src/DrawingOrnamentWheelsSecond.java create mode 100644 src/FormGasolineTanker.form create mode 100644 src/FormMap.form create mode 100644 src/FormMap.java create mode 100644 src/IDrawningObjectWheels.java create mode 100644 src/OrnamentForm.java diff --git a/src/AbstractMap.java b/src/AbstractMap.java index a895bdd..ea02c9f 100644 --- a/src/AbstractMap.java +++ b/src/AbstractMap.java @@ -10,8 +10,8 @@ public abstract class AbstractMap { protected float _size_x; protected float _size_y; protected final Random _random = new Random(); - protected final int _freeWaterArea = 0; - protected final int _land = 1; + protected final int _freeRoad = 0; + protected final int _barrier = 1; public BufferedImage CreateMap(int width, int height, IDrawingObject drawingObject) { @@ -28,18 +28,16 @@ public abstract class AbstractMap { public BufferedImage MoveObject(Direction direction) { - float[] dim = _drawingObject.GetCurrentPosition(); - - if (CheckLand(dim[0], dim[1], dim[2], dim[3]) != 0) - { - _drawingObject.MoveObject(SetOppositDirection(direction)); - } - if (true) { _drawingObject.MoveObject(direction); } - return DrawMapWithObject(); + float[] cortege = _drawingObject.GetCurrentPosition(); + if (CheckLand(cortege[0],cortege[1],cortege[2],cortege[3])!= 0) + { + _drawingObject.MoveObject(SetOppositDirection(direction)); + } + return DrawMapWithObject(); } private boolean SetObjectOnMap() @@ -88,13 +86,13 @@ public abstract class AbstractMap { { for (int j = 0; j < _map[i].length; ++j) { - if (_map[i][j] == _freeWaterArea) + if (_map[i][j] == _freeRoad) { - DrawWaterPart(gr, i, j); + DrawBarrierPart(gr, i, j); } - else if (_map[i][j] == _land) + else if (_map[i][j] == _barrier) { - DrawLandPart(gr, i, j); + DrawRoadPart(gr, i, j); } } } @@ -116,7 +114,7 @@ public abstract class AbstractMap { { for (int y = RUj; y <= LDj; y++) { - if (_map[x][y] == _land) + if (_map[x][y] == _barrier) { return 1; } @@ -143,6 +141,6 @@ public abstract class AbstractMap { } protected abstract void GenerateMap(); - protected abstract void DrawWaterPart(Graphics gr, int i, int j); - protected abstract void DrawLandPart(Graphics gr, int i, int j); + protected abstract void DrawBarrierPart(Graphics gr, int i, int j); + protected abstract void DrawRoadPart(Graphics gr, int i, int j); } diff --git a/src/DrawingField.java b/src/DrawingField.java index 94df9a6..f92125f 100644 --- a/src/DrawingField.java +++ b/src/DrawingField.java @@ -2,12 +2,13 @@ import javax.swing.*; import java.awt.*; import java.util.Random; -public class DrawingField extends JPanel { - private final FormGasolineTanker field; - DrawingGasolineTanker _gasolineTanker; +public class DrawingField extends JPanel{ + private final FormGasolineTanker Field; + DrawingGasolineTanker _gasolineTanker=null; public DrawingField(FormGasolineTanker field) { - this.field = field; + Field = field; } + @Override protected void paintComponent(Graphics g) { super.paintComponent(g); @@ -16,41 +17,47 @@ public class DrawingField extends JPanel { _gasolineTanker.DrawTransport(g2); else return; } - public void UpButtonAction(){ - if (_gasolineTanker!=null) - _gasolineTanker.MoveTransport(Direction.Up); - else + public void DirectionButtonAction(Direction side){ + if(_gasolineTanker == null) return; + _gasolineTanker.MoveTransport(side); } - public void DownButtonAction(){ - if (_gasolineTanker!=null) - _gasolineTanker.MoveTransport(Direction.Down); - else - return; - } - public void RightButtonAction(){ - if (_gasolineTanker!=null) - _gasolineTanker.MoveTransport(Direction.Right); - else - return; - } - public void LeftButtonAction(){ - if (_gasolineTanker!=null) - _gasolineTanker.MoveTransport(Direction.Left); - else - return; + private void SetData() { + Random rand=new Random(); + _gasolineTanker.SetPosition(rand.nextInt(100)+10,rand.nextInt(100)+10,getWidth(),getHeight()); + Field.SpeedLabel.setText("Скорость: "+_gasolineTanker.getGasolineTanker().getSpeed()); + Field.WeightLabel.setText("Вес: "+_gasolineTanker.getGasolineTanker().getWeight()); + Field.BodyColorLabel.setText("Цвет: "+Integer.toHexString(_gasolineTanker.getGasolineTanker().getBodyColor().getRGB()).substring(2)); } public void CreateButtonAction(){ - Random rnd=new Random(); - _gasolineTanker=new DrawingGasolineTanker(rnd.nextInt(50)+10,rnd.nextInt(100)+500,new Color(rnd.nextInt(256),rnd.nextInt(256),rnd.nextInt(256))); - _gasolineTanker.SetPosition(rnd.nextInt(100)+10,rnd.nextInt(100)+10,getWidth(),getHeight()); - field.SpeedLabel.setText("Speed: "+_gasolineTanker.getGasolineTanker().getSpeed()); - field.WeightLabel.setText("Weight: "+_gasolineTanker.getGasolineTanker().getWeight()); - field.BodyColorLabel.setText("Color: "+Integer.toHexString(_gasolineTanker.getGasolineTanker().getBodyColor().getRGB()).substring(2)); + Random rand=new Random(); + Color color1 = JColorChooser.showDialog(Field, "Выберите цвет тела корабля", null); + if(color1==null) + color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + _gasolineTanker=new DrawingGasolineTanker(rand.nextInt(50)+10,rand.nextInt(3000)+20000,color1,rand.nextInt(3)); + SetData(); + } + public void CreateModifButtonAction(){ + Random rand=new Random(); + Color color1=JColorChooser.showDialog(Field, "Выберите цвет тела корабля",null); + Color color2=JColorChooser.showDialog(Field, "Выборите цвет модификаций корабля",null); + if(color1==null) + color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + if (color2==null) + color2=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + _gasolineTanker = new DrawingImprovedGasolineTanker(rand.nextInt(50) + 10, rand.nextInt(3000) + 20000, color1, + color2, rand.nextBoolean(), rand.nextBoolean(), rand.nextInt(3)); + SetData(); } public void ResizeField(){ if (_gasolineTanker!=null) _gasolineTanker.ChangeBorders(getWidth(),getHeight()); else return; } + + public void Draw(Graphics2D graphics) { + if (_gasolineTanker!=null) + _gasolineTanker.DrawTransport(graphics); + else return; + } } diff --git a/src/DrawingGasolineTanker.java b/src/DrawingGasolineTanker.java index f7f3bb9..9d414e0 100644 --- a/src/DrawingGasolineTanker.java +++ b/src/DrawingGasolineTanker.java @@ -1,25 +1,56 @@ import java.awt.*; public class DrawingGasolineTanker { - public EntityGasolineTanker GasolineTanker; - public EntityGasolineTanker getGasolineTanker() { + protected EntityGasolineTanker GasolineTanker; + public EntityGasolineTanker getGasolineTanker(){ return GasolineTanker; } - public DrawingWheels Wheels; - private int _startPosX; - private int _startPosY; + protected IDrawningObjectWheels Wheels; + private CountWheels _wheels; + protected int _startPosX; + protected int _startPosY; private Integer _pictureWidth = null; private Integer _pictureHeight = null; - private final int _gasolineTankerWidth = 160; - private final int _gasolineTankerHeight = 55; + private int _gasolineTankerWidth = 160; + private int _gasolineTankerHeight = 70; - public DrawingGasolineTanker(int speed, float weight, Color bodyColor) + public DrawingGasolineTanker(int speed, float weight, Color bodyColor, int wheelsForm) { GasolineTanker = new EntityGasolineTanker(speed, weight, bodyColor); - Wheels = new DrawingWheels(); + Wheels= GetFormOfBlock(wheelsForm); Wheels.SetCountWheels((int)(2 + Math.random() + Math.random()*2)); } + public IDrawningObjectWheels GetFormOfBlock(int FormOfBlock){ + OrnamentForm temp = null; + for (OrnamentForm form:OrnamentForm.values()) { + if(form.Value==FormOfBlock){ + temp = form; + break; + } + } + if(temp==null) + return null; + switch (temp){ + case NoneOrnament: + return new DrawingWheels(_wheels); + case GrayOrnament: + return new DrawingOrnamentWheelsFirst(_wheels); + case RedOrnament: + return new DrawingOrnamentWheelsSecond(_wheels); + } + return null; + } + + protected DrawingGasolineTanker(int speed, float weight, Color bodyColor,int warshipWidth, int warshipHeight) + { + GasolineTanker = new EntityGasolineTanker(speed, weight, bodyColor); + Wheels= new DrawingWheels(_wheels); + Wheels.SetCountWheels((int)(2 + Math.random() + Math.random()*2)); + _gasolineTankerWidth=warshipWidth; + _pictureHeight=warshipHeight; + } + public void SetPosition(int x, int y, int width, int height) { if (x >= 0 && x+_gasolineTankerWidth <= width && y >= 0 && y+_gasolineTankerHeight <= height) @@ -69,6 +100,7 @@ public class DrawingGasolineTanker { break; } } + public void DrawTransport(Graphics g) { if (_startPosX < 0 || _startPosY < 0 || _pictureHeight== null || _pictureWidth== null) @@ -102,6 +134,7 @@ public class DrawingGasolineTanker { g2.drawRect(_startPosX + 120, _startPosY + 10, 25, 25); g2.fillRect(_startPosX + 120, _startPosY + 10, 25, 25); } + public void ChangeBorders(int width,int height) { _pictureWidth = width; @@ -121,4 +154,12 @@ public class DrawingGasolineTanker { _startPosY = _pictureHeight - _gasolineTankerHeight; } } + public float[] GetCurrentPosition() { + float[] dim = new float[4]; + dim[0] = _startPosX; + dim[1] =_startPosY; + dim[2] = _startPosX + _gasolineTankerWidth; + dim[3] = _startPosY + _gasolineTankerHeight; + return dim; + } } diff --git a/src/DrawingImprovedGasolineTanker.java b/src/DrawingImprovedGasolineTanker.java new file mode 100644 index 0000000..ac2b6dc --- /dev/null +++ b/src/DrawingImprovedGasolineTanker.java @@ -0,0 +1,50 @@ +import java.awt.*; + +public class DrawingImprovedGasolineTanker extends DrawingGasolineTanker { + + public DrawingImprovedGasolineTanker(int speed, float weight, Color bodyColor, Color dopColor, boolean bodyKit, boolean antena,int blockForm) { + super(speed, weight, bodyColor, 160, 70); + GasolineTanker=new EntityImprovedGasolineTanker(speed,weight,bodyColor,dopColor,bodyKit,antena); + Wheels= GetFormOfBlock(blockForm); + Wheels.SetCountWheels((int)(2 + Math.random() + Math.random()*2)); + } + + @Override + public void DrawTransport(Graphics g) { + + if (! (GasolineTanker instanceof EntityImprovedGasolineTanker)) + { + return; + } + + EntityImprovedGasolineTanker improvedGasolineTanker = (EntityImprovedGasolineTanker)GasolineTanker; + Graphics2D g2 = (Graphics2D) g; + + int [] x1 ={_startPosX+25,_startPosX+65,_startPosX+75,_startPosX+25,_startPosX+25}; + int [] y1 ={_startPosY,_startPosY,_startPosY+5,_startPosY+5,_startPosY}; + int [] x2 ={_startPosX+25,_startPosX+75,_startPosX+65,_startPosX+25,_startPosX+25}; + int [] y2 ={_startPosY+45,_startPosY+45,_startPosY+50,_startPosY+50,_startPosY+45}; + + if (improvedGasolineTanker.BodyKit) + { + g2.setColor(improvedGasolineTanker.GetDopColor()); + g2.drawRect(_startPosX + 25, _startPosY + 5, 100, 35); + g2.fillRect(_startPosX + 25, _startPosY + 5, 100, 35); + + } + + _startPosX += 10; + _startPosY += 5; + super.DrawTransport(g); + _startPosX -= 10; + _startPosY -= 5; + + if (improvedGasolineTanker.Antena) + { + g2.setColor(Color.RED); + g2.drawRect(_startPosX + 130, _startPosY + 5, 10, 5); + g2.fillRect(_startPosX + 130, _startPosY + 5, 10, 5); + + } + } +} diff --git a/src/DrawingMap.java b/src/DrawingMap.java new file mode 100644 index 0000000..01e4b0a --- /dev/null +++ b/src/DrawingMap.java @@ -0,0 +1,71 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.Random; + +public class DrawingMap extends JPanel { + private final FormMap Map; + private AbstractMap _abstractMap; + BufferedImage bufferedImage; + + public DrawingMap(FormMap map){ + Map=map; + _abstractMap = new SimpleMap(); + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + g.drawImage(bufferedImage,0,0,null); + } + + private void SetData(DrawingGasolineTanker gasolineTanker) { + Random rand=new Random(); + gasolineTanker.SetPosition(rand.nextInt(100)+10,rand.nextInt(100)+10,getWidth(),getHeight()); + Map.SpeedLabel.setText("Speed: "+gasolineTanker.getGasolineTanker().getSpeed()); + Map.WeightLabel.setText("Weight: "+gasolineTanker.getGasolineTanker().getWeight()); + Map.BodyColorLabel.setText("Color: "+Integer.toHexString(gasolineTanker.getGasolineTanker().getBodyColor().getRGB()).substring(2)); + bufferedImage = _abstractMap.CreateMap(700,550,new DrawingObjectGasolineTanker(gasolineTanker)); + } + public void CreateButtonAction(){ + Random rand=new Random(); + Color color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + if(color1==null) + color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + DrawingGasolineTanker warship=new DrawingGasolineTanker(rand.nextInt(50)+10,rand.nextInt(3000)+20000,color1,rand.nextInt(3)); + SetData(warship); + } + public void CreateModifButtonAction(){ + Random rand=new Random(); + Color color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + Color color2=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + if(color1==null) + color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + if (color2==null) + color2=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + DrawingGasolineTanker gasolineTanker = new DrawingImprovedGasolineTanker(rand.nextInt(50) + 10, rand.nextInt(3000) + 20000, color1, + color2, rand.nextBoolean(), rand.nextBoolean(),rand.nextInt(3)); + SetData(gasolineTanker); + } + public void DirectionButtonAction(Direction side){ + if(_abstractMap != null){ + bufferedImage = _abstractMap.MoveObject(side); + } + } + + public void ComboBoxSelectorMapAction(String name){ + switch (name){ + case "Simple map": + _abstractMap = new SimpleMap(); + break; + case "Long map": + _abstractMap = new LongMap(); + break; + } + } + + public void DrawMap(Graphics g){ + g.drawImage(bufferedImage,0,0,null); + } + +} diff --git a/src/DrawingObjectGasolineTanker.java b/src/DrawingObjectGasolineTanker.java new file mode 100644 index 0000000..7a1c0d7 --- /dev/null +++ b/src/DrawingObjectGasolineTanker.java @@ -0,0 +1,39 @@ +import java.awt.*; + +public class DrawingObjectGasolineTanker implements IDrawingObject { + + private DrawingGasolineTanker _gasolineTanker=null; + + public DrawingObjectGasolineTanker(DrawingGasolineTanker gasolineTanker) + { + _gasolineTanker= gasolineTanker; + } + + public float Step() { + if(_gasolineTanker != null && _gasolineTanker.GasolineTanker != null) + return _gasolineTanker.GasolineTanker.Step; + return 0; + } + + @Override + public void SetObject(int x, int y, int width, int height) { + _gasolineTanker.SetPosition(x,y,width,height); + } + + @Override + public void MoveObject(Direction direction) { + _gasolineTanker.MoveTransport(direction); + } + + @Override + public void DrawingObject(Graphics g) { + _gasolineTanker.DrawTransport(g); + } + + @Override + public float[] GetCurrentPosition() { + if(_gasolineTanker!=null) + return _gasolineTanker.GetCurrentPosition(); + return null; + } +} diff --git a/src/DrawingOrnamentWheelsFirst.java b/src/DrawingOrnamentWheelsFirst.java new file mode 100644 index 0000000..e818a5e --- /dev/null +++ b/src/DrawingOrnamentWheelsFirst.java @@ -0,0 +1,54 @@ +import java.awt.*; + +public class DrawingOrnamentWheelsFirst implements IDrawningObjectWheels{ + private CountWheels _wheels; + + public DrawingOrnamentWheelsFirst(CountWheels wheels){ + _wheels=wheels; + } + @Override + public void SetCountWheels(int count) { + for (CountWheels temp: CountWheels.values()) + if (temp.getCountWheels() == count){ + _wheels=temp; + return; + } + } + + @Override + public void DrawWheels(Graphics2D g, int _startPosX, int _startPosY) { + if (_wheels.getCountWheels() == 2) { + g.setColor(Color.BLACK); + g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.setColor(Color.GRAY); + g.drawOval(_startPosX + 130, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 10, _startPosY + 45, 20, 5); + } + if (_wheels.getCountWheels() == 3) { + g.setColor(Color.BLACK); + g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.drawOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.setColor(Color.GRAY); + g.drawOval(_startPosX + 130, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 30, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 10, _startPosY + 45, 20, 5); + } + if (_wheels.getCountWheels() == 4) { + g.setColor(Color.BLACK); + g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.drawOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.drawOval(_startPosX + 50, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 50, _startPosY + 35, 20, 20); + g.setColor(Color.GRAY); + g.drawOval(_startPosX + 130, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 50, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 30, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 10, _startPosY + 45, 20, 5); + } + } +} diff --git a/src/DrawingOrnamentWheelsSecond.java b/src/DrawingOrnamentWheelsSecond.java new file mode 100644 index 0000000..cf2ff8d --- /dev/null +++ b/src/DrawingOrnamentWheelsSecond.java @@ -0,0 +1,55 @@ +import java.awt.*; + +public class DrawingOrnamentWheelsSecond implements IDrawningObjectWheels{ + private CountWheels _wheels; + + public DrawingOrnamentWheelsSecond(CountWheels wheels){ + _wheels=wheels; + } + @Override + public void SetCountWheels(int count) { + for (CountWheels temp: CountWheels.values()) + if (temp.getCountWheels() == count){ + _wheels=temp; + return; + } + } + + @Override + public void DrawWheels(Graphics2D g, int _startPosX, int _startPosY) { + + if (_wheels.getCountWheels() == 2) { + g.setColor(Color.BLACK); + g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.setColor(Color.RED); + g.drawOval(_startPosX + 130, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 10, _startPosY + 45, 20, 5); + } + if (_wheels.getCountWheels() == 3) { + g.setColor(Color.BLACK); + g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.drawOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.setColor(Color.RED); + g.drawOval(_startPosX + 130, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 30, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 10, _startPosY + 45, 20, 5); + } + if (_wheels.getCountWheels() == 4) { + g.setColor(Color.BLACK); + g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.drawOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.drawOval(_startPosX + 50, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 50, _startPosY + 35, 20, 20); + g.setColor(Color.RED); + g.drawOval(_startPosX + 130, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 50, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 30, _startPosY + 45, 20, 5); + g.drawOval(_startPosX + 10, _startPosY + 45, 20, 5); + } + } +} diff --git a/src/DrawingWheels.java b/src/DrawingWheels.java index 53f93b4..e50d1ca 100644 --- a/src/DrawingWheels.java +++ b/src/DrawingWheels.java @@ -1,8 +1,12 @@ import java.awt.*; -public class DrawingWheels { +public class DrawingWheels implements IDrawningObjectWheels{ - private CountWheels _wheels; + private CountWheels _wheels = null; + + public DrawingWheels(CountWheels wheels) { + _wheels=wheels; + } public void SetCountWheels(int Count){ for (CountWheels temp: CountWheels.values()) @@ -13,29 +17,26 @@ public class DrawingWheels { } public void DrawWheels(Graphics2D g,int _startPosX, int _startPosY) { - switch (_wheels.getCountWheels()) - { - case 2: - g.setColor(Color.BLACK); - g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); - g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); - break; - case 3: - g.setColor(Color.BLACK); - g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); - g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); - g.drawOval(_startPosX + 30, _startPosY + 35, 20, 20); - g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); - break; - case 4: - g.setColor(Color.BLACK); - g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); - g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); - g.drawOval(_startPosX + 30, _startPosY + 35, 20, 20); - g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); - g.drawOval(_startPosX + 50, _startPosY + 35, 20, 20); - g.fillOval(_startPosX + 50, _startPosY + 35, 20, 20); - break; + if (_wheels.getCountWheels() == 2) { + g.setColor(Color.BLACK); + g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); + } + if (_wheels.getCountWheels() == 3) { + g.setColor(Color.BLACK); + g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.drawOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); + } + if (_wheels.getCountWheels() == 4){ + g.setColor(Color.BLACK); + g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); + g.drawOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); + g.drawOval(_startPosX + 50, _startPosY + 35, 20, 20); + g.fillOval(_startPosX + 50, _startPosY + 35, 20, 20); } } } diff --git a/src/EntityGasolineTanker.java b/src/EntityGasolineTanker.java index b881fb0..5199730 100644 --- a/src/EntityGasolineTanker.java +++ b/src/EntityGasolineTanker.java @@ -14,7 +14,7 @@ public class EntityGasolineTanker { public Color getBodyColor() { return BodyColor; } - public float Step; + public int Step; public EntityGasolineTanker(int speed, float weight, Color bodyColor){ @@ -22,7 +22,7 @@ public class EntityGasolineTanker { Speed = speed <= 0 ? rnd.nextInt(50)+10 : speed; Weight = weight <= 0 ? rnd.nextInt(100)+500 : weight; BodyColor = bodyColor; - Step = Speed * 100/ (int)Weight; + Step = Speed * 5000/ (int)Weight; } } diff --git a/src/EntityImprovedGasolineTanker.java b/src/EntityImprovedGasolineTanker.java index c97681e..8786016 100644 --- a/src/EntityImprovedGasolineTanker.java +++ b/src/EntityImprovedGasolineTanker.java @@ -11,16 +11,16 @@ public class EntityImprovedGasolineTanker extends EntityGasolineTanker{ return BodyKit ; } - public boolean OrnamentWheels ; - public boolean GetOrnamentWheels () { - return OrnamentWheels ; + public boolean Antena ; + public boolean GetAntena () { + return Antena ; } - public EntityImprovedGasolineTanker(int speed, float weight, Color bodyColor, Color dopColor, boolean bodyKit, boolean ornamentWheels){ + public EntityImprovedGasolineTanker(int speed, float weight, Color bodyColor, Color dopColor, boolean bodyKit, boolean antena){ super(speed,weight,bodyColor); DopColor = dopColor; BodyKit = bodyKit; - OrnamentWheels = ornamentWheels; + Antena = antena; } } diff --git a/src/FormGasolineTanker.form b/src/FormGasolineTanker.form new file mode 100644 index 0000000..2c51dc1 --- /dev/null +++ b/src/FormGasolineTanker.form @@ -0,0 +1,160 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/FormGasolineTanker.java b/src/FormGasolineTanker.java index e01c86b..22aa3a9 100644 --- a/src/FormGasolineTanker.java +++ b/src/FormGasolineTanker.java @@ -2,134 +2,90 @@ import javax.swing.*; import java.awt.*; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; + public class FormGasolineTanker extends JFrame{ private int Width; private int Height; - - JPanel BottomPanel = new JPanel(); - JPanel CreatePanel = new JPanel(); - JPanel BottomAndCreatePanel = new JPanel(); - JPanel DimentionPanel = new JPanel(); - JPanel UPanel = new JPanel(); - JPanel DPanel = new JPanel(); - JPanel LRPanel = new JPanel(); - - JLabel SpeedLabel = new JLabel("Speed: "); - JLabel WeightLabel = new JLabel("Weight: "); - JLabel BodyColorLabel = new JLabel("Color: "); - DrawingField field = new DrawingField(this); + private JButton ButtonDown; + private JButton ButtonRight; + private JButton ButtonLeft; + private JButton ButtonUp; + private JButton ButtonCreate; + private JButton ButtonCreateModif; + public JLabel SpeedLabel; + public JLabel WeightLabel; + public JLabel BodyColorLabel; + private JPanel PictureBox; - JButton ButtonCreate=new JButton("Create"); - - Icon iconUp = new ImageIcon("C:\\Users\\kashi\\OneDrive\\Материал\\KeyUp.png"); - JButton ButtonUp=new JButton(iconUp); - - Icon iconDown = new ImageIcon("C:\\Users\\kashi\\OneDrive\\Материал\\KeyDown.png"); - JButton ButtonDown=new JButton(iconDown); - - Icon iconRight = new ImageIcon("C:\\Users\\kashi\\OneDrive\\Материал\\KeyRight.png"); - JButton ButtonRight=new JButton(iconRight); - - Icon iconLeft = new ImageIcon("C:\\Users\\kashi\\OneDrive\\Материал\\KeyLeft.png"); - JButton ButtonLeft=new JButton(iconLeft); public FormGasolineTanker(){ - super("Gasoline Tanker"); - setSize(800,600); - Width=getWidth(); - Height=getHeight(); + super("Военный корабль"); + setContentPane(PictureBox); + setSize(1000,700); + Width = getWidth(); + Height = getHeight(); ShowWindow(); - RefreshWindow(); + field.setBounds(0,0,Width,Height); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } + ImageIcon spriteUp =new ImageIcon((new ImageIcon("Material\\KeyUp.png")). + getImage().getScaledInstance(10,10,Image.SCALE_SMOOTH)); + ImageIcon spriteDown =new ImageIcon((new ImageIcon("Material\\KeyDown.png")). + getImage().getScaledInstance(10,10,Image.SCALE_SMOOTH)); + ImageIcon spriteLeft =new ImageIcon((new ImageIcon("Material\\KeyLeft.png")). + getImage().getScaledInstance(10,10,Image.SCALE_SMOOTH)); + ImageIcon spriteRight =new ImageIcon((new ImageIcon("Material\\KeyRight.png")). + getImage().getScaledInstance(10,10,Image.SCALE_SMOOTH)); + private void ShowWindow(){ - public void ShowWindow(){ - - Dimension dimen=new Dimension(30,30); - - ButtonUp.setPreferredSize(dimen); - ButtonUp.addActionListener(e->{ - field.UpButtonAction(); - repaint(); - }); - - ButtonDown.setPreferredSize(dimen); - ButtonDown.addActionListener(e->{ - field.DownButtonAction(); - repaint(); - }); - - ButtonRight.setPreferredSize(dimen); - ButtonRight.addActionListener(e->{ - field.RightButtonAction(); - repaint(); - }); - - ButtonLeft.setPreferredSize(dimen); - ButtonLeft.addActionListener(e->{ - field.LeftButtonAction(); - repaint(); - }); - - LRPanel.setLayout(new FlowLayout(FlowLayout.CENTER,50,0)); - LRPanel.setBackground(new Color(0,0,0,0)); - LRPanel.add(ButtonLeft); - LRPanel.add(ButtonRight); - - UPanel.setLayout(new FlowLayout()); - UPanel.setBackground(new Color(0,0,0,0)); - UPanel.add(ButtonUp); - - DPanel.setLayout(new FlowLayout()); - DPanel.setBackground(new Color(0,0,0,0)); - DPanel.add(ButtonDown); - - DimentionPanel.setLayout(new BoxLayout(DimentionPanel,BoxLayout.Y_AXIS)); - DimentionPanel.setBackground(new Color(0,0,0,0)); - DimentionPanel.add(UPanel); - DimentionPanel.add(LRPanel); - DimentionPanel.add(DPanel); - add(DimentionPanel); - - CreatePanel.setLayout(new FlowLayout()); - CreatePanel.setBackground(new Color(0,0,0,0)); - CreatePanel.add(ButtonCreate); - ButtonCreate.addActionListener(e->{ + ButtonCreate.addActionListener(e -> { field.CreateButtonAction(); - repaint(); + ReDraw(); + }); + ButtonCreateModif.addActionListener(e -> { + field.CreateModifButtonAction(); + ReDraw(); + }); + ButtonUp.setIcon(spriteUp); + ButtonUp.addActionListener(e -> { + field.DirectionButtonAction(Direction.Up); + ReDraw(); + }); + ButtonLeft.setIcon(spriteLeft); + ButtonLeft.addActionListener(e -> { + field.DirectionButtonAction(Direction.Left); + ReDraw(); + }); + ButtonRight.setIcon(spriteRight); + ButtonRight.addActionListener(e -> { + field.DirectionButtonAction(Direction.Right); + ReDraw(); + }); + ButtonDown.setIcon(spriteDown); + ButtonDown.addActionListener(e -> { + field.DirectionButtonAction(Direction.Down); + ReDraw(); }); - - BottomPanel.setLayout(new FlowLayout()); - BottomPanel.setBackground(new Color(0,0,0,0)); - BottomPanel.add(SpeedLabel); - BottomPanel.add(WeightLabel); - BottomPanel.add(BodyColorLabel); - - BottomAndCreatePanel.setLayout(new BoxLayout(BottomAndCreatePanel,BoxLayout.Y_AXIS)); - BottomAndCreatePanel.setBackground(new Color(0,0,0,0)); - BottomAndCreatePanel.add(CreatePanel); - BottomAndCreatePanel.add(BottomPanel); - - add(BottomAndCreatePanel); - add(field); addComponentListener(new ComponentAdapter() { @Override - public void componentResized(ComponentEvent e) { + public void componentResized(ComponentEvent e){ super.componentResized(e); Width=getWidth(); Height=getHeight(); field.ResizeField(); - repaint(); - RefreshWindow(); + ReDraw(); + field.setBounds(0,0,Width,Height); } }); } - public void RefreshWindow(){ - field.setBounds(0,0,Width,Height); - BottomAndCreatePanel.setBounds(-220,Height-110,Width,80); - DimentionPanel.setBounds(Width-170,Height-170,190,140); + private void ReDraw() + { + Graphics2D graphics = (Graphics2D) PictureBox.getGraphics(); + graphics.clearRect(0, 0, PictureBox.getWidth(), PictureBox.getHeight()); + PictureBox.paintComponents(graphics); + field.Draw(graphics); } } diff --git a/src/FormMap.form b/src/FormMap.form new file mode 100644 index 0000000..8826466 --- /dev/null +++ b/src/FormMap.form @@ -0,0 +1,171 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/FormMap.java b/src/FormMap.java new file mode 100644 index 0000000..e58f7c9 --- /dev/null +++ b/src/FormMap.java @@ -0,0 +1,87 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.util.Objects; + +public class FormMap extends JFrame { + private int Width; + private int Height; + DrawingMap map = new DrawingMap(this); + private JButton ButtonDown; + private JButton ButtonRight; + private JButton ButtonLeft; + private JButton ButtonUp; + private JButton ButtonCreate; + private JButton ButtonCreateModif; + public JLabel SpeedLabel; + public JLabel WeightLabel; + public JLabel BodyColorLabel; + private JComboBox ComboBoxSelectorMap; + private JPanel PictureBox; + ImageIcon spriteUp =new ImageIcon((new ImageIcon("Material\\KeyUp.png")). + getImage().getScaledInstance(10,10,Image.SCALE_SMOOTH)); + ImageIcon spriteDown =new ImageIcon((new ImageIcon("Material\\KeyDown.png")). + getImage().getScaledInstance(10,10,Image.SCALE_SMOOTH)); + ImageIcon spriteLeft =new ImageIcon((new ImageIcon("Material\\KeyLeft.png")). + getImage().getScaledInstance(10,10,Image.SCALE_SMOOTH)); + ImageIcon spriteRight =new ImageIcon((new ImageIcon("Material\\KeyRight.png")). + getImage().getScaledInstance(10,10,Image.SCALE_SMOOTH)); + public FormMap(){ + super("Военный корабль"); + setContentPane(PictureBox); + setSize(1000,700); + Width = getWidth(); + Height = getHeight(); + ShowWindow(); + map.setBounds(0,0,Width,Height); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setVisible(true); + } + + private void ShowWindow(){ + ButtonCreate.addActionListener(e -> { + map.CreateButtonAction(); + ReDraw(); + }); + ButtonCreateModif.addActionListener(e -> { + map.CreateModifButtonAction(); + ReDraw(); + }); + ButtonUp.setIcon(spriteUp); + ButtonUp.addActionListener(e -> { + map.DirectionButtonAction(Direction.Up); + ReDraw(); + }); + ButtonLeft.setIcon(spriteLeft); + ButtonLeft.addActionListener(e -> { + map.DirectionButtonAction(Direction.Left); + ReDraw(); + }); + ButtonRight.setIcon(spriteRight); + ButtonRight.addActionListener(e -> { + map.DirectionButtonAction(Direction.Right); + ReDraw(); + }); + ButtonDown.setIcon(spriteDown); + ButtonDown.addActionListener(e -> { + map.DirectionButtonAction(Direction.Down); + ReDraw(); + }); + + ComboBoxSelectorMap.addActionListener(e -> { + map.ComboBoxSelectorMapAction(Objects.requireNonNull(ComboBoxSelectorMap.getSelectedItem()).toString()); + ReDraw(); + }); + } + private void ReDraw() + { + Graphics2D graphics = (Graphics2D) PictureBox.getGraphics(); + graphics.clearRect(0, 0, PictureBox.getWidth(), PictureBox.getHeight()); + PictureBox.paintComponents(graphics); + map.DrawMap(graphics); + } + +} diff --git a/src/IDrawingObject.java b/src/IDrawingObject.java index e4f54ff..3df3eb3 100644 --- a/src/IDrawingObject.java +++ b/src/IDrawingObject.java @@ -1,4 +1,5 @@ import java.awt.*; + public interface IDrawingObject { public float Step=0; void SetObject(int x, int y, int width, int height); diff --git a/src/IDrawningObjectWheels.java b/src/IDrawningObjectWheels.java new file mode 100644 index 0000000..b293250 --- /dev/null +++ b/src/IDrawningObjectWheels.java @@ -0,0 +1,6 @@ +import java.awt.*; + +public interface IDrawningObjectWheels { + void SetCountWheels(int count); + void DrawWheels(Graphics2D g, int _startPosX, int _startPosY); +} diff --git a/src/LongMap.java b/src/LongMap.java index 51e7cca..61671b6 100644 --- a/src/LongMap.java +++ b/src/LongMap.java @@ -1,37 +1,43 @@ import java.awt.*; public class LongMap extends AbstractMap{ - @Override - protected void GenerateMap() { - _map = new int[60][60]; - _size_x = (float) (_width / _map.length); - _size_y = (float) (_height / _map[0].length); + protected void GenerateMap() + { + _map = new int[100][100]; + _size_x = (float)_width / _map[0].length; + _size_y = (float)_height / _map[1].length; int counter = 0; - for (int i = 0; i < _map.length; ++i) { - for (int j = 0; j < _map[i].length; ++j) { - _map[i][j] = _freeWaterArea; + for (int i = 0; i < _map[0].length; ++i) + { + for (int j = 0; j < _map[1].length; ++j) + { + _map[i][j] = _freeRoad; } } - while (counter < 20) { - int x = _random.nextInt(59); - int y = _random.nextInt(59); - if (_map[x][y] == _freeWaterArea) { - _map[x][y] = _land; - counter++; + while (counter < 5) + { + int xStart = _random.nextInt(0, 100); + int xEnd = _random.nextInt(80, 100); + + for (int i = xStart; i <= xEnd; ++i) + { + _map[i] [xStart] = _barrier; } + + counter++; } } @Override - protected void DrawWaterPart(Graphics gr, int i, int j) { - gr.setColor(new Color(0xFFFFFF)); + protected void DrawBarrierPart(Graphics gr, int i, int j) { + gr.setColor(Color.GRAY); gr.fillRect((int) (i * _size_x), (int) (j * _size_y), (int) (i * (_size_x + 1)), (int) (j * (_size_y + 1))); } @Override - protected void DrawLandPart(Graphics gr, int i, int j) { - gr.setColor(new Color(0x050303)); + protected void DrawRoadPart(Graphics gr, int i, int j) { + gr.setColor(Color.BLACK); gr.fillRect((int) (i * _size_x), (int) (j * _size_y), (int) (i * (_size_x + 1)), (int) (j * (_size_y + 1))); } } diff --git a/src/Main.java b/src/Main.java index 1528646..7b927cf 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,5 +1,5 @@ public class Main { - public static void main(String[] args){ - new FormGasolineTanker(); + public static void main(String[] args) { + new FormMap(); } -} +} \ No newline at end of file diff --git a/src/OrnamentForm.java b/src/OrnamentForm.java new file mode 100644 index 0000000..413c777 --- /dev/null +++ b/src/OrnamentForm.java @@ -0,0 +1,9 @@ +public enum OrnamentForm { + NoneOrnament(0), + GrayOrnament(1), + RedOrnament(2); + public final int Value; + OrnamentForm(int i) { + Value=i; + } +} diff --git a/src/SimpleMap.java b/src/SimpleMap.java index 5278e90..9b81ab1 100644 --- a/src/SimpleMap.java +++ b/src/SimpleMap.java @@ -2,14 +2,14 @@ import java.awt.*; public class SimpleMap extends AbstractMap { @Override - protected void DrawWaterPart(Graphics gr, int i, int j) { - gr.setColor(new Color(0x5285B6)); + protected void DrawBarrierPart(Graphics gr, int i, int j) { + gr.setColor(Color.GRAY); gr.fillRect((int) (i * _size_x), (int) (j * _size_y), (int) (i * (_size_x + 1)), (int) (j * (_size_y + 1))); } @Override - protected void DrawLandPart(Graphics gr, int i, int j) { - gr.setColor(new Color(0x422A1D)); + protected void DrawRoadPart(Graphics gr, int i, int j) { + gr.setColor(Color.BLACK); gr.fillRect((int) (i * _size_x), (int) (j * _size_y), (int) (i * (_size_x + 1)), (int) (j * (_size_y + 1))); } @@ -21,16 +21,16 @@ public class SimpleMap extends AbstractMap { int counter = 0; for (int i = 0; i < _map.length; ++i) { for (int j = 0; j < _map[i].length; ++j) { - _map[i][j] = _freeWaterArea; + _map[i][j] = _freeRoad; } } while (counter < 50) { int x = _random.nextInt(99); int y = _random.nextInt(99); - if (_map[x][y] == _freeWaterArea) { - _map[x][y] = _land; + if (_map[x][y] == _freeRoad) { + _map[x][y] = _barrier; counter++; } } } -} \ No newline at end of file +} -- 2.25.1 From f4524f86242d45ab06b2bbe3bf8b5dbf9671533c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D1=88=D0=B8=D0=BD=20=D0=9C=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D0=BC?= Date: Sat, 22 Oct 2022 16:15:59 +0400 Subject: [PATCH 4/6] Rename --- Material/KeyDown.jpg | Bin 0 -> 808 bytes Material/KeyDown.png | Bin 0 -> 1433 bytes Material/KeyLeft.png | Bin 0 -> 1265 bytes Material/KeyRight.png | Bin 0 -> 1310 bytes Material/KeyUp.png | Bin 0 -> 1278 bytes src/DrawingField.java | 12 ++++++------ src/FormGasolineTanker.java | 2 +- src/FormMap.java | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 Material/KeyDown.jpg create mode 100644 Material/KeyDown.png create mode 100644 Material/KeyLeft.png create mode 100644 Material/KeyRight.png create mode 100644 Material/KeyUp.png diff --git a/Material/KeyDown.jpg b/Material/KeyDown.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f0945dd2f020cd9a1df6d9a5b5c96e702fbddc48 GIT binary patch literal 808 zcmex=kBn zaw38vawLQQ2N(o77|a>Wm>HEAm;@P_1sVSz0ePK~g&E;^klUG9See;5*nqMo0t}4I zOe~CC%$!iqF)}bQv#_!WDjEv03yT;z1_mV-PBfi#P(szjtf+Cy!izv%BEUdJ10YdB zOwn5mJV3jd1epaH>=|CYj>*Z@j*+eY+E4jD$DKOOx~}W8v%vFJ3Devy&OG8)W<0F7Ubw&D;m6D!Qdgf@>Kqce zq0DmOMxySdjN9iz&#-OwdmH!O=L_=&25a$E(h7d^ChENtnzmiAd)M-_He{*P#Sbs) z{jYj+u(kRZ9@=KzroAnxYnR&T(rvCPA)CczW?g?eFFDC=r|@>+O?Or=TvTkP!N&5S zaZ^BpQ;5RyE$5{(W*nc>?G~N4blWm{`7Z%2e4-@}O3$APZjH5zE&en`k?G5+ddZ(& YR;l(qzeN-oFDtw$wBIDqBLDv;03kT=o&W#< literal 0 HcmV?d00001 diff --git a/Material/KeyDown.png b/Material/KeyDown.png new file mode 100644 index 0000000000000000000000000000000000000000..ff09b70c28c9988dac153284fd98a56020d7069e GIT binary patch literal 1433 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 UC`*H+82|tP07*qoM6N<$g5dIoJpcdz literal 0 HcmV?d00001 diff --git a/Material/KeyUp.png b/Material/KeyUp.png new file mode 100644 index 0000000000000000000000000000000000000000..0e4bf6ffa0263f78b54fa34ba68c98c19ef64090 GIT binary patch literal 1278 zcmVu0sj2jo~ zRd69$DB?mv1Ys_yAR;J1xPw^=BIrVV#=N^8vk2))+H~x`={O|#K`km>b*fH%b?VeP z74q`(qB-ZN1xjgEoe)y9o!9SSeg6#Z{+Ub$)T3?7<6E&-180mm6~8v+7w-Oz$_s+_ zW$Y_gvDu)c#1kQ;jTv*>70`UY6BJ(Kl^JqFYu(0-5kjD~{=erD3JCp=+4f}&2yRnB zZ7l5eZriG4%4rj5#1_K0Vy%Xnfmj$e#VCVR(y3=M8JMPtj*bo#i^V|lz5G?(K7o7q zfKm#KGe{|+ltM0-!`$2)E-o&hwf+(ZUpsVe5R5U{whhiX48y?w{yuhgb`Xt5F+M(y zuC6ZFw%v@O9W;$Gr4$%rxVgE(^71lfXJ>JIe2kxe|AY{t>8w$pw8!feH$H368Hd&y zT50U=?&9I$0a8l*^~az1vGN1Ax3@411B|i{vVoFKRhAFqQ&Lqt6$=}-uwhviu98<+ zTU*2E=qQ8`0Dx>Zi@m))NFgDWY#MV-QOq<=q|<3^ZEc~iug^IJZ7DD`G=!Cv75w_= z7b1}eq?DnJTe-uU=Eu&@&#|$wf&Tt}Xsw}?axU8g0|VIH+(a&yLuG0rOw_copioMc zY>RVn&hh;GjMdduOiWBTTd*v93#!Sg~EsSwrwMu&0=I^1dEG{xVyUx zowb^Z1@&uMYgm?rL?VHBJdWPpUI-z;7=vk=wFjmYQc5t!u)VzvLWom$`zbHKrM0fw z5#@SlSt=S;o(mgrficDZeVb55DN`Kg6^r#Q)Gv%1mLcA-$f%*+g~ zuCCDC-TmRa`v4(?fKuw%Wlv8J5{U#(PEIgAJq@LluW`NRnM$R?QA`Md`}=#OQYl0t zkq_U!CQ2y_Kox~$Sq@8-Qr|XK55Dq>ZUk-b zj=S73ROL4GlREG-e%ofLz7=aV_&Piq&HH)fCH&%dV#Ky(>|3!`gRk6u(A@cFHuV)L z?zUy@Td`IHH%${#%DQ$G)DO9BsL_8V`01~;b}r*mO7QphcXUQOOB3=?pwUb6R~#0V zv0SlO1kdO5uq>NBO~#ODRKNK{wpSANF6I%1Twr o<>gd#GZFSF=_S7`R|tWB0pFkf#1au;M1& literal 0 HcmV?d00001 diff --git a/src/DrawingField.java b/src/DrawingField.java index f92125f..9aef989 100644 --- a/src/DrawingField.java +++ b/src/DrawingField.java @@ -25,13 +25,13 @@ public class DrawingField extends JPanel{ private void SetData() { Random rand=new Random(); _gasolineTanker.SetPosition(rand.nextInt(100)+10,rand.nextInt(100)+10,getWidth(),getHeight()); - Field.SpeedLabel.setText("Скорость: "+_gasolineTanker.getGasolineTanker().getSpeed()); - Field.WeightLabel.setText("Вес: "+_gasolineTanker.getGasolineTanker().getWeight()); - Field.BodyColorLabel.setText("Цвет: "+Integer.toHexString(_gasolineTanker.getGasolineTanker().getBodyColor().getRGB()).substring(2)); + Field.SpeedLabel.setText("Speed: "+_gasolineTanker.getGasolineTanker().getSpeed()); + Field.WeightLabel.setText("Weight: "+_gasolineTanker.getGasolineTanker().getWeight()); + Field.BodyColorLabel.setText("Color: "+Integer.toHexString(_gasolineTanker.getGasolineTanker().getBodyColor().getRGB()).substring(2)); } public void CreateButtonAction(){ Random rand=new Random(); - Color color1 = JColorChooser.showDialog(Field, "Выберите цвет тела корабля", null); + Color color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); if(color1==null) color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); _gasolineTanker=new DrawingGasolineTanker(rand.nextInt(50)+10,rand.nextInt(3000)+20000,color1,rand.nextInt(3)); @@ -39,8 +39,8 @@ public class DrawingField extends JPanel{ } public void CreateModifButtonAction(){ Random rand=new Random(); - Color color1=JColorChooser.showDialog(Field, "Выберите цвет тела корабля",null); - Color color2=JColorChooser.showDialog(Field, "Выборите цвет модификаций корабля",null); + Color color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); + Color color2=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); if(color1==null) color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); if (color2==null) diff --git a/src/FormGasolineTanker.java b/src/FormGasolineTanker.java index 22aa3a9..079ba06 100644 --- a/src/FormGasolineTanker.java +++ b/src/FormGasolineTanker.java @@ -19,7 +19,7 @@ public class FormGasolineTanker extends JFrame{ private JPanel PictureBox; public FormGasolineTanker(){ - super("Военный корабль"); + super("Gasoline Tanker"); setContentPane(PictureBox); setSize(1000,700); Width = getWidth(); diff --git a/src/FormMap.java b/src/FormMap.java index e58f7c9..accc5f3 100644 --- a/src/FormMap.java +++ b/src/FormMap.java @@ -30,7 +30,7 @@ public class FormMap extends JFrame { ImageIcon spriteRight =new ImageIcon((new ImageIcon("Material\\KeyRight.png")). getImage().getScaledInstance(10,10,Image.SCALE_SMOOTH)); public FormMap(){ - super("Военный корабль"); + super("Gasoline tanker"); setContentPane(PictureBox); setSize(1000,700); Width = getWidth(); -- 2.25.1 From 67b9c8b39b3ace1b636bc88b517254bbf3637176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D1=88=D0=B8=D0=BD=20=D0=9C=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D0=BC?= Date: Sat, 22 Oct 2022 16:24:50 +0400 Subject: [PATCH 5/6] Fix --- src/DrawingGasolineTanker.java | 12 ++++++------ src/DrawingImprovedGasolineTanker.java | 4 ++-- src/DrawingMap.java | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/DrawingGasolineTanker.java b/src/DrawingGasolineTanker.java index 9d414e0..4aedf6d 100644 --- a/src/DrawingGasolineTanker.java +++ b/src/DrawingGasolineTanker.java @@ -17,14 +17,14 @@ public class DrawingGasolineTanker { public DrawingGasolineTanker(int speed, float weight, Color bodyColor, int wheelsForm) { GasolineTanker = new EntityGasolineTanker(speed, weight, bodyColor); - Wheels= GetFormOfBlock(wheelsForm); + Wheels= GetFormOfWheels(wheelsForm); Wheels.SetCountWheels((int)(2 + Math.random() + Math.random()*2)); } - public IDrawningObjectWheels GetFormOfBlock(int FormOfBlock){ + public IDrawningObjectWheels GetFormOfWheels(int FormOfWheel){ OrnamentForm temp = null; for (OrnamentForm form:OrnamentForm.values()) { - if(form.Value==FormOfBlock){ + if(form.Value==FormOfWheel){ temp = form; break; } @@ -42,13 +42,13 @@ public class DrawingGasolineTanker { return null; } - protected DrawingGasolineTanker(int speed, float weight, Color bodyColor,int warshipWidth, int warshipHeight) + protected DrawingGasolineTanker(int speed, float weight, Color bodyColor,int gasolineTankerWidth, int gasolineTankerHeight) { GasolineTanker = new EntityGasolineTanker(speed, weight, bodyColor); Wheels= new DrawingWheels(_wheels); Wheels.SetCountWheels((int)(2 + Math.random() + Math.random()*2)); - _gasolineTankerWidth=warshipWidth; - _pictureHeight=warshipHeight; + _gasolineTankerWidth=gasolineTankerWidth; + _pictureHeight=gasolineTankerHeight; } public void SetPosition(int x, int y, int width, int height) diff --git a/src/DrawingImprovedGasolineTanker.java b/src/DrawingImprovedGasolineTanker.java index ac2b6dc..4a62c10 100644 --- a/src/DrawingImprovedGasolineTanker.java +++ b/src/DrawingImprovedGasolineTanker.java @@ -2,10 +2,10 @@ import java.awt.*; public class DrawingImprovedGasolineTanker extends DrawingGasolineTanker { - public DrawingImprovedGasolineTanker(int speed, float weight, Color bodyColor, Color dopColor, boolean bodyKit, boolean antena,int blockForm) { + public DrawingImprovedGasolineTanker(int speed, float weight, Color bodyColor, Color dopColor, boolean bodyKit, boolean antena,int wheelForm) { super(speed, weight, bodyColor, 160, 70); GasolineTanker=new EntityImprovedGasolineTanker(speed,weight,bodyColor,dopColor,bodyKit,antena); - Wheels= GetFormOfBlock(blockForm); + Wheels= GetFormOfWheels(wheelForm); Wheels.SetCountWheels((int)(2 + Math.random() + Math.random()*2)); } diff --git a/src/DrawingMap.java b/src/DrawingMap.java index 01e4b0a..7d151d2 100644 --- a/src/DrawingMap.java +++ b/src/DrawingMap.java @@ -32,8 +32,8 @@ public class DrawingMap extends JPanel { Color color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); if(color1==null) color1=new Color(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256)); - DrawingGasolineTanker warship=new DrawingGasolineTanker(rand.nextInt(50)+10,rand.nextInt(3000)+20000,color1,rand.nextInt(3)); - SetData(warship); + DrawingGasolineTanker gasolineTanker=new DrawingGasolineTanker(rand.nextInt(50)+10,rand.nextInt(3000)+20000,color1,rand.nextInt(3)); + SetData(gasolineTanker); } public void CreateModifButtonAction(){ Random rand=new Random(); -- 2.25.1 From 39fe319e0bd083eb574fc1c3f9d4a4e22744131a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B0=D1=88=D0=B8=D0=BD=20=D0=9C=D0=B0=D0=BA=D1=81?= =?UTF-8?q?=D0=B8=D0=BC?= Date: Wed, 2 Nov 2022 10:21:55 +0400 Subject: [PATCH 6/6] Fix ornament --- src/DrawingOrnamentWheelsSecond.java | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/DrawingOrnamentWheelsSecond.java b/src/DrawingOrnamentWheelsSecond.java index cf2ff8d..75b725b 100644 --- a/src/DrawingOrnamentWheelsSecond.java +++ b/src/DrawingOrnamentWheelsSecond.java @@ -22,9 +22,9 @@ public class DrawingOrnamentWheelsSecond implements IDrawningObjectWheels{ g.setColor(Color.BLACK); g.drawOval(_startPosX + 10, _startPosY + 35, 20, 20); g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); - g.setColor(Color.RED); - g.drawOval(_startPosX + 130, _startPosY + 45, 20, 5); - g.drawOval(_startPosX + 10, _startPosY + 45, 20, 5); + g.setColor(Color.GRAY); + g.drawRect(_startPosX + 130, _startPosY + 45, 20, 5); + g.drawRect(_startPosX + 10, _startPosY + 45, 20, 5); } if (_wheels.getCountWheels() == 3) { g.setColor(Color.BLACK); @@ -32,10 +32,10 @@ public class DrawingOrnamentWheelsSecond implements IDrawningObjectWheels{ g.fillOval(_startPosX + 10, _startPosY + 35, 20, 20); g.drawOval(_startPosX + 30, _startPosY + 35, 20, 20); g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); - g.setColor(Color.RED); - g.drawOval(_startPosX + 130, _startPosY + 45, 20, 5); - g.drawOval(_startPosX + 30, _startPosY + 45, 20, 5); - g.drawOval(_startPosX + 10, _startPosY + 45, 20, 5); + g.setColor(Color.GRAY); + g.drawRect(_startPosX + 130, _startPosY + 45, 20, 5); + g.drawRect(_startPosX + 30, _startPosY + 45, 20, 5); + g.drawRect(_startPosX + 10, _startPosY + 45, 20, 5); } if (_wheels.getCountWheels() == 4) { g.setColor(Color.BLACK); @@ -45,11 +45,11 @@ public class DrawingOrnamentWheelsSecond implements IDrawningObjectWheels{ g.fillOval(_startPosX + 30, _startPosY + 35, 20, 20); g.drawOval(_startPosX + 50, _startPosY + 35, 20, 20); g.fillOval(_startPosX + 50, _startPosY + 35, 20, 20); - g.setColor(Color.RED); - g.drawOval(_startPosX + 130, _startPosY + 45, 20, 5); - g.drawOval(_startPosX + 50, _startPosY + 45, 20, 5); - g.drawOval(_startPosX + 30, _startPosY + 45, 20, 5); - g.drawOval(_startPosX + 10, _startPosY + 45, 20, 5); + g.setColor(Color.GRAY); + g.drawRect(_startPosX + 130, _startPosY + 45, 20, 5); + g.drawRect(_startPosX + 50, _startPosY + 45, 20, 5); + g.drawRect(_startPosX + 30, _startPosY + 45, 20, 5); + g.drawRect(_startPosX + 10, _startPosY + 45, 20, 5); } } } -- 2.25.1