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; } } |
Programmering > exempel >
flygande gris
Exemplet visar en flygande gris. den flygande grisen representeras av box_mc och den gröna plattan platta_mc |