start physics

This commit is contained in:
nora 2020-12-11 23:04:08 +01:00
parent 35c47c50b8
commit 843d30eb47
9 changed files with 61 additions and 2 deletions

View file

@ -0,0 +1,5 @@
package core;
public interface Collidable {
}

View file

@ -3,8 +3,10 @@ package core;
import objects.DebugPos;
import objects.ships.BattleShip;
import objects.GameObject;
import objects.ships.Submarine;
import objects.ships.Turret;
import objects.world.Grid;
import objects.world.Wall;
import javax.swing.*;
import java.awt.*;
@ -44,6 +46,9 @@ public class Master extends JPanel {
}
objects.add(bs);
objects.add(battleShip);
objects.add(new Submarine(new Vector2D(), new Vector2D(20, 20)));
objects.add(new Wall(20, 80, 50, 2));
}
/**

View file

@ -0,0 +1,5 @@
package core.physics;
public abstract class Hitbox {
}

View file

@ -0,0 +1,4 @@
package core.physics;
public class RectHitBox extends Hitbox{
}

View file

@ -32,6 +32,10 @@ public abstract class GameObject {
public abstract void draw(Graphics2D g2d, int w, Master master);
public abstract void update(Master master);
public void moveTo(Vector2D target){
this.position = target;
}
public double getMapCoords(double value, boolean isX){
if (isX){

View file

@ -1,18 +1,26 @@
package objects.ships;
import core.Master;
import core.Vector2D;
import objects.GameObject;
import java.awt.*;
public class Submarine extends GameObject {
public Submarine(Vector2D position, Vector2D size) {
super(position, size);
}
@Override
public void draw(Graphics2D g2d, int w, Master master) {
g2d.setPaint(Color.BLUE);
g2d.fillOval((int) (position.x - size.x / 2), (int) (position.y - size.y / 2), (int) size.x, (int) size.y);
}
@Override
public void update(Master master) {
Point mouse = master.getMouseLocation();
moveTo(new Vector2D(mouse.x, mouse.y));
}
}

View file

@ -0,0 +1,28 @@
package objects.world;
import core.Master;
import objects.GameObject;
import java.awt.*;
public class Wall extends GameObject {
public Wall(double x, double y, double xSize, double ySize) {
super(x, y, xSize, ySize);
}
@Override
public void draw(Graphics2D g2d, int w, Master master) {
int xAbs = (int) getWorldCoords(position.x, true);
int yAbs = (int) getWorldCoords(position.y, false);
int sizeXAbs = (int) getWorldCoords(size.x, true);
int sizeYAbs = (int) getWorldCoords(size.y, false);
g2d.setPaint(Color.BLACK);
g2d.fillRect(xAbs, yAbs, sizeXAbs, sizeYAbs);
}
@Override
public void update(Master master) {
}
}

Binary file not shown.