This repository has been archived on 2024-02-25. You can view files and clone it, but cannot push or open issues or pull requests.
spaaace/src/Bullet.hx
2014-08-01 13:01:38 +02:00

97 lines
No EOL
1.8 KiB
Haxe

import com.haxepunk.Entity;
import com.haxepunk.graphics.Image;
import com.haxepunk.HXP;
class Bullet extends Entity {
public function new(x:Float, y:Float, ?heavylaser:Bool) {
super(x, y);
isHeavyLaser = heavylaser;
if (!isHeavyLaser)
which = Save.load().laser;
else
which = Save.load().heavy_laser;
if (!isHeavyLaser) {
laser1 = new Image(laser[which][0]);
laser2 = new Image(laser[which][1]);
}
else {
laser1 = new Image(heavy_laser[which][0]);
laser2 = new Image(heavy_laser[which][1]);
}
graphic = laser1;
setHitboxTo(laser1);
laser1.centerOrigin();
laser2.centerOrigin();
this.centerOrigin();
if (!isHeavyLaser) {
type = "bullet";
}
else {
layer = -4;
type = "heavybullet";
}
}
public override function update() {
super.update();
this.y -= moveSpeed;
timer -= HXP.elapsed;
if (collide("asteroid", this.x, this.y) != null && !isHeavyLaser) {
this.scene.remove(this);
}
else if (collide("asteroid", this.x, this.y) != null && isHeavyLaser) {
if (this.moveSpeed > 5)
this.moveSpeed -= 2;
}
if (timer < 0 || this.y < 200) {
graphic = laser2;
}
if (this.y < 0) {
this.scene.remove(this);
}
}
private var laser:Array<Array<String>> = [
[
"graphics/laserGreen04.png",
"graphics/laserGreen12.png"
],
[
"graphics/laserBlue02.png",
"graphics/laserBlue06.png"
]
];
private var heavy_laser:Array<Array<String>> = [
[
"graphics/laserGreen06.png",
"graphics/laserGreen10.png"
],
[
"graphics/laserBlue15.png",
"graphics/laserBlue16.png"
]
];
private var laser1:Image;
private var laser2:Image;
private var isHeavyLaser:Bool = false;
private var moveSpeed:Float = 20;
public var which:Int;
private var timer:Float = .5;
}