88 lines
3.2 KiB
Java
88 lines
3.2 KiB
Java
|
||
import java.awt.*;
|
||
|
||
public class DrawingRoadTrain {
|
||
private WheelDrawing wheelDrawing;
|
||
public EntityRoadTrain EntityRoadTrain;
|
||
private int _pictureWidth;
|
||
private int _pictureHeight;
|
||
private int _startPosX;
|
||
private int _startPosY;
|
||
private int _roadTrainWidth = 200;
|
||
private int _roadTrainHeight = 100;
|
||
public boolean Init(int speed, double weight, Color bodyColor, Color
|
||
additionalColor, boolean wheel, boolean door, boolean light, int numWheel, int width, int height)
|
||
{
|
||
_pictureWidth = width;
|
||
_pictureHeight = height;
|
||
if (_pictureHeight < _roadTrainHeight || _pictureWidth < _roadTrainWidth)
|
||
return false;
|
||
EntityRoadTrain = new EntityRoadTrain();
|
||
EntityRoadTrain.Init(speed, weight, bodyColor, additionalColor,wheel, door, light, numWheel);
|
||
|
||
wheelDrawing = new WheelDrawing();
|
||
wheelDrawing.setNumWheel(numWheel);
|
||
return true;
|
||
}
|
||
public void SetPosition(int x, int y)
|
||
{
|
||
_startPosX = Math.min(x, _pictureWidth-_roadTrainWidth);
|
||
_startPosY = Math.min(y, _pictureHeight- _roadTrainHeight);
|
||
}
|
||
public void MoveTransport(Direction direction)
|
||
{
|
||
if (EntityRoadTrain == null){
|
||
return;
|
||
}
|
||
switch (direction)
|
||
{
|
||
case Left:
|
||
if (_startPosX - EntityRoadTrain.Step > 0)
|
||
{
|
||
_startPosX -= (int) EntityRoadTrain.Step;
|
||
}
|
||
break;
|
||
case Up:
|
||
if (_startPosY - EntityRoadTrain.Step > 0)
|
||
{
|
||
_startPosY -= (int) EntityRoadTrain.Step;
|
||
}
|
||
break;
|
||
case Right:
|
||
if (_startPosX + _roadTrainWidth + EntityRoadTrain.Step < _pictureWidth)
|
||
{
|
||
_startPosX += (int) EntityRoadTrain.Step;
|
||
}
|
||
break;
|
||
case Down:
|
||
if (_startPosY + _roadTrainHeight + EntityRoadTrain.Step < _pictureHeight)
|
||
{
|
||
_startPosY += (int) EntityRoadTrain.Step;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
public void DrawTransport(Graphics2D g) {
|
||
if (EntityRoadTrain == null) {
|
||
return;
|
||
}
|
||
// машина
|
||
g.drawRect(_startPosX, _startPosY + 50, 160, 20); // кузов
|
||
g.drawRect(_startPosX + 120, _startPosY + 10, 40, 40); // кабина
|
||
g.drawRect(_startPosX + 10, _startPosY, 90, 50); // бак с водой
|
||
g.drawRect(_startPosX + 130, _startPosY + 20, 30, 20); // окно
|
||
g.drawLine(_startPosX + 160, _startPosY + 70, _startPosX + 180, _startPosY + 80); // держатель для щетки
|
||
g.drawRect(_startPosX + 170, _startPosY + 80, 40, 10); // щетка
|
||
// обвесы
|
||
g.setColor(EntityRoadTrain.AdditionalColor);
|
||
wheelDrawing.Draw(_startPosX, _startPosY, EntityRoadTrain.AdditionalColor, g);
|
||
|
||
if (EntityRoadTrain.Door) {
|
||
g.fillRect(_startPosX + 40, _startPosY + 20, 20, 30); // дверь
|
||
}
|
||
if (EntityRoadTrain.Light) {
|
||
g.fillRect(_startPosX + 135, _startPosY, 10, 10); // мигалка
|
||
}
|
||
}
|
||
}
|