Ignore:
Timestamp:
2016-06-16 14:59:29 (4 years ago)
Author:
evsulens
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/24/EveliinaL/Space_Run/Space_Run/Space_Run/Space_Run.cs

    r7342 r7389  
    99public class Space_Run : PhysicsGame 
    1010{ 
     11     
    1112    private Image[] SpacemanRun = LoadImages("1", "2", "3", "4"); 
    1213    private Animation SpacemanRunAnimaatio; 
     14    private Animation AlienRunAnimaatio; 
     15    private Animation SpacemanPunch; 
    1316    const double nopeus = 200; 
    1417    const double hyppyNopeus = 750; 
    1518    const int RUUDUN_KOKO = 40; 
     19 
     20    EasyHighScore topLista = new EasyHighScore(); 
    1621 
    1722    PlatformCharacter pelaaja1; 
     
    2530    Image laavaKuva = LoadImage("Laava"); 
    2631    Image maaliKuva = LoadImage("MaaliLippu"); 
     32    Image SpaceRunBackground = LoadImage("SpaceRunImage"); 
    2733    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    2834 
    2935    public override void Begin() 
    3036    { 
     37        Level.Background.Image = SpaceRunBackground; 
     38        MultiSelectWindow alkuValikko = new MultiSelectWindow("","Aloita peli", "Parhaat Pisteet", "Exit"); 
     39        alkuValikko.AddItemHandler(0, AloitaPeli); 
     40        //alkuValikko.AddItemHandler(1, ); 
     41        alkuValikko.AddItemHandler(2, Exit); 
     42        Add(alkuValikko); 
     43        alkuValikko.Color = Color.DarkBlue; 
     44    } 
     45 
     46    void AloitaPeli() 
     47    { 
    3148        SpacemanRunAnimaatio = LoadAnimation("SpacemanRun"); 
     49        AlienRunAnimaatio = LoadAnimation("AlienRun"); 
     50        SpacemanPunch = LoadAnimation("SpacemanPunch"); 
    3251        Gravity = new Vector(0, -1000); 
    3352 
     
    3857        Camera.ZoomFactor = 1.2; 
    3958        Camera.StayInLevel = true; 
    40     } 
    41  
     59 
     60    } 
    4261    void LuoKentta() 
    4362    { 
     
    5675    void LisaaTaso(Vector paikka, double leveys, double korkeus) 
    5776    { 
    58         PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     77        PhysicsObject taso = PhysicsObject.CreateStaticObject(40, 40); 
    5978        taso.Position = paikka; 
    6079        taso.Color = Color.Gray; 
     
    6988        Alien.MirrorImage(); 
    7089        Alien.Tag = "Alien"; 
     90        Alien.AnimWalk = AlienRunAnimaatio; 
     91        AlienRunAnimaatio.FPS = 4; 
    7192        Add(Alien); 
    7293        PlatformWandererBrain aivot = new PlatformWandererBrain(); 
     
    83104        AddCollisionHandler(pelaaja1, "Laava", TormaaLaavaan); 
    84105        AddCollisionHandler(pelaaja1, "Kultaharkko", TormaaKultaan); 
     106        AddCollisionHandler(pelaaja1, "MaaliLippu", PaaseeMaaliin); 
    85107        SpacemanRunAnimaatio.FPS = 8; 
    86108        Add(pelaaja1); 
     
    106128        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
    107129        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     130        Keyboard.Listen(Key.F, ButtonState.Pressed, Lyo, null); 
     131        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin"); 
    108132 
    109133        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
     
    115139        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
    116140    } 
     141     
     142    void Lyo() 
     143    { 
     144        SpacemanPunch.FPS = 30; 
     145        SpacemanPunch.Start(); 
     146        SpacemanPunch.StopOnLastFrame = true; 
     147        pelaaja1.PlayAnimation(SpacemanPunch); 
     148        List<GameObject> viholliset = GetObjectsAt(pelaaja1.Position + new Vector(pelaaja1.FacingDirection == Direction.Right ? 15 : -15, 0), "Alien", 25); 
     149        foreach (var item in viholliset) 
     150        { 
     151            item.Destroy(); 
     152        } 
     153    } 
    117154 
    118155    void Liikuta(PlatformCharacter hahmo, double nopeus) 
     
    129166    { 
    130167        hahmo.Destroy(); 
     168        HaviaaPelin(); 
    131169    } 
    132170    void TormaaKultaan(PhysicsObject hahmo, PhysicsObject Kultaharkko) 
     
    161199    { 
    162200        hahmo.Destroy(); 
     201        HaviaaPelin(); 
    163202    } 
    164203    void LisaaMaali(Vector paikka, double leveys, double korkeus) 
     
    168207        MaaliLippu.Position = paikka; 
    169208        MaaliLippu.Image = maaliKuva; 
    170         MaaliLippu.Tag = "Maali"; 
     209        MaaliLippu.Tag = "MaaliLippu"; 
    171210        Add(MaaliLippu); 
    172211    } 
     212    void PaaseeMaaliin(PhysicsObject hahmo, PhysicsObject MaaliLippu) 
     213    { 
     214        ClearAll(); 
     215        Level.Background.Image = SpaceRunBackground; 
     216        topLista.EnterAndShow(pisteLaskuri.Value); 
     217        topLista.HighScoreWindow.Closed += VoittaaPelin; 
     218         
     219 
     220    } 
     221    void HaviaaPelin() 
     222    { 
     223        ClearAll(); 
     224        Level.Background.Image = SpaceRunBackground; 
     225        MultiSelectWindow ikkuna = new MultiSelectWindow("Hävisit! Yritetäänkö uudestaan?", "Kyllä", "Ei"); 
     226        ikkuna.AddItemHandler(0, AloitaPeli); 
     227        ikkuna.AddItemHandler(1, Exit); 
     228        Add(ikkuna); 
     229    } 
     230 
     231    public void VoittaaPelin(Window sender) 
     232    { 
     233        MultiSelectWindow ikkuna = new MultiSelectWindow("Voitit! Haluatko pelata uudestaan?", "Kyllä", "Ei"); 
     234        ikkuna.AddItemHandler(0, AloitaPeli); 
     235        ikkuna.AddItemHandler(1, Exit); 
     236        Add(ikkuna); 
     237    } 
     238 
    173239} 
Note: See TracChangeset for help on using the changeset viewer.