Implement engines renderer
This commit is contained in:
parent
be6065021e
commit
7044b3eac3
@ -2,12 +2,12 @@ import java.awt.Color;
|
|||||||
|
|
||||||
public class BomberEntity
|
public class BomberEntity
|
||||||
{
|
{
|
||||||
public int Speed;
|
private int Speed;
|
||||||
public double Weight;
|
private double Weight;
|
||||||
public Color BodyColor;
|
private Color BodyColor;
|
||||||
public Color AdditionalColor;
|
private Color AdditionalColor;
|
||||||
public boolean Bombs;
|
private boolean Bombs;
|
||||||
public boolean FuelTanks;
|
private boolean FuelTanks;
|
||||||
public double Step;
|
public double Step;
|
||||||
|
|
||||||
public void Init(int Speed, double Weight, Color BodyColor, Color AdditionalColor, boolean FuelTanks, boolean Bombs)
|
public void Init(int Speed, double Weight, Color BodyColor, Color AdditionalColor, boolean FuelTanks, boolean Bombs)
|
||||||
@ -21,4 +21,16 @@ public class BomberEntity
|
|||||||
|
|
||||||
this.Step = (double)Speed * 100 / Weight * 5 / 2;
|
this.Step = (double)Speed * 100 / Weight * 5 / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int GetSpeed() { return Speed; }
|
||||||
|
|
||||||
|
public double GetWeight() { return Weight; }
|
||||||
|
|
||||||
|
public Color GetBodyColor() { return BodyColor; }
|
||||||
|
|
||||||
|
public Color GetAdditionalColor() { return AdditionalColor; }
|
||||||
|
|
||||||
|
public boolean GetBombs() { return Bombs; }
|
||||||
|
|
||||||
|
public boolean GetFuelTanks() { return FuelTanks; }
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class BomberRenderer
|
public class BomberRenderer
|
||||||
{
|
{
|
||||||
public BomberEntity EntityBomber;
|
private BomberEntity EntityBomber;
|
||||||
|
|
||||||
private int _pictureWidth;
|
private int _pictureWidth;
|
||||||
private int _pictureHeight;
|
private int _pictureHeight;
|
||||||
@ -13,6 +14,8 @@ public class BomberRenderer
|
|||||||
private int _bomberWidth = 200;
|
private int _bomberWidth = 200;
|
||||||
private int _bomberHeight = 200;
|
private int _bomberHeight = 200;
|
||||||
|
|
||||||
|
public EngineRenderer EngineRenderer;
|
||||||
|
|
||||||
public boolean Init(int Speed, double Weight, Color BodyColor, Color AdditionalColor, boolean FuelTanks, boolean Bombs, int Width, int Height)
|
public boolean Init(int Speed, double Weight, Color BodyColor, Color AdditionalColor, boolean FuelTanks, boolean Bombs, int Width, int Height)
|
||||||
{
|
{
|
||||||
if (Width < _bomberWidth || Height < _bomberHeight)
|
if (Width < _bomberWidth || Height < _bomberHeight)
|
||||||
@ -23,10 +26,17 @@ public class BomberRenderer
|
|||||||
|
|
||||||
EntityBomber = new BomberEntity();
|
EntityBomber = new BomberEntity();
|
||||||
EntityBomber.Init(Speed, Weight, BodyColor, AdditionalColor, FuelTanks, Bombs);
|
EntityBomber.Init(Speed, Weight, BodyColor, AdditionalColor, FuelTanks, Bombs);
|
||||||
|
|
||||||
|
EngineRenderer = new EngineRenderer();
|
||||||
|
|
||||||
|
Random Random = new Random();
|
||||||
|
EngineRenderer.SetAmount(Random.nextInt(1, 7));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BomberEntity GetEntityBomber() { return EntityBomber; }
|
||||||
|
|
||||||
public void SetPosition(int x, int y)
|
public void SetPosition(int x, int y)
|
||||||
{
|
{
|
||||||
if (EntityBomber == null)
|
if (EntityBomber == null)
|
||||||
@ -86,7 +96,7 @@ public class BomberRenderer
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/** Отрисовка основной части */
|
/** Отрисовка основной части */
|
||||||
g.setColor(EntityBomber.BodyColor);
|
g.setColor(EntityBomber.GetBodyColor());
|
||||||
|
|
||||||
int[] LeftWingX = {
|
int[] LeftWingX = {
|
||||||
_startPosX + 90,
|
_startPosX + 90,
|
||||||
@ -172,9 +182,9 @@ public class BomberRenderer
|
|||||||
g.drawPolygon(BackRightWingX, BackRightWingY, 4);
|
g.drawPolygon(BackRightWingX, BackRightWingY, 4);
|
||||||
|
|
||||||
/** Отрисовка дополнительных элементов */
|
/** Отрисовка дополнительных элементов */
|
||||||
g.setColor(EntityBomber.AdditionalColor);
|
g.setColor(EntityBomber.GetAdditionalColor());
|
||||||
|
|
||||||
if (EntityBomber.FuelTanks)
|
if (EntityBomber.GetFuelTanks())
|
||||||
{
|
{
|
||||||
int[] LeftGasTankX = {
|
int[] LeftGasTankX = {
|
||||||
_startPosX + 50,
|
_startPosX + 50,
|
||||||
@ -205,10 +215,12 @@ public class BomberRenderer
|
|||||||
g.fillPolygon(RightGasTankX, RightGasTankY, 4);
|
g.fillPolygon(RightGasTankX, RightGasTankY, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (EntityBomber.Bombs)
|
if (EntityBomber.GetBombs())
|
||||||
{
|
{
|
||||||
g.fillOval(_startPosX + 110, _startPosY + 115, 50, 25);
|
g.fillOval(_startPosX + 110, _startPosY + 115, 50, 25);
|
||||||
g.fillOval(_startPosX + 110, _startPosY + 60, 50, 25);
|
g.fillOval(_startPosX + 110, _startPosY + 60, 50, 25);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EngineRenderer.DrawEngines(g, EntityBomber.GetBodyColor(), _startPosX, _startPosY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
38
src/EngineRenderer.java
Normal file
38
src/EngineRenderer.java
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
public class EngineRenderer
|
||||||
|
{
|
||||||
|
private EnginesAmount Amount;
|
||||||
|
|
||||||
|
public void SetAmount(int Amount)
|
||||||
|
{
|
||||||
|
if (Amount <= 2)
|
||||||
|
this.Amount = EnginesAmount.Two;
|
||||||
|
|
||||||
|
else if (Amount > 2 && Amount <= 4)
|
||||||
|
this.Amount = EnginesAmount.Four;
|
||||||
|
|
||||||
|
else
|
||||||
|
this.Amount = EnginesAmount.Six;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DrawEngines(Graphics g, Color BodyColor, int _startPosX, int _startPosY)
|
||||||
|
{
|
||||||
|
g.setColor(BodyColor);
|
||||||
|
|
||||||
|
g.fillOval(_startPosX + 83, _startPosY + 50, 30, 15);
|
||||||
|
g.fillOval(_startPosX + 83, _startPosY + 135, 30, 15);
|
||||||
|
|
||||||
|
if (Amount == EnginesAmount.Two)
|
||||||
|
return;
|
||||||
|
|
||||||
|
g.fillOval(_startPosX + 83, _startPosY + 30, 30, 15);
|
||||||
|
g.fillOval(_startPosX + 83, _startPosY + 155, 30, 15);
|
||||||
|
|
||||||
|
if (Amount == EnginesAmount.Four)
|
||||||
|
return;
|
||||||
|
|
||||||
|
g.fillOval(_startPosX + 83, _startPosY + 10, 30, 15);
|
||||||
|
g.fillOval(_startPosX + 83, _startPosY + 175, 30, 15);
|
||||||
|
}
|
||||||
|
}
|
6
src/EnginesAmount.java
Normal file
6
src/EnginesAmount.java
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
public enum EnginesAmount
|
||||||
|
{
|
||||||
|
Two,
|
||||||
|
Four,
|
||||||
|
Six
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user