Advertisement
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.group.FlxSpriteGroup;
- import flixel.util.FlxColor;
- import flixel.util.FlxSignal;
- class PlayState extends FlxState
- {
- var signal:FlxSignal;
- var gameStart = false;
- var wallGroup:FlxSpriteGroup;
- var paddle:FlxSprite;
- var ball:FlxSprite;
- var lives = 3;
- override public function create():Void
- {
- super.create();
- createWalls();
- createPaddle();
- createBall();
- createBricks();
- addSignals();
- }
- function createWalls()
- {
- wallGroup = new FlxSpriteGroup(0, 0, 4);
- var wall_up = new FlxSprite();
- wall_up.makeGraphic(FlxG.width, 30, FlxColor.TRANSPARENT);
- wall_up.setPosition(0, -wall_up.height);
- wallGroup.add(wall_up);
- var wall_down = new FlxSprite();
- wall_down.loadGraphicFromSprite(wall_up);
- wall_down.setPosition(0, FlxG.height);
- wall_down.ID = 2;
- wallGroup.add(wall_down);
- var wall_left = new FlxSprite();
- wall_left.makeGraphic(30, FlxG.height);
- wall_left.setPosition(-wall_left.width, 0);
- wallGroup.add(wall_left);
- var wall_right = new FlxSprite();
- wall_right.loadGraphicFromSprite(wall_left);
- wall_right.setPosition(FlxG.width, 0);
- wallGroup.add(wall_right);
- for (wall in wallGroup)
- {
- wall.immovable = true;
- }
- add(wallGroup);
- }
- function addSignals()
- {
- signal = new FlxSignal();
- signal.add(startGame);
- signal.dispatch();
- }
- function startGame()
- {
- var randomSpeed = FlxG.random.int(100, 300);
- var direction_X = FlxG.random.bool(50) ? randomSpeed : -randomSpeed;
- var direction_Y = FlxG.random.bool(50) ? randomSpeed : -randomSpeed;
- ball.screenCenter();
- ball.velocity.set(direction_X, direction_Y);
- }
- function createPaddle()
- {
- paddle = new FlxSprite();
- paddle.makeGraphic(140, 8, FlxColor.YELLOW);
- paddle.setPosition(10, 460);
- paddle.immovable = true;
- add(paddle);
- }
- function createBall()
- {
- ball = new FlxSprite();
- ball.makeGraphic(15, 15, FlxColor.YELLOW);
- ball.screenCenter();
- ball.elasticity = 1.0;
- add(ball);
- }
- function createBricks()
- {
- }
- override public function update(elapsed:Float):Void
- {
- handleMovement();
- super.update(elapsed);
- FlxG.collide(ball, wallGroup, checkLoss);
- FlxG.collide(ball, paddle);
- }
- function checkLoss(obj1:FlxSprite, obj2:FlxSprite)
- {
- trace("hit a wall");
- if (obj2.ID == 2 || obj1.ID == 2)
- {
- trace("HIT LOSING WALL");
- lives--;
- startGame();
- if (lives <= 0)
- {
- trace("congrats you're a failure");
- FlxG.resetState();
- }
- }
- }
- function handleMovement()
- {
- var left = FlxG.keys.anyPressed([A, LEFT]);
- var right = FlxG.keys.anyPressed([D, RIGHT]);
- var speed = 250;
- if (left && !right)
- paddle.velocity.set(-speed, 0);
- if (right && !left)
- paddle.velocity.set(speed, 0);
- if (!left && !right || left && right)
- {
- if (paddle.velocity.x != 0)
- paddle.velocity.set(0, 0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement