Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package;
- import flixel.FlxG;
- import flixel.FlxSprite;
- import flixel.text.FlxText;
- import flixel.FlxState;
- import flixel.util.FlxColor;
- import flixel.group.FlxGroup;
- import flixel.FlxObject;
- import flixel.math.FlxMath;
- class PlayState extends FlxState
- {
- var collisionGroup:FlxTypedGroup<FlxSprite>;
- var paddleL:FlxSprite;
- var paddleR:FlxSprite;
- var ball:FlxSprite;
- var scoreL:Int;
- var scoreR:Int;
- var scoreTxt:FlxText;
- override public function create():Void
- {
- super.create();
- displayText();
- initCollisionGroup();
- }
- function initCollisionGroup()
- {
- collisionGroup = new FlxTypedGroup<FlxSprite>();
- addPaddles();
- addWalls();
- addBall();
- add(collisionGroup);
- }
- function addPaddles()
- {
- paddleL = new FlxSprite();
- paddleL.makeGraphic(12, 77, FlxColor.MAGENTA);
- paddleL.setPosition(12, 28);
- paddleL.maxVelocity.y = 400;
- paddleL.drag.y = paddleL.maxVelocity.y * 4;
- paddleL.immovable = true;
- add(paddleL);
- paddleR = new FlxSprite();
- paddleR.makeGraphic(12, 77, FlxColor.MAGENTA);
- paddleR.setPosition(615, 28);
- paddleR.maxVelocity.y = 400;
- paddleR.drag.y = paddleR.maxVelocity.y * 4;
- paddleR.immovable = true;
- add(paddleR);
- }
- function addWalls()
- {
- var upWall = new FlxSprite();
- upWall.makeGraphic(FlxG.width, 30);
- upWall.setPosition(0, -upWall.height);
- upWall.immovable = true;
- collisionGroup.add(upWall);
- var downWall = new FlxSprite();
- downWall.makeGraphic(FlxG.width, 30);
- downWall.setPosition(0, FlxG.height);
- downWall.immovable = true;
- collisionGroup.add(downWall);
- }
- function addBall()
- {
- ball = new FlxSprite();
- ball.loadGraphic(AssetPaths.pongball__png, false);
- ball.screenCenter();
- ball.elasticity = 1.0;
- ball.velocity.set(FlxG.random.int(-250, 250), FlxG.random.int(80, 140));
- collisionGroup.add(ball);
- }
- function displayText()
- {
- scoreTxt = new FlxText();
- scoreTxt.text = Std.string(scoreR + " - " + scoreL);
- scoreTxt.size = 70;
- scoreTxt.alpha = 0.2;
- scoreTxt.color = FlxColor.CYAN;
- scoreTxt.screenCenter();
- add(scoreTxt);
- }
- override public function update(elapsed:Float):Void
- {
- handleMovement();
- checkBall();
- super.update(elapsed);
- FlxG.collide(ball, paddleL);
- FlxG.collide(ball, paddleR);
- FlxG.collide(collisionGroup);
- if (scoreTxt.text != Std.string(scoreL + " - " + scoreR))
- {
- scoreTxt.text = Std.string(scoreL + " - " + scoreR);
- scoreTxt.screenCenter();
- }
- }
- function collide(obj:FlxSprite, obj2:FlxSprite)
- {
- if (obj.elasticity == 1.0)
- {
- FlxObject.separate(obj, obj2);
- }
- else if (obj2.elasticity == 1.0)
- {
- FlxObject.separate(obj2, obj);
- }
- }
- function handleMovement()
- {
- paddleL.acceleration.y = paddleR.acceleration.y = 0;
- var speedMulti = 6;
- if (FlxG.keys.pressed.W)
- paddleL.acceleration.y = -paddleL.maxVelocity.y * speedMulti;
- if (FlxG.keys.pressed.S)
- paddleL.acceleration.y = paddleL.maxVelocity.y * speedMulti;
- if (FlxG.keys.pressed.UP)
- paddleR.acceleration.y = -paddleR.maxVelocity.y * speedMulti;
- if (FlxG.keys.pressed.DOWN)
- paddleR.acceleration.y = paddleR.maxVelocity.y * speedMulti;
- }
- function checkBall()
- {
- if (ball.x <= 0)
- {
- scoreR++;
- ball.screenCenter();
- ball.velocity.set(FlxG.random.int(-250, 250), FlxG.random.int(80, 140));
- }
- else if (ball.x >= FlxG.width)
- {
- scoreL++;
- ball.screenCenter();
- ball.velocity.set(FlxG.random.int(-250, 250), FlxG.random.int(80, 140));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement