Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.drift
- {
- import flash.text.TextFieldType;
- import flash.display.Stage;
- import flash.text.TextField;
- import flash.accessibility.Accessibility;
- import flash.events.KeyboardEvent;
- import flash.display.Shape;
- import flash.display.StageAlign;
- import flash.display.StageScaleMode;
- import flash.events.Event;
- import flash.display.Sprite;
- public class Canvas extends Sprite
- {
- private var car:Car = new Car();
- private var left:Boolean = false;
- private var right:Boolean = false;
- private var up:Boolean = false;
- private var down:Boolean = false;
- private var test:int = 0;
- private var powerBox:TextField = new TextField();
- private var dragBox:TextField = new TextField();
- private var turnspeedBox:TextField = new TextField();
- private var angulardragBox:TextField = new TextField();
- private var powerLabel:TextField = new TextField();
- private var dragLabel:TextField = new TextField();
- private var turnspeedLabel:TextField = new TextField();
- private var angulardragLabel:TextField = new TextField();
- public function Canvas(stag:Stage)
- {
- //create inputfields
- createTextBoxes();
- //creating car
- addChild(car);
- car.x = 200;
- car.y = 200;
- //add eventlisteners
- this.addEventListener(Event.ENTER_FRAME,lp);
- stag.addEventListener(KeyboardEvent.KEY_DOWN, kdo);
- stag.addEventListener(KeyboardEvent.KEY_UP, kup);
- }
- private function lp(e:Event):void
- {
- //updating car values
- car.power = Number(powerBox.text);
- car.drag = Number(dragBox.text);
- car.turnSpeed = Number(turnspeedBox.text);
- car.angularDrag = Number(angulardragBox.text);
- //add velocity to car
- car.x += car.velocityX;
- car.y += car.velocityY;
- //multiply velocity with drag
- car.velocityX *= car.drag;
- car.velocityY *= car.drag;
- //add turningvelocity to car's rotation
- car.angle += car.angularVelocity;
- //multiply turningvelocity with turningdrag
- car.angularVelocity *= car.angularDrag;
- //to accelerate
- if(up){
- car.velocityX += Math.sin(car.angle) * car.power;
- car.velocityY -= Math.cos(car.angle) * car.power;
- }
- //to steer left
- if(left){
- car.angularVelocity -= car.turnSpeed;
- }
- //to steer right
- if(right){
- car.angularVelocity += car.turnSpeed
- }
- //add rotation to the car from radian to degree
- car.rotation = car.angle*(180/Math.PI);
- }
- private function kdo(e:KeyboardEvent):void
- {
- switch(e.keyCode){
- case 37:
- left = true;
- break;
- case 38:
- up = true;
- break;
- case 39:
- right = true;
- break;
- case 40:
- down = true;
- break;
- }
- }
- private function kup(e:KeyboardEvent):void
- {
- switch(e.keyCode){
- case 37:
- left = false;
- break;
- case 38:
- up = false;
- break;
- case 39:
- right = false;
- break;
- case 40:
- down = false;
- break;
- }
- }
- private function createTextBoxes():void
- {
- //creating textboxes
- addChild(powerBox);
- powerBox.type = TextFieldType.INPUT;
- powerBox.x = 200;
- powerBox.y = 200;
- powerBox.height = 20;
- powerBox.border = true;
- powerBox.text = String(car.power);
- //label
- addChild(powerLabel);
- powerLabel.text = "Power";
- powerLabel.x = 120;
- powerLabel.y = 200;
- addChild(dragBox);
- dragBox.type = TextFieldType.INPUT;
- dragBox.x = 200;
- dragBox.y = 240;
- dragBox.height = 20;
- dragBox.border = true;
- dragBox.text = String(car.drag);
- //label
- addChild(dragLabel);
- dragLabel.text = "Drag";
- dragLabel.x = 120;
- dragLabel.y = 240;
- addChild(turnspeedBox);
- turnspeedBox.type = TextFieldType.INPUT;
- turnspeedBox.x = 200;
- turnspeedBox.y = 280;
- turnspeedBox.height = 20;
- turnspeedBox.text = String(car.turnSpeed);
- turnspeedBox.border = true;
- //label
- addChild(turnspeedLabel);
- turnspeedLabel.text = "TurnSpeed";
- turnspeedLabel.x = 120;
- turnspeedLabel.y = 280;
- addChild(angulardragBox);
- angulardragBox.type = TextFieldType.INPUT;
- angulardragBox.x = 200;
- angulardragBox.y = 320;
- angulardragBox.height = 20;
- angulardragBox.text = String(car.angularDrag);
- angulardragBox.border = true;
- //label
- addChild(angulardragLabel);
- angulardragLabel.text = "AngularDrag";
- angulardragLabel.x = 120;
- angulardragLabel.y = 320;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment