Ertyui

Canvas.as

Dec 30th, 2011
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.drift
  2. {
  3.     import flash.text.TextFieldType;
  4.     import flash.display.Stage;
  5.     import flash.text.TextField;
  6.    
  7.     import flash.accessibility.Accessibility;
  8.     import flash.events.KeyboardEvent;
  9.     import flash.display.Shape;
  10.     import flash.display.StageAlign;
  11.     import flash.display.StageScaleMode;
  12.     import flash.events.Event;
  13.     import flash.display.Sprite;
  14.  
  15.     public class Canvas extends Sprite
  16.     {
  17.         private var car:Car = new Car();
  18.        
  19.         private var left:Boolean = false;
  20.         private var right:Boolean = false;
  21.         private var up:Boolean = false;
  22.         private var down:Boolean = false;
  23.         private var test:int = 0;
  24.        
  25.        
  26.        
  27.         private var powerBox:TextField = new TextField();
  28.         private var dragBox:TextField = new TextField();
  29.         private var turnspeedBox:TextField = new TextField();
  30.         private var angulardragBox:TextField = new TextField();
  31.        
  32.         private var powerLabel:TextField = new TextField();
  33.         private var dragLabel:TextField = new TextField();
  34.         private var turnspeedLabel:TextField = new TextField();
  35.         private var angulardragLabel:TextField = new TextField();
  36.        
  37.         public function Canvas(stag:Stage)
  38.         {
  39.             //create inputfields
  40.             createTextBoxes();
  41.            
  42.                    
  43.             //creating car
  44.             addChild(car);
  45.             car.x = 200;
  46.             car.y = 200;
  47.            
  48.             //add eventlisteners
  49.             this.addEventListener(Event.ENTER_FRAME,lp);
  50.             stag.addEventListener(KeyboardEvent.KEY_DOWN, kdo);
  51.             stag.addEventListener(KeyboardEvent.KEY_UP, kup);
  52.         }
  53.        
  54.         private function lp(e:Event):void
  55.         {
  56.            
  57.             //updating car values
  58.             car.power = Number(powerBox.text);
  59.             car.drag = Number(dragBox.text);
  60.             car.turnSpeed = Number(turnspeedBox.text);
  61.             car.angularDrag = Number(angulardragBox.text);
  62.            
  63.            
  64.                 //add velocity to car
  65.                 car.x += car.velocityX;
  66.                 car.y += car.velocityY;
  67.                
  68.                 //multiply velocity with drag
  69.                 car.velocityX *= car.drag;
  70.                 car.velocityY *= car.drag;
  71.                
  72.                 //add turningvelocity to car's rotation
  73.                 car.angle += car.angularVelocity;
  74.                
  75.                 //multiply turningvelocity with turningdrag
  76.                 car.angularVelocity *= car.angularDrag;
  77.                
  78.                 //to accelerate
  79.                 if(up){
  80.                 car.velocityX += Math.sin(car.angle) * car.power;
  81.                 car.velocityY -= Math.cos(car.angle) * car.power;
  82.                 }
  83.                
  84.                 //to steer left
  85.                 if(left){
  86.                 car.angularVelocity -= car.turnSpeed;
  87.                 }
  88.                
  89.                 //to steer right
  90.                 if(right){
  91.                 car.angularVelocity += car.turnSpeed
  92.                 }
  93.                
  94.                
  95.                 //add rotation to the car from radian to degree
  96.                 car.rotation = car.angle*(180/Math.PI);
  97.            
  98.            
  99.    
  100.            
  101.         }
  102.         private function kdo(e:KeyboardEvent):void
  103.         {
  104.             switch(e.keyCode){
  105.                 case 37:
  106.                 left = true;
  107.                 break;
  108.                 case 38:
  109.                 up = true;
  110.                 break;
  111.                 case 39:
  112.                 right = true;
  113.                 break;
  114.                 case 40:
  115.                 down = true;
  116.                 break;             
  117.             }
  118.         }
  119.         private function kup(e:KeyboardEvent):void
  120.         {
  121.             switch(e.keyCode){
  122.                 case 37:
  123.                 left = false;
  124.                 break;
  125.                 case 38:
  126.                 up = false;
  127.                 break;
  128.                 case 39:
  129.                 right = false;
  130.                 break;
  131.                 case 40:
  132.                 down = false;
  133.                 break;             
  134.             }
  135.         }
  136.         private function createTextBoxes():void
  137.         {
  138.             //creating textboxes
  139.             addChild(powerBox);
  140.             powerBox.type = TextFieldType.INPUT;
  141.             powerBox.x = 200;
  142.             powerBox.y = 200;
  143.             powerBox.height = 20;
  144.             powerBox.border = true;
  145.             powerBox.text = String(car.power);
  146.             //label
  147.             addChild(powerLabel);
  148.             powerLabel.text = "Power";
  149.             powerLabel.x = 120;
  150.             powerLabel.y = 200;        
  151.            
  152.             addChild(dragBox);
  153.             dragBox.type = TextFieldType.INPUT;
  154.             dragBox.x = 200;
  155.             dragBox.y = 240;
  156.             dragBox.height = 20;
  157.             dragBox.border = true;
  158.             dragBox.text = String(car.drag);
  159.             //label
  160.             addChild(dragLabel);
  161.             dragLabel.text = "Drag";
  162.             dragLabel.x = 120;
  163.             dragLabel.y = 240;         
  164.            
  165.             addChild(turnspeedBox);
  166.             turnspeedBox.type = TextFieldType.INPUT;
  167.             turnspeedBox.x = 200;
  168.             turnspeedBox.y = 280;
  169.             turnspeedBox.height = 20;
  170.             turnspeedBox.text = String(car.turnSpeed);
  171.             turnspeedBox.border = true;
  172.             //label
  173.             addChild(turnspeedLabel);
  174.             turnspeedLabel.text = "TurnSpeed";
  175.             turnspeedLabel.x = 120;
  176.             turnspeedLabel.y = 280;        
  177.                        
  178.             addChild(angulardragBox);
  179.             angulardragBox.type = TextFieldType.INPUT;
  180.             angulardragBox.x = 200;
  181.             angulardragBox.y = 320;
  182.             angulardragBox.height = 20;
  183.             angulardragBox.text = String(car.angularDrag);
  184.             angulardragBox.border = true;
  185.             //label
  186.             addChild(angulardragLabel);
  187.             angulardragLabel.text = "AngularDrag";
  188.             angulardragLabel.x = 120;
  189.             angulardragLabel.y = 320;
  190.         }
  191.        
  192.     }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment