Guest User

Untitled

a guest
Oct 11th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package
  2. {
  3.     import Entities.Bricks;
  4.     import Entities.Bullet;
  5.     import Entities.Framework;
  6.     import Entities.Racket;
  7.     import Entities.Score;
  8.     import flash.display.Sprite;
  9.     import flash.events.Event;
  10.     import flash.display.Graphics;
  11.     import flash.events.FocusEvent;
  12.     import flash.events.KeyboardEvent;
  13.     import flash.ui.Keyboard;
  14.     import Math;
  15.    
  16.     /**
  17.      * ...
  18.      * @author Jonas Jaszkowic
  19.      */
  20.    
  21.     public class Main extends Sprite
  22.     {
  23.         //vars for entities
  24.         private var bullet:Bullet;
  25.         private var framework:Framework;
  26.         private var racket:Racket;
  27.         private var racket_speed:int;
  28.         private var score:Score;
  29.        
  30.         private var left_down:Boolean;
  31.         private var right_down:Boolean;
  32.        
  33.         private var bs:Array;
  34.        
  35.        
  36.         public function Main():void
  37.         {
  38.             if (stage) init();
  39.             else addEventListener(Event.ADDED_TO_STAGE, init);
  40.         }
  41.        
  42.         private function init(e:Event = null):void
  43.         {
  44.             removeEventListener(Event.ADDED_TO_STAGE, init);
  45.             // entry point
  46.            
  47.             //add bullet to stage
  48.             bullet = new Bullet(stage.stageWidth/2, stage.stageHeight/2, 6, 1, 5);
  49.             addChild(bullet.b);
  50.            
  51.             //draw the framework
  52.             framework = new Framework(stage.stageWidth, stage.stageHeight);
  53.             addChild(framework.f);
  54.            
  55.             //add racket to stage
  56.             racket = new Racket(stage.stageWidth / 2, stage.stageHeight);
  57.             racket_speed = 8;
  58.             addChild(racket.r);
  59.  
  60.             //Add score to stage
  61.             score = new Score(0);
  62.             addChild(score.TF_score);
  63.            
  64.             //add bricks to stage and create array containing the bricks
  65.             var i:int; var m:int;
  66.             bs = new Array;
  67.             for (m = 20; m <= 120; m += 25)
  68.             {
  69.                 for (i = 0; i < 12; i++)
  70.                 {
  71.                     var brick:Bricks;
  72.                     brick = new Bricks(i + 28 + (i * 70), m);
  73.                     addChild(brick.br);
  74.                     bs.push(brick);
  75.                 }
  76.            
  77.             }
  78.            
  79.             //add the EventListeners
  80.             stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownListener);
  81.             stage.addEventListener(KeyboardEvent.KEY_UP, keyUpListener);
  82.             stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
  83.        
  84.         }
  85.        
  86.  
  87.         public function keyDownListener(e:KeyboardEvent):void
  88.         {
  89.             if (e.keyCode == Keyboard.LEFT) left_down = true;
  90.             if (e.keyCode == Keyboard.RIGHT) right_down = true;
  91.         }
  92.        
  93.         public function keyUpListener(e:KeyboardEvent):void
  94.         {
  95.             if (e.keyCode == Keyboard.LEFT) left_down = false;
  96.             if (e.keyCode == Keyboard.RIGHT) right_down = false;
  97.         }
  98.  
  99.         public function onEnterFrame(e:Event):void
  100.         {
  101.             //move the bullet and check for collision with racket
  102.             bullet.move_bullet(bullet, stage.stageWidth, stage.stageHeight, racket, right_down, left_down);
  103.            
  104.             //check for collision of bricks with bullet
  105.             var x:int; var y:int = 60;
  106.             for (x = 0; x < bs.length; x++)
  107.             {
  108.                
  109.                 if (bs[x].collision_sides(bullet, bs[x]))
  110.                 {
  111.                     bullet.speed_x *= -1;
  112.                     removeChild(bs[x].br);
  113.                     bs.splice(x, 1); //delete brick from array     
  114.                    
  115.                     //update score
  116.                     score.points += 10;
  117.                     score.update_score();
  118.                 }
  119.                
  120.                
  121.                 if (bs[x].collision_topdown(bullet, bs[x]))
  122.                 {
  123.                     bullet.speed_y *= -1;
  124.                     removeChild(bs[x].br);
  125.                     bs.splice(x, 1); //delete brick from array     
  126.                    
  127.                     //update score
  128.                     score.points += 10;
  129.                     score.update_score();
  130.                 }
  131.                
  132.            
  133.             }
  134.            
  135.             //move the racket if key is down
  136.             if (left_down)
  137.             {
  138.                 racket.racket_move(racket, -racket_speed, stage.stageWidth);
  139.             }
  140.            
  141.             if (right_down)
  142.             {
  143.                 racket.racket_move(racket, racket_speed, stage.stageWidth);
  144.             }
  145.            
  146.             racket_speed = Math.abs(bullet.speed_x) + Math.abs(bullet.speed_y) - Math.sqrt(Math.abs(bullet.speed_y)) +1;
  147.            
  148.         }
  149.        
  150.     }
  151.    
  152. }
  153.  
  154.  
  155. package Entities
  156. {
  157.     import flash.display.Sprite;
  158.     /**
  159.      * ...
  160.      * @author Jonas Jaszkowic
  161.      */
  162.     public class Racket
  163.     {
  164.         public var x:int;
  165.        
  166.         public var r:Sprite;
  167.        
  168.         //construct the racket
  169.         public function Racket(x:int, height:int)
  170.         {
  171.             r = new Sprite();
  172.             r.graphics.beginFill(0x708090);
  173.                 r.graphics.drawRect(x, height-20, 60, 8);
  174.             r.graphics.endFill();
  175.            
  176.             this.x = x;
  177.         }
  178.        
  179.         public function racket_move(r:Racket, speed:int, width:int):void
  180.         {
  181.                 if (!(r.x + speed >= width - 70 || r.x + speed <= 10))
  182.                 {
  183.                     r.r.x += speed
  184.                     r.x += speed;
  185.                 }
  186.         }
  187.        
  188.     }
  189.  
  190. }
  191.  
  192. package Entities
  193. {
  194.     import flash.display.Sprite;
  195.     import flash.display.Graphics;
  196.     /**
  197.      * ...
  198.      * @author Jonas Jaszkowic
  199.      */
  200.    
  201.     public class Bullet
  202.     {
  203.         public var x:int;
  204.         public var y:int;
  205.         public var radius:int;
  206.        
  207.         public var speed_x:int;
  208.         public var speed_y:int;
  209.        
  210.         public var b:Sprite;
  211.        
  212.         //constructor for the bullet
  213.         public function Bullet(x:int, y:int, radius:int, speed_x:int, speed_y:int)
  214.         {
  215.             b = new Sprite();
  216.             b.graphics.beginFill(0xff0000);
  217.                 b.graphics.drawCircle(x, y, radius);
  218.             b.graphics.endFill();
  219.            
  220.             this.x = x;
  221.             this.y = y;
  222.             this.speed_x = speed_x;
  223.             this.speed_y = speed_y;
  224.             this.radius = radius;
  225.         }
  226.        
  227.         //move the bullet and check for collisions
  228.         public function move_bullet(b:Bullet, width:int, height:int, rk:Racket, left_down:Boolean, right_down:Boolean):void
  229.         {
  230.             b.b.x += b.speed_x;
  231.             b.x += b.speed_x;
  232.            
  233.             b.b.y += b.speed_y;
  234.             b.y += b.speed_y;
  235.            
  236.             if (b.x >= width-13 || b.x <= 13)
  237.             {
  238.                 b.speed_x *= -1;
  239.             }
  240.            
  241.             if (b.y >= height-13 || b.y <= 13)
  242.             {
  243.                 b.speed_y *= -1;
  244.             }
  245.            
  246.             //change speed of bullet when collision with moving racket
  247.             if (b.collision_racket(b, rk, height))
  248.             {
  249.                 b.speed_y *= -1;
  250.                 if (right_down) b.speed_x -= 3;
  251.                 if (left_down) b.speed_x += 3;
  252.             }
  253.         }
  254.        
  255.         //check for collision
  256.         public function collision_racket(b:Bullet, r:Racket, height:int):Boolean
  257.         {
  258.            
  259.             return (b.y >= height-23 && (b.x >= r.x && b.x <= r.x + 60));
  260.            
  261.         }
  262.     }
  263.  
  264. }
  265.  
  266.  
  267.  
  268. package Entities
  269. {
  270.     import flash.display.Sprite;
  271.     import flash.display.Graphics;
  272.     /**
  273.      * ...
  274.      * @author Jonas Jaszkowic
  275.      */
  276.    
  277.     public class Framework
  278.     {
  279.         public var f:Sprite;
  280.        
  281.         //construct the black framework
  282.         public function Framework(width:int, height:int)
  283.         {
  284.             f = new Sprite();
  285.             f.graphics.beginFill(0x000000);
  286.                 f.graphics.drawRect(0, 0, 10, height);
  287.                 f.graphics.drawRect(width - 10, 0, 10, height);
  288.                 f.graphics.drawRect(10, 0, width - 20, 10);
  289.                 f.graphics.drawRect(10, height - 10, width - 20, 10);
  290.             f.graphics.endFill();
  291.         }
  292.        
  293.     }
  294.  
  295. }
  296.  
  297.  
  298. package Entities
  299. {
  300.     import flash.display.Sprite;
  301.     import flash.display.Graphics;
  302.     /**
  303.      * ...
  304.      * @author Jonas Jaszkowic
  305.      */
  306.     public class Bricks
  307.     {
  308.         public var x:int;
  309.         public var y:int;
  310.        
  311.         public var br:Sprite;
  312.        
  313.         //constructor for one brick
  314.         public function Bricks(x:int, y:int)
  315.         {
  316.             br = new Sprite();
  317.             br.graphics.beginFill(0x00ff00);
  318.                 br.graphics.drawRect(x, y, 60, 20);
  319.             br.graphics.endFill();
  320.            
  321.             this.x = x;
  322.             this.y = y;        
  323.         }
  324.        
  325.        
  326.         public function collision_sides(b:Bullet, br:Bricks):Boolean
  327.         {
  328.             return ((b.x == br.x || b.x == br.x+60) && (b.y >= br.y && b.y <= br.y +20));
  329.         }
  330.        
  331.         public function collision_topdown(b:Bullet, br:Bricks):Boolean
  332.         {
  333.             return ((b.x > br.x && b.x < br.x +60)&&(b.y >= br.y && b.y <= br.y +20));
  334.         }
  335.  
  336.        
  337.        
  338.     }
  339.  
  340. }
  341.  
  342.  
  343.  
  344. package Entities
  345. {
  346.     import flash.display.Sprite;
  347.     import flash.events.Event;
  348.     import flash.text.TextField;
  349.     import flash.text.TextFieldAutoSize;
  350.     import flash.text.TextFormat;
  351.     /**
  352.      * ...
  353.      * @author Jonas Jaszkowic
  354.      */
  355.     public class Score
  356.     {
  357.         public var points:int;
  358.         public var TF_score:TextField;
  359.        
  360.         public function Score(points:int)
  361.         {
  362.             this.points = points;
  363.             TF_score = new TextField;
  364.             TF_score.text = String(this.points);
  365.             TF_score.x = 12;
  366.             TF_score.y = 370;
  367.         }
  368.        
  369.         public function update_score():void
  370.         {
  371.             TF_score.text = String(this.points);
  372.         }
  373.        
  374.     }
  375.  
  376. }
Add Comment
Please, Sign In to add comment