Advertisement
Guest User

Untitled

a guest
May 18th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Haxe 3.51 KB | None | 0 0
  1. package;
  2.  
  3. import flixel.FlxG;
  4. import flixel.FlxSprite;
  5. import flixel.text.FlxText;
  6. import flixel.FlxState;
  7. import flixel.util.FlxColor;
  8. import flixel.group.FlxGroup;
  9. import flixel.FlxObject;
  10. import flixel.math.FlxMath;
  11.  
  12. class PlayState extends FlxState
  13. {
  14.     var collisionGroup:FlxTypedGroup<FlxSprite>;
  15.     var paddleL:FlxSprite;
  16.     var paddleR:FlxSprite;
  17.    
  18.     var ball:FlxSprite;
  19.  
  20.     var scoreL:Int;
  21.     var scoreR:Int;
  22.  
  23.     var scoreTxt:FlxText;
  24.  
  25.     override public function create():Void
  26.     {
  27.         super.create();
  28.  
  29.         displayText();
  30.         initCollisionGroup();
  31.     }
  32.  
  33.     function initCollisionGroup()
  34.     {
  35.         collisionGroup = new FlxTypedGroup<FlxSprite>();
  36.  
  37.         addPaddles();
  38.         addWalls();
  39.         addBall();
  40.  
  41.         add(collisionGroup);
  42.     }
  43.  
  44.     function addPaddles()
  45.     {
  46.         paddleL = new FlxSprite();
  47.         paddleL.makeGraphic(12, 77, FlxColor.MAGENTA);
  48.         paddleL.setPosition(12, 28);
  49.         paddleL.maxVelocity.y = 400;
  50.         paddleL.drag.y = paddleL.maxVelocity.y * 4;
  51.         paddleL.immovable = true;
  52.         add(paddleL);
  53.  
  54.         paddleR = new FlxSprite();
  55.         paddleR.makeGraphic(12, 77, FlxColor.MAGENTA);
  56.         paddleR.setPosition(615, 28);
  57.         paddleR.maxVelocity.y = 400;
  58.         paddleR.drag.y = paddleR.maxVelocity.y * 4;
  59.         paddleR.immovable = true;
  60.         add(paddleR);
  61.     }
  62.  
  63.     function addWalls()
  64.     {
  65.         var upWall = new FlxSprite();
  66.         upWall.makeGraphic(FlxG.width, 30);
  67.         upWall.setPosition(0, -upWall.height);
  68.         upWall.immovable = true;
  69.         collisionGroup.add(upWall);
  70.  
  71.         var downWall = new FlxSprite();
  72.         downWall.makeGraphic(FlxG.width, 30);
  73.         downWall.setPosition(0, FlxG.height);
  74.         downWall.immovable = true;
  75.         collisionGroup.add(downWall);
  76.     }
  77.  
  78.     function addBall()
  79.     {
  80.         ball = new FlxSprite();
  81.         ball.loadGraphic(AssetPaths.pongball__png, false);
  82.         ball.screenCenter();
  83.         ball.elasticity = 1.0;
  84.         ball.velocity.set(FlxG.random.int(-250, 250), FlxG.random.int(80, 140));
  85.         collisionGroup.add(ball);
  86.     }
  87.  
  88.     function displayText()
  89.     {
  90.         scoreTxt = new FlxText();
  91.         scoreTxt.text = Std.string(scoreR + " - " + scoreL);
  92.         scoreTxt.size = 70;
  93.         scoreTxt.alpha = 0.2;
  94.         scoreTxt.color = FlxColor.CYAN;
  95.         scoreTxt.screenCenter();
  96.         add(scoreTxt);
  97.     }
  98.  
  99.     override public function update(elapsed:Float):Void
  100.     {
  101.         handleMovement();
  102.         checkBall();
  103.  
  104.         super.update(elapsed);
  105.  
  106.         FlxG.collide(ball, paddleL);
  107.         FlxG.collide(ball, paddleR);
  108.         FlxG.collide(collisionGroup);
  109.  
  110.         if (scoreTxt.text != Std.string(scoreL + " - " + scoreR))
  111.         {
  112.             scoreTxt.text = Std.string(scoreL + " - " + scoreR);
  113.             scoreTxt.screenCenter();
  114.         }
  115.     }
  116.  
  117.     function collide(obj:FlxSprite, obj2:FlxSprite)
  118.     {
  119.         if (obj.elasticity == 1.0)
  120.         {
  121.             FlxObject.separate(obj, obj2);
  122.         }
  123.         else if (obj2.elasticity == 1.0)
  124.         {
  125.             FlxObject.separate(obj2, obj);
  126.         }
  127.     }
  128.  
  129.     function handleMovement()
  130.     {
  131.         paddleL.acceleration.y = paddleR.acceleration.y = 0;
  132.  
  133.         var speedMulti = 6;
  134.  
  135.         if (FlxG.keys.pressed.W)
  136.             paddleL.acceleration.y = -paddleL.maxVelocity.y * speedMulti;
  137.         if (FlxG.keys.pressed.S)
  138.             paddleL.acceleration.y = paddleL.maxVelocity.y * speedMulti;
  139.        
  140.         if (FlxG.keys.pressed.UP)
  141.             paddleR.acceleration.y = -paddleR.maxVelocity.y * speedMulti;
  142.         if (FlxG.keys.pressed.DOWN)
  143.             paddleR.acceleration.y = paddleR.maxVelocity.y * speedMulti;
  144.     }
  145.  
  146.     function checkBall()
  147.     {
  148.         if (ball.x <= 0)
  149.         {
  150.             scoreR++;
  151.             ball.screenCenter();
  152.             ball.velocity.set(FlxG.random.int(-250, 250), FlxG.random.int(80, 140));
  153.         }
  154.         else if (ball.x >= FlxG.width)
  155.         {
  156.             scoreL++;
  157.             ball.screenCenter();
  158.             ball.velocity.set(FlxG.random.int(-250, 250), FlxG.random.int(80, 140));
  159.         }
  160.     }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement