소스 검색

Projectile start

Tankernn 8 년 전
부모
커밋
8cf24bdcde
2개의 변경된 파일46개의 추가작업 그리고 0개의 파일을 삭제
  1. 20 0
      src/main/java/eu/tankernn/gameEngine/entities/BasicProjectile.java
  2. 26 0
      src/main/java/eu/tankernn/gameEngine/entities/Projectile.java

+ 20 - 0
src/main/java/eu/tankernn/gameEngine/entities/BasicProjectile.java

@@ -0,0 +1,20 @@
+package eu.tankernn.gameEngine.entities;
+
+import org.lwjgl.util.vector.Vector3f;
+
+import eu.tankernn.gameEngine.loader.models.AABB;
+import eu.tankernn.gameEngine.loader.models.TexturedModel;
+import eu.tankernn.gameEngine.particles.ParticleSystem;
+
+public class BasicProjectile extends Projectile {
+
+	public BasicProjectile(TexturedModel model, Vector3f position, Vector3f velocity, ParticleSystem particleSystem) {
+		super(model, position, velocity, new AABB(new Vector3f(0, 0, 0), new Vector3f(1, 1, 1)), particleSystem);
+	}
+
+	@Override
+	public void onCollision(Entity3D entity) {
+		System.out.println("Collision!");
+	}
+
+}

+ 26 - 0
src/main/java/eu/tankernn/gameEngine/entities/Projectile.java

@@ -0,0 +1,26 @@
+package eu.tankernn.gameEngine.entities;
+
+import org.lwjgl.util.vector.Vector3f;
+
+import eu.tankernn.gameEngine.loader.models.AABB;
+import eu.tankernn.gameEngine.loader.models.TexturedModel;
+import eu.tankernn.gameEngine.particles.ParticleSystem;
+
+public abstract class Projectile extends Entity3D {
+	
+	private Vector3f velocity;
+	private ParticleSystem particleSystem;
+	
+	public Projectile(TexturedModel model, Vector3f position, Vector3f velocity, AABB boundingBox, ParticleSystem particleSystem) {
+		super(model, position, new Vector3f(0, 0, 0), 1, boundingBox);
+		this.particleSystem = particleSystem;
+		this.velocity = velocity;
+	}
+	
+	public void update() {
+		this.increasePosition(velocity.x, velocity.y, velocity.z);
+		particleSystem.setPosition(this.getPosition());
+	}
+	
+	public abstract void onCollision(Entity3D entity);
+}