package com.spaceshooter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.ParticleEffect;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class PlayerBullet extends Bullet {
private ParticleEffect particle;
float velocityX;
float velocityY;
private int weaponLevel;
public PlayerBullet(float xPos,float yPos,float velocityX,float velocityY,int weaponLevel) {
super(ResourceManager.PlayerBulletSprite);
particle = new ParticleEffect();
particle.load(Gdx.files.internal(ResourceManager.PlayerBullet),Gdx.files.internal("media"));
setPosition(xPos,yPos);
this.velocityY = velocityY;
this.velocityX = velocityX;
this.weaponLevel = weaponLevel;
if (weaponLevel == 1) {
for (int i = 0; i < particle.getEmitters().size;i++) {
particle.getEmitters().get(i).getTint().setColors(new float[] {125f,0f,0f,125f});
}
}
// If weaponLevel == 2, leave as blue
else if (weaponLevel == 3) {
for (int i = 0; i < particle.getEmitters().size;i++) {
particle.getEmitters().get(i).getTint().setColors(new float[] {0f,125f,0f,125f});
}
}
else if (weaponLevel >= 4) {
for (int i = 0; i < particle.getEmitters().size;i++) {
particle.getEmitters().get(i).getTint().setColors(new float[] {125f,125f,125f,125f});
}
}
}
//Constructor for subclasses i.e. missiles :
public PlayerBullet(String texture) {
super(texture);
}
public void updateBullet(SpriteBatch batch,EnemyManager enemyManager) {
setOrigin(getTexture().getWidth() / 2, getTexture().getHeight() / 2);
translate(velocityX * Gdx.graphics.getDeltaTime(),velocityY * Gdx.graphics.getDeltaTime());
drawParticle(batch);
}
public void drawParticle(SpriteBatch batch) {
float angle = (float) Math.toDegrees(Math.atan2(velocityY,velocityX));
particle.setPosition(getX(), getY()); // set the particle's position to
for (int i = 0; i < particle.getEmitters().size;i++) {
particle.getEmitters().get(i).getAngle().setLow(angle - 180); //min
particle.getEmitters().get(i).getAngle().setHigh(angle - 180); //max
}
// the bullet's
particle.draw(batch, Gdx.graphics.getDeltaTime());
}
public int getWeaponLevel() {
return weaponLevel;
}
}