Batylkin.A.O.LabWork02 #2
@ -2,5 +2,6 @@ public enum Direction {
|
||||
Up,
|
||||
Down,
|
||||
Left,
|
||||
Right
|
||||
Right,
|
||||
None
|
||||
}
|
@ -1,24 +1,35 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.Random;
|
||||
|
||||
public class DrawingLocomotive extends JComponent {
|
||||
public EntityLocomotive Locomotive;
|
||||
private float _startPosX;
|
||||
private float _startPosY;
|
||||
public float _startPosX;
|
||||
public float _startPosY;
|
||||
private Integer _pictureWidth = null;
|
||||
private Integer _pictureHeight = null;
|
||||
private final int _locomotiveWidth = 150;
|
||||
private final int _locomotiveHeight = 100;
|
||||
private DrawingWheel _wheel;
|
||||
public DrawingLocomotive() {
|
||||
super();
|
||||
}
|
||||
public void Init(int speed, float weight, Color bodyColor, int wheelCount)
|
||||
private int _locomotiveWidth = 150;
|
||||
private int _locomotiveHeight = 100;
|
||||
private IDrawningObjectWheel _wheel;
|
||||
public DrawingLocomotive(int speed, float weight, Color bodyColor, int wheelCount)
|
||||
{
|
||||
Locomotive = new EntityLocomotive();
|
||||
Locomotive.Init(speed, weight, bodyColor);
|
||||
_wheel = new DrawingWheel();
|
||||
Random random = new Random();
|
||||
Locomotive = new EntityLocomotive(speed, weight, bodyColor);
|
||||
int randomPattern=random.nextInt(3);
|
||||
if (randomPattern==0)
|
||||
_wheel = new DrawingWheel();
|
||||
else if(randomPattern==1)
|
||||
_wheel = new DrawingWheelCircle();
|
||||
else
|
||||
_wheel = new DrawningWheelTriangle();
|
||||
_wheel.SetWheelAmount(wheelCount);
|
||||
}
|
||||
protected DrawingLocomotive(int speed, float weight, Color bodyColor, int whelcount, int locomotiveWidth, int locomotiveHeight)
|
||||
{
|
||||
this(speed, weight, bodyColor, whelcount);
|
||||
_locomotiveWidth = locomotiveWidth;
|
||||
_locomotiveHeight = locomotiveHeight;
|
||||
}
|
||||
public void SetPosition(int x, int y, int width, int height)
|
||||
{
|
||||
if (width <= _locomotiveWidth + x || height <= _locomotiveHeight + y || x<0 || y<0)
|
||||
@ -119,4 +130,12 @@ public class DrawingLocomotive extends JComponent {
|
||||
_startPosY = _pictureHeight - _locomotiveHeight;
|
||||
}
|
||||
}
|
||||
public float[] GetCurrentPosition(){
|
||||
float[] tuple = new float[4];
|
||||
tuple[0] = _startPosX;
|
||||
tuple[1] =_startPosY;
|
||||
tuple[2] = _startPosX + _locomotiveWidth;
|
||||
tuple[3] = _startPosY + _locomotiveHeight;
|
||||
return tuple;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,8 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
public class DrawingWheel extends JComponent {
|
||||
public class DrawingWheel implements IDrawningObjectWheel {
|
||||
private AdditionalDirection _wheel;
|
||||
|
||||
@Override
|
||||
public void SetWheelAmount(int wheelAmount) {
|
||||
for (AdditionalDirection item: _wheel.values()) {
|
||||
if (item.getCount() == wheelAmount) {
|
||||
@ -10,8 +11,10 @@ public class DrawingWheel extends JComponent {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void DrawWheel(Graphics gr, int _startPosWheelX, int _startPosWheelY, Color pen) {
|
||||
super.paintComponent(gr);
|
||||
// super.paintComponent(gr);
|
||||
Graphics2D g=(Graphics2D)gr;
|
||||
|
||||
if (_wheel.getCount() >= 2) {
|
||||
@ -24,7 +27,7 @@ public class DrawingWheel extends JComponent {
|
||||
if (_wheel.getCount() >= 4) {
|
||||
paintWheel(g, _startPosWheelX +25, _startPosWheelY, pen);
|
||||
}
|
||||
super.repaint();
|
||||
// super.repaint();
|
||||
}
|
||||
protected void paintWheel(Graphics2D g, int _startPosX1, int _startPosY, Color pen){
|
||||
try { g.setPaint(pen); }
|
||||
|
@ -14,7 +14,7 @@ public class EntityLocomotive {
|
||||
}
|
||||
public float Step()
|
||||
{ return Speed() * 20 / Weight(); }
|
||||
public void Init(int speed, float weight, Color bodyColor)
|
||||
public EntityLocomotive(int speed, float weight, Color bodyColor)
|
||||
{
|
||||
Random random = new Random();
|
||||
this.speed = speed <= 0 ? random.nextInt(50, 150) : speed;
|
||||
|
@ -50,16 +50,9 @@ public class FormLocomotive extends JFrame {
|
||||
} catch (Exception c) {
|
||||
}
|
||||
Random random = new Random();
|
||||
_locomotive = new DrawingLocomotive();
|
||||
_locomotive.Init(random.nextInt(50, 150), random.nextInt(40, 70), new Color(random.nextInt(0, 256),
|
||||
_locomotive = new DrawingLocomotive(random.nextInt(50, 150), random.nextInt(40, 70), new Color(random.nextInt(0, 256),
|
||||
random.nextInt(0, 256), random.nextInt(0, 256)), GetWheelAmount());
|
||||
ChangePictureBoxLocomotiveBorders();
|
||||
_locomotive.SetPosition(random.nextInt(20, 100), random.nextInt(50, 100), pictureBoxLocomotiveWidth, pictureBoxLocomotiveHeight);
|
||||
toolStripStatusLabelSpeed.setText("Скорость: " + _locomotive.Locomotive.Speed());
|
||||
toolStripStatusLabelWeight.setText("Вес: " + _locomotive.Locomotive.Weight());
|
||||
|
||||
toolStripStatusLabelBodyColor.setText("Цвет: " + Integer.toHexString(_locomotive.Locomotive.BodyColor().getRGB()));
|
||||
pictureBoxLocomotive.add(_locomotive, BorderLayout.CENTER);
|
||||
SetData();
|
||||
}
|
||||
});
|
||||
addComponentListener(new ComponentAdapter() {
|
||||
@ -123,4 +116,13 @@ public class FormLocomotive extends JFrame {
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
private void SetData() {
|
||||
Random random = new Random();
|
||||
ChangePictureBoxLocomotiveBorders();
|
||||
_locomotive.SetPosition(random.nextInt(20, 100), random.nextInt(50, 100), pictureBoxLocomotiveWidth, pictureBoxLocomotiveHeight);
|
||||
toolStripStatusLabelSpeed.setText("Скорость: " + _locomotive.Locomotive.Speed());
|
||||
toolStripStatusLabelWeight.setText("Вес: " + _locomotive.Locomotive.Weight());
|
||||
toolStripStatusLabelBodyColor.setText("Цвет: " + Integer.toHexString(_locomotive.Locomotive.BodyColor().getRGB()));
|
||||
pictureBoxLocomotive.add(_locomotive, BorderLayout.CENTER);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user