Programmering‎ > ‎exempel‎ > ‎

flygande gris

Exemplet visar en flygande gris.
den flygande grisen representeras av box_mc och den gröna plattan platta_mc

flygande gris.fla

//håller redan på vilken tangent som är nedtryckt
var leftArrow:Boolean = false;
var rightArrow:Boolean = false;
var upArrow:Boolean = false;
var downArrow:Boolean = false;

//hastighet
var speed_y:Number = 0;
var speed_x:Number = 0;

//acceleration och gravitation
var acc:Number = 1.5;
var grav:Number = 0.98;

//lyssnare för tangenter
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyPressedUp);

//lägger till eventlyssnare för move
stage.addEventListener(Event.ENTER_FRAME, moveBox);

function keyPressedDown(e:KeyboardEvent) {
    //kontrollerar vilken tangent som eventet gäller
    if (e.keyCode == 37) {
        leftArrow = true;
    }
    if (e.keyCode == 39) {
        rightArrow = true;
    }
    if (e.keyCode == 38) {
        upArrow = true;
    }
    if (e.keyCode == 40) {
        downArrow = true;
    }
}

function keyPressedUp(e:KeyboardEvent) {
    //kontrollerar vilken tangent som eventet gäller
    if (e.keyCode == 37) {
        leftArrow = false;
    } else if (e.keyCode == 39) {
        rightArrow = false;
    }
    if (e.keyCode == 38) {
        upArrow = false;
    } else if (e.keyCode == 40) {
        downArrow = false;
    }
}

function moveBox(e:Event) {
    //ändrar hasigheten i y-riktning
    speed_y += grav;

    //flyttar boxen
    box_mc.y += speed_y;
    box_mc.x += speed_x;

    //sätter x och y i textfält
    x_txt.text = "x = "+String(Math.round(box_mc.x));
    y_txt.text = "y = "+String(Math.round(box_mc.y));

    //kollar om boxen har rört i "marken"
    if (box_mc.y >= 300) {
        box_mc.y = 300;
        speed_y *= -0.7;
        speed_x *= 0.7;

        //kollar om boxen överlappar vid plattan
        if (platta_mc.hitTestObject(box_mc)) {
            status_txt.text = "på plattan";
        } else {
            status_txt.text = "på marken";
        }
    }
   
    //kollat om skeppet rör någon kant
    if (box_mc.y <= 31) {
        speed_y *= -1;//gånger -1 gör att det blir omvänt
        box_mc.y = 31;
    }
    if (box_mc.x <= 0) {
        speed_x *= -1;
        box_mc.x = 0;
    }
    if (box_mc.x >= 517) {
        speed_x *= -1;
        box_mc.x = 517;
    }
   
    //ökar eller minskar hastigheten beroende av tengent
    if (leftArrow) {
        speed_x -= acc;
    }
    if (rightArrow) {
        speed_x += acc;
    }
    if (upArrow) {
        speed_y -= acc;
        status_txt.text = "flyger";
    }
    if (downArrow) {
        speed_y += acc;
    }
}


ċ
flygandegris.fla
(48k)
Olof Olsson,
10 okt. 2008 04:10
ċ
Olof Olsson,
10 okt. 2008 04:10
Comments