Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package;
- import flixel.FlxG;
- import flixel.FlxSprite;
- import flixel.FlxState;
- import flixel.util.FlxPoint;
- import flixel.util.FlxColor;
- import flixel.util.FlxSpriteUtil;
- import flixel.group.FlxGroup;
- import flash.display.BlendMode;
- class Darkness extends FlxSprite
- {
- public var ambience:Int = 0x222222;
- public function new()
- {
- super(0, 0);
- makeGraphic(FlxG.width, FlxG.height, ambience);
- scrollFactor.x = 0;
- scrollFactor.y = 0;
- blend = BlendMode.MULTIPLY;
- }
- override public function update()
- {
- super.update();
- }
- }
- class Light extends FlxSprite
- {
- private var darkness:Darkness;
- public function new(X:Float=0, Y:Float=0, Darkness:Darkness)
- {
- super(X, Y);
- blend = BlendMode.ADD;
- darkness = Darkness;
- }
- override public function draw()
- {
- if (isOnScreen() && visible) {
- var screenXY:FlxPoint = getScreenXY();
- darkness.stamp(this, Std.int(screenXY.x), Std.int(screenXY.y));
- }
- }
- }
- class TestState extends FlxState
- {
- private var darkness:Darkness;
- private var lights:FlxGroup;
- override public function create():Void
- {
- super.create();
- var background = new FlxSprite(0, 0).loadGraphic(AssetPaths.background__png, false, 320, 240);
- add(background);
- darkness = new Darkness();
- lights = new FlxGroup();
- var redLight = new Light(75+25, 75+25, darkness);
- redLight.makeGraphic(100, 100, FlxColor.RED);
- lights.add(redLight);
- var greenLight = new Light(100+25, 50+25, darkness);
- greenLight.makeGraphic(100, 100, FlxColor.GREEN);
- lights.add(greenLight);
- var blueLight = new Light(50+25, 100+25, darkness);
- blueLight.makeGraphic(100, 100, FlxColor.BLUE);
- lights.add(blueLight);
- add(lights);
- add(darkness);
- }
- override public function destroy():Void
- {
- super.destroy();
- darkness = null;
- lights = null;
- }
- override public function update():Void
- {
- super.update();
- FlxSpriteUtil.drawRect(darkness, 0, 0, FlxG.width, FlxG.height, 0xff000000 | darkness.ambience);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment