Advertisement
Guest User

Untitled

a guest
May 18th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Haxe 2.97 KB | None | 0 0
  1. package;
  2.  
  3. import flixel.FlxG;
  4. import flixel.FlxSprite;
  5. import flixel.FlxState;
  6. import flixel.group.FlxSpriteGroup;
  7. import flixel.util.FlxColor;
  8. import flixel.util.FlxSignal;
  9.  
  10. class PlayState extends FlxState
  11. {
  12.     var signal:FlxSignal;
  13.     var gameStart = false;
  14.     var wallGroup:FlxSpriteGroup;
  15.     var paddle:FlxSprite;
  16.     var ball:FlxSprite;
  17.  
  18.     var lives = 3;
  19.  
  20.     override public function create():Void
  21.     {
  22.         super.create();
  23.        
  24.         createWalls();
  25.         createPaddle();
  26.         createBall();
  27.         createBricks();
  28.         addSignals();
  29.     }
  30.  
  31.     function createWalls()
  32.     {
  33.         wallGroup = new FlxSpriteGroup(0, 0, 4);
  34.  
  35.         var wall_up = new FlxSprite();
  36.         wall_up.makeGraphic(FlxG.width, 30, FlxColor.TRANSPARENT);
  37.         wall_up.setPosition(0, -wall_up.height);
  38.         wallGroup.add(wall_up);
  39.  
  40.         var wall_down = new FlxSprite();
  41.         wall_down.loadGraphicFromSprite(wall_up);
  42.         wall_down.setPosition(0, FlxG.height);
  43.         wall_down.ID = 2;
  44.         wallGroup.add(wall_down);
  45.  
  46.         var wall_left = new FlxSprite();
  47.         wall_left.makeGraphic(30, FlxG.height);
  48.         wall_left.setPosition(-wall_left.width, 0);
  49.         wallGroup.add(wall_left);
  50.  
  51.         var wall_right = new FlxSprite();
  52.         wall_right.loadGraphicFromSprite(wall_left);
  53.         wall_right.setPosition(FlxG.width, 0);
  54.         wallGroup.add(wall_right);
  55.  
  56.         for (wall in wallGroup)
  57.         {
  58.             wall.immovable = true;
  59.         }
  60.  
  61.         add(wallGroup);
  62.     }
  63.  
  64.     function addSignals()
  65.     {
  66.         signal = new FlxSignal();
  67.         signal.add(startGame);
  68.         signal.dispatch();
  69.     }
  70.  
  71.     function startGame()
  72.     {
  73.         var randomSpeed = FlxG.random.int(100, 300);
  74.         var direction_X = FlxG.random.bool(50) ? randomSpeed : -randomSpeed;
  75.         var direction_Y = FlxG.random.bool(50) ? randomSpeed : -randomSpeed;
  76.         ball.screenCenter();
  77.         ball.velocity.set(direction_X, direction_Y);
  78.     }
  79.  
  80.     function createPaddle()
  81.     {
  82.         paddle = new FlxSprite();
  83.         paddle.makeGraphic(140, 8, FlxColor.YELLOW);
  84.         paddle.setPosition(10, 460);
  85.         paddle.immovable = true;
  86.         add(paddle);
  87.     }
  88.  
  89.     function createBall()
  90.     {
  91.         ball = new FlxSprite();
  92.         ball.makeGraphic(15, 15, FlxColor.YELLOW);
  93.         ball.screenCenter();
  94.         ball.elasticity = 1.0;
  95.         add(ball);
  96.     }
  97.  
  98.     function createBricks()
  99.     {
  100.        
  101.     }
  102.  
  103.     override public function update(elapsed:Float):Void
  104.     {
  105.         handleMovement();
  106.  
  107.         super.update(elapsed);
  108.  
  109.         FlxG.collide(ball, wallGroup, checkLoss);
  110.         FlxG.collide(ball, paddle);
  111.     }
  112.  
  113.     function checkLoss(obj1:FlxSprite, obj2:FlxSprite)
  114.     {
  115.         trace("hit a wall");
  116.         if (obj2.ID == 2 || obj1.ID == 2)
  117.         {
  118.             trace("HIT LOSING WALL");
  119.             lives--;
  120.             startGame();
  121.  
  122.             if (lives <= 0)
  123.             {
  124.                 trace("congrats you're a failure");
  125.                 FlxG.resetState();
  126.             }
  127.         }
  128.     }
  129.  
  130.     function handleMovement()
  131.     {
  132.         var left = FlxG.keys.anyPressed([A, LEFT]);
  133.         var right = FlxG.keys.anyPressed([D, RIGHT]);
  134.  
  135.         var speed = 250;
  136.        
  137.         if (left && !right)
  138.             paddle.velocity.set(-speed, 0);
  139.         if (right && !left)
  140.             paddle.velocity.set(speed, 0);
  141.         if (!left && !right || left && right)
  142.         {
  143.             if (paddle.velocity.x != 0)
  144.                 paddle.velocity.set(0, 0);
  145.         }
  146.     }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement