Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Level2Enkel.as
- // DN 060111
- package {
- //import flash.display.Sprite;
- import flash.display.Stage;
- import flash.events.TimerEvent;
- import flash.utils.Timer;
- import flash.events.MouseEvent;
- import flash.ui.Keyboard;
- import flash.events.KeyboardEvent;
- import flash.filters.*;
- public class Level2Enkel extends LevelBaseEnkel
- {
- //OBJEKTER PÅ STAGE
- //Disse variablene fins i baseklassen:
- //private var _stage:Stage;
- //private var _finished:Boolean;
- //private var _timer;
- private var npc:Npc;
- private var forgrunn:Rektangel;
- private var karakter:LKarakter;
- private var _fugl:Lfugl;
- private var _fugl2:Lfugl2;
- private var _huske:Lhuske;
- private var _bird:LBird;
- private var _bg:LBackground01;
- private var _ground:LBakke01;
- private var _foreground:LForeground;
- private var _tree:LTree01;
- private var _fog:LFog;
- //private var myBlur:BlurFilter = new BlurFilter();
- //BOOLEAN - TIMER - NUMBER - INT o.l plasseres her.
- private var _leftKey:Boolean = false //boolean for venstre tast blir laget.
- private var _rightKey:Boolean = false //boolean for høyre tast blir laget
- private var _tasteFart:Number = 0; //_tasteFart blir satt. _tastefart definerer farten det roterene objektet skal ha
- private var _velocity:Number = 0; //velocity blir satt.
- private var _friksjon:Number = 2; //friksjonen blir satt.
- private const _gravity:Number = 0.04; //tyngdekraften blir satt. denne skal ikke endre seg senere i skriptet.
- //private var _vinkel:Number = _huske.rotation*Math.PI/180; //se bort ifra denne
- private var _huskeHøyde:Number;
- private var _startFart:Number;
- private var _huskeVinkel:Number;
- private var _hopp:Boolean = false;
- //fugl
- private var _fvelocity:Number = 0;
- private const _fgravity:Number = 0.20;
- /* Initialiserer stageParam slik at Level1 kan brukes som dokumentklasse.
- Det er lov til å initialisere parametre med en default verdi,
- slik at funksjonen/konstruktøren kan brukes uten å angi parameter.
- Grunnen til at vi gjør dette her, er at levelet kan brukes som
- egen dokumentklasse - uavhengig av level manageren.
- */
- public function Level2Enkel(stageParam:Stage=null)
- {
- super(stageParam);
- _fugl2 = new Lfugl2();
- _bg = new LBackground01
- addChild(_bg);
- _bg.x = 0;
- _bg.y = 400;
- _tree = new LTree01;
- addChild(_tree);
- _tree.x = 200;
- _tree.y = 0;
- _ground = new LBakke01;
- addChild(_ground);
- _ground.x = 0;
- _ground.y = 400;
- //_ground.alpha = 0;
- _fog = new LFog;
- addChild(_fog);
- _fog.x = 0;
- _fog.y = 400;
- //_fog.alpha = 0;
- _foreground = new LForeground();
- addChild(_foreground);
- _foreground.x = 280;
- _foreground.y = 380;
- //_foreground.alpha = 0;
- npc = new Npc();
- npc.x = 50;
- npc.y = _foreground.y - npc.height/2;
- npc.vx = -1;
- addChild(npc);
- npc.gotoAndStop(1);
- karakter = new LKarakter();
- addChild(karakter);
- karakter.x = 500;
- karakter.y = _foreground.y - karakter.height/2;
- karakter.gotoAndStop(1);
- //////////////////
- _huske = new Lhuske(); //setter navn på Lhuske til _huske.
- addChild(_huske); //legger til _huske på stage.
- _huske.x = 200; //plasserer _huske sin x posisjon.
- _huske.y = 50; //plasserer _huske sin y posisjon.
- _huske.rotation = 0; //setter vinkelen til husken til 0 grader.
- _huskeHøyde = _huske.height;
- ///////////////////////
- }
- // En enkel måte å starte timeren på
- public override function onClick(me:MouseEvent) : void
- {
- _timer.start();
- npc.play();
- //trace (onClick);
- }
- public override function onTimer(tEvent:TimerEvent) : void
- {
- if(_huske.rotation > 0) //Når husken sin rotasjon er til venstre for midtpunktet skal:
- {
- _velocity -= _gravity; //* -= 0.04
- }
- else if (_huske.rotation < 0 ) //Når husken sin rotasjon er til venstre for midtpunktet skal:
- {
- _velocity += _gravity; //* += 0.04
- }
- _huske.rotation += _tasteFart + _velocity * _friksjon; //husken sin rotasjon += * + * * 6
- //trace (_tasteFart + _velocity * _friksjon);
- //trace (_tasteFart + _velocity);
- trace (_huske.rotation)
- if (_hopp == true)
- {
- _fugl2.x = _fugl2.x + Math.cos((_huskeVinkel - 90 )*Math.PI/180)* -_startFart * 3;
- _fugl2.y = _fugl2.y + Math.sin((_huskeVinkel - 90 )*Math.PI/180)* -_startFart * 3;
- _fvelocity+=_fgravity;
- _fugl2.y+=_fvelocity;
- }
- npc.x += .3;
- if (npc.hitTestObject(karakter))
- {
- _finished = true;
- _timer.stop();
- }
- }
- // public function isFinished() : Boolean arves fra baseklassen:
- public override function onKeyPressed(e:KeyboardEvent) : void //hvis man trykker ned en tast (left/right)
- {
- if (e.keyCode == Keyboard.LEFT) //hvis venstre tast blir trykket
- {
- _leftKey = true; //blir _leftKey true
- _tasteFart = .8; //og _tasteFart blir satt til 0.5
- //_tasteFart += _tasteFart + _velocity;
- }
- if (e.keyCode == Keyboard.RIGHT) // samme for høyretasten.
- {
- _rightKey = true;
- _tasteFart = -.8;
- //_tasteFart -= _tasteFart - _velocity;
- }
- if (e.keyCode == 32)
- {
- if (_hopp == false)
- {
- _hopp = true;
- addChild(_fugl2);
- _huske._fugl.alpha = 0;
- _fugl2.x = _huske.x + Math.cos((_huske.rotation + 90 )*Math.PI/180)*_huskeHøyde;
- _fugl2.y = _huske.y + Math.sin((_huske.rotation + 90 )*Math.PI/180)*_huskeHøyde;
- _startFart = _tasteFart + _velocity * _friksjon;
- _huskeVinkel = _huske.rotation + 90;
- }
- }
- }
- public override function onKeyReleased(e:KeyboardEvent) : void //hvis ingen taster er nede skal:
- {
- _tasteFart = 0; //_tasteFart bli 0.
- if (e.keyCode == Keyboard.LEFT) //og hvis venstre tast blir sluppet skal _leftKey bli false.
- {
- _leftKey = false;
- }
- if (e.keyCode == Keyboard.RIGHT) //det samme for høyre.
- {
- _rightKey = false;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement