Funkin/source/TankmenBG.hx

91 lines
1.9 KiB
Haxe
Raw Normal View History

2021-03-16 01:51:23 -04:00
package;
import flixel.FlxG;
import flixel.FlxSprite;
2021-03-17 05:20:25 -04:00
import haxe.display.Display.Package;
2021-03-16 01:51:23 -04:00
class TankmenBG extends FlxSprite
{
2021-03-30 16:58:05 -04:00
public static var animationNotes:Array<Dynamic> = [];
2021-03-17 05:20:25 -04:00
public var strumTime:Float = 0;
public var goingRight:Bool = false;
public var tankSpeed:Float = 0.7;
public var endingOffset:Float;
2021-03-30 16:58:05 -04:00
public function new(x:Float, y:Float, isGoingRight:Bool)
2021-03-17 05:20:25 -04:00
{
super(x, y);
// makeGraphic(200, 200);
frames = Paths.getSparrowAtlas('tankmanKilled1');
antialiasing = true;
animation.addByPrefix('run', 'tankman running', 24, true);
2021-04-09 11:38:09 -04:00
animation.addByPrefix('shot', 'John Shot ' + FlxG.random.int(1, 2), 24, false);
2021-03-17 05:20:25 -04:00
animation.play('run');
2021-04-01 19:39:03 -04:00
animation.curAnim.curFrame = FlxG.random.int(0, animation.curAnim.numFrames - 1);
2021-03-17 05:20:25 -04:00
2021-04-09 22:49:25 -04:00
updateHitbox();
setGraphicSize(Std.int(width * 0.8));
updateHitbox();
2021-04-10 01:49:57 -04:00
}
2021-04-09 22:49:25 -04:00
2021-04-10 01:49:57 -04:00
public function resetShit(x:Float, y:Float, isGoingRight:Bool)
{
setPosition(x, y);
goingRight = isGoingRight;
endingOffset = FlxG.random.float(50, 200);
2021-03-30 16:58:05 -04:00
tankSpeed = FlxG.random.float(0.6, 1);
2021-03-16 01:51:23 -04:00
2021-03-17 05:20:25 -04:00
if (goingRight)
flipX = true;
}
2021-03-16 01:51:23 -04:00
2021-03-17 05:20:25 -04:00
override function update(elapsed:Float)
{
super.update(elapsed);
2021-03-16 01:51:23 -04:00
2021-04-18 16:54:21 -04:00
if (x >= FlxG.width * 1.2 || x <= FlxG.width * -0.5)
visible = false;
else
visible = true;
2021-03-17 05:20:25 -04:00
if (animation.curAnim.name == 'run')
{
var endDirection:Float = (FlxG.width * 0.74) + endingOffset;
2021-03-16 01:51:23 -04:00
2021-03-17 05:20:25 -04:00
if (goingRight)
{
endDirection = (FlxG.width * 0.02) - endingOffset;
2021-03-16 01:51:23 -04:00
2021-03-17 05:20:25 -04:00
x = (endDirection + (Conductor.songPosition - strumTime) * tankSpeed);
}
else
{
x = (endDirection - (Conductor.songPosition - strumTime) * tankSpeed);
}
}
2021-03-16 01:51:23 -04:00
2021-03-17 05:20:25 -04:00
if (Conductor.songPosition > strumTime)
{
// kill();
animation.play('shot');
2021-03-16 01:51:23 -04:00
2021-03-17 05:20:25 -04:00
if (goingRight)
{
offset.y = 200;
offset.x = 300;
}
}
2021-03-16 01:51:23 -04:00
2021-03-17 05:20:25 -04:00
if (animation.curAnim.name == 'shot' && animation.curAnim.curFrame >= animation.curAnim.frames.length - 1)
{
kill();
}
}
}