hoe reverse ik dit ding? (flash/as3)

Status
Niet open voor verdere reacties.

Example5

Terugkerende gebruiker
Lid geworden
9 mrt 2008
Berichten
2.172
beste...

ik ben bezig met wat tutorialtjes van flash door te kijken, en zelf een beetje een spel in elkaar te prutsen...

ik heb de onderstaande code (verkregen via een tutorial) enigszins aangepast... nu wil ik ook een reverse/achteruit functie toevoegen... maar ik snap eigenlijk niet echt hoe ik dat aanpak aangezien het vooruit bewegen ook al een redelijke puzzel is :S

hieronder de code, ik heb alvast een keypressdown gemaakt... (ff iets naar beneden scrollen)

Code:
var increment:Number = 0;	//amount the car moves each frame
var posNeg:Number = 1;
var acceleration:Number = .11;	//acceleration of the car, or the amount increment gets increased by.
var speed:Number = 0;	//the speed of the car that will be displayed on screen
var maxSpeed:Number = 50;	//The max speed the car can travel
var dog:Object = Dog1;
var carRotation:Number = dog.rotation;	//rotation of the car

//keyboard capture code start
var keyLeftPressed:Boolean;
var keyRightPressed:Boolean;
var keyUpPressed:Boolean;
var keyDownPressed:Boolean;
var spaceBarPressed:Boolean;
var key1Pressed:Boolean;
var key2Pressed:Boolean;

addEventListener(Event.ENTER_FRAME,onEnterFrameFunction);
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP,keyReleased);
//keyboard capture code end


function onEnterFrameFunction(event:Event) {
	//detecting speed
	speed = Math.round((increment)*5);
	spedometer.text = String(speed);
	
	if ((dog.rotation < 180)&&(dog.rotation >= 0)){
		carRotation = dog.rotation;
		posNeg = 1;
	}
	if ((dog.rotation < 0)&&(dog.rotation > -180)){
		carRotation = -1 * dog.rotation;
		posNeg = -1;
	}
	
	if (dog.x<0 || dog.x>500){
 		increment = 0;
 	}

	
	//if Right key pressed rotate the car clockwise and change image to carRight
	if (keyRightPressed) {
		dog.rotation += .7*increment;
		dog.gotoAndStop(3);
	}
	
	//if Left key pressed rotate the car counterclockwise and change image to carLeft
	if (keyLeftPressed) {
		dog.rotation -= .7*increment;
		dog.gotoAndStop(2);
	}
	
	//if neither Left or Right key pressed change image to carStraight
	if (!keyLeftPressed && !keyRightPressed) {
		dog.gotoAndStop(1);
	}
		
	//if key 1 is pressed select diff thingie!
	if (key1Pressed) {
		dog = Dog1;
		trace ("f")
	}
	
	//if key 2 is pressed select diff thingie!
	if (key2Pressed) {
		dog = Dog2;
		trace ("g")
	}
	

//////////////////////


/// HIERRRRRRRRRRRRRRRRRRRRRR





	if (keyDownPressed) {
			

			
	}


////////////////////////////////////////


	//When up key is pressed...
	if (keyUpPressed) {
			dog.y -= ((90-carRotation)/90)*increment;
			
			if (((dog.rotation > 90)&&(dog.rotation < 180))||((dog.rotation < -90)&&(dog.rotation > -180))) {
				dog.x += posNeg * (((((1-(carRotation/360))*360)-180)/90)*increment);
			}
			if (((dog.rotation <= 90)&&(dog.rotation > 0))||((dog.rotation >= -90)&&(dog.rotation < -1))) {			
				dog.x += posNeg * ((carRotation)/90)*increment;
			}
			if (spaceBarPressed) {
				increment -= .5*acceleration;
			}
			if (!spaceBarPressed && speed < maxSpeed) {
				increment += acceleration;
		}
	}
   
	else {
		if (increment > 0 && spaceBarPressed) {
			dog.y -= ((90-carRotation)/90)*increment;
			
			if (((dog.rotation > 90)&&(dog.rotation < 180))||((dog.rotation < -90)&&(dog.rotation > -180))) {
				dog.x += posNeg * (((((1-(carRotation/360))*360)-180)/90)*increment);
			}
			if (((dog.rotation <= 90)&&(dog.rotation > 0))||((dog.rotation >= -90)&&(dog.rotation < -1))) {
				dog.x += posNeg * ((carRotation)/90)*increment;
			}
			increment -= 4*acceleration;
		}
		
		
		else if (increment > 0) {
			dog.y -= ((90-carRotation)/90)*increment;

			if (((dog.rotation > 90)&&(dog.rotation < 180))||((dog.rotation < -90)&&(dog.rotation > -180))) {
				dog.x += posNeg * (((((1-(carRotation/360))*360)-180)/90)*increment);
			}
			if (((dog.rotation <= 90)&&(dog.rotation > 0))||((dog.rotation >= -90)&&(dog.rotation < -1))) {
				dog.x += posNeg * ((carRotation)/90)*increment;
			}
			increment -= 1.5*acceleration;
		}
		else
			increment = 0;
	}
}


function keyPressed(event:KeyboardEvent) {
	if (event.keyCode == Keyboard.LEFT)
		keyLeftPressed = true;
	if (event.keyCode == Keyboard.RIGHT)
		keyRightPressed = true;
	if (event.keyCode == Keyboard.UP)
		keyUpPressed = true;
	if (event.keyCode == Keyboard.DOWN)
		keyDownPressed = true;
	if (event.keyCode == Keyboard.SPACE)
		spaceBarPressed = true;
	if (event.keyCode == 49)
		key1Pressed = true;
	if (event.keyCode == 50)
		key2Pressed = true;
}

function keyReleased(event:KeyboardEvent) {
	if (event.keyCode == Keyboard.LEFT)
		keyLeftPressed = false;
	if (event.keyCode == Keyboard.RIGHT)
		keyRightPressed = false;
	if (event.keyCode == Keyboard.UP)
		keyUpPressed = false;
	if (event.keyCode == Keyboard.DOWN)
		keyDownPressed = false;
	if (event.keyCode == Keyboard.SPACE)
		spaceBarPressed = false;
	if (event.keyCode == 49)
		key1Pressed = false;
	if (event.keyCode == 50)
		key2Pressed = false;
}
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan