flash as3 araba sürme oyunu hız göstergeli

trvendetta

New member
Katılım
20 Kas 2009
Mesajlar
89
Reaction score
0
Puanları
0
İlk önce action script 3 olarak yeni bir sayfa açıyoruz sayfanın ayarlarını aşağıda bulunan propertiesden ayarlıyoruz(açık değilse Windows>propertiesden açabiliriz)aşağıdaki gibi sayfayı düzenliyoruz.
image001a.png

Timeline geliyoruz açk değilse (Window > Timeline) açıyoruz ve aşğıdaki gib sayfa ayarlarını yapıyoruz.
image001b.png

-aşağıdaki resimleri import ediyoruz File > Import > Import to Stage yeni bir movieclip oluşturyoruz boş olucak
1.frame carStraight 158x300 Flash As3 araba sürme oyunu hız göstergeli
2.frame carLeft 158x300 Flash As3 araba sürme oyunu hız göstergeli
3.frame carRight 158x300 Flash As3 araba sürme oyunu hız göstergeli
de bunlar gelicek sonra hepsine tek tek stop(); kodunu ekliycez nasılmı framye sağ tıklayıp actions panelini açıp.
sonra oluşturduğumuz movieclip ekrana taşıycaz car katmanına boyunu kendimize göre ayarlıycaz.
image004.png

propertiesden carMc yapıcaz ismini
sonra spedd katmanına gelip text tool(t) aracıyla dynamic text oluşturcaz.
bu nun properties ismi speedeter olucak.
image011.png

ve son olarakda action katmanına sağ tıklayıp action panelini açıp aşağıdaki kodları yazıcaz

Kod:
var increment:Number = 0;
var carRotation:Number = carMC.rotation;
var posNeg:Number = 1;
var acceleration:Number = .05;
var speed:Number = 0;
var maxSpeed:Number = 50;

var keyLeftPressed:Boolean;
var keyRightPressed:Boolean;
var keyUpPressed:Boolean;
var spaceBarPressed:Boolean;

addEventListener(Event.ENTER_FRAME,onEnterFrameFunction);
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP,keyReleased);

function onEnterFrameFunction(event:Event) {

speed = Math.round((increment)*5);
spedometer.text = String(speed);

if ((carMC.rotation < 180)&&(carMC.rotation >= 0)){
carRotation = carMC.rotation;
posNeg = 1;
}
if ((carMC.rotation < 0)&&(carMC.rotation > -180)){
carRotation = -1 * carMC.rotation;
posNeg = -1;
}

if (keyRightPressed) {
carMC.rotation += .5*increment;
carMC.gotoAndStop(3);
}

if (keyLeftPressed) {
carMC.rotation -= .5*increment;
carMC.gotoAndStop(2);
}

if (!keyLeftPressed && !keyRightPressed) {
carMC.gotoAndStop(1);
}

if (keyUpPressed) {
carMC.y -= ((90-carRotation)/90)*increment;

if (((carMC.rotation > 90)&&(carMC.rotation < 180))||((carMC.rotation < -90)&&(carMC.rotation > -180))) {
carMC.x += posNeg * (((((1-(carRotation/360))*360)-180)/90)*increment);
}
if (((carMC.rotation <= 90)&&(carMC.rotation > 0))||((carMC.rotation >= -90)&&(carMC.rotation < -1))) {
carMC.x += posNeg * ((carRotation)/90)*increment;
}
if (spaceBarPressed) {
increment -= .5*acceleration;
}
if (!spaceBarPressed && speed < maxSpeed) {
increment += acceleration;
}
}

else {
if (increment > 0 && spaceBarPressed) {
carMC.y -= ((90-carRotation)/90)*increment;

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

if (((carMC.rotation > 90)&&(carMC.rotation < 180))||((carMC.rotation < -90)&&(carMC.rotation > -180))) {
carMC.x += posNeg * (((((1-(carRotation/360))*360)-180)/90)*increment);
}
if (((carMC.rotation <= 90)&&(carMC.rotation > 0))||((carMC.rotation >= -90)&&(carMC.rotation < -1))) {
carMC.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.SPACE)
spaceBarPressed = 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.SPACE)
spaceBarPressed = false;
}
ctrl +enter test edebilirsiniz kodların açıklamaları altlarında yazmakta.
kaynak dosya burada
önizleme
alıntı adresi
ingilizce olarak detaylı anlatım
 
Geri
Üst