Ignore:
Timestamp:
2016-07-07 15:04:47 (3 years ago)
Author:
saalniit
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/27/SamuelN/PlatformJumper/PlatformJumper/PlatformJumper/PlatformJumper.cs

    r7937 r7971  
    1414    const int RUUDUN_KOKO = 40; 
    1515 
     16    double epsilon = 0.2; 
     17 
    1618    PlatformCharacter pelaaja1; 
    1719 
    18     Image pelaajanKuva = LoadImage("player"); 
    19     Image tahtiKuva = LoadImage("Diamond"); 
     20    Image pelaajanKuva = LoadImage("sieni"); 
     21    Image tahtiKuva = LoadImage("coin"); 
    2022    Image ruohokuva = LoadImage("ruoho"); 
    2123    Image vihukuva = LoadImage("invader"); 
     
    2426    SoundEffect coinAani = LoadSoundEffect("pickup"); 
    2527    SoundEffect jumpAani = LoadSoundEffect("Jump"); 
     28    SoundEffect hitAani = LoadSoundEffect("ouch"); 
     29    SoundEffect jupAani = LoadSoundEffect("jup"); 
    2630 
    2731 
     
    2933    public override void Begin() 
    3034    { 
    31         Gravity = new Vector(0, -1000); 
    32  
    33         LuoKentta(); 
    34         LisaaNappaimet(); 
    35         LuoPistelaskuri(); 
    36  
    37         Camera.Follow(pelaaja1); 
    38         Camera.ZoomFactor = 1.2; 
    39         Camera.StayInLevel = true; 
     35        AloitaAlusta(); 
    4036    } 
    4137 
     
    7874        pelaaja1.Image = pelaajanKuva; 
    7975        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
     76        AddCollisionHandler(pelaaja1, "invader", TormaaVihuun); 
    8077        Add(pelaaja1); 
    8178    } 
     
    8986        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
    9087        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     88        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaAlusta, "Restart"); 
    9189 
    9290        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
     
    134132    void LisaaVihu(Vector paikka, double korkeus, double leveys) 
    135133    { 
     134        LuoVihuAjastin(paikka, korkeus, leveys); 
     135        LuoVihu(paikka, korkeus, leveys); 
     136    } 
     137 
     138    void LuoVihu(Vector paikka, double korkeus, double leveys) 
     139    { 
    136140        PlatformCharacter vihu = new PlatformCharacter(korkeus, leveys); 
     141        vihu.Tag = "invader"; 
    137142        vihu.Position = paikka; 
    138143        vihu.Image = vihukuva; 
     
    146151        tasoAivot.JumpSpeed = 700; 
    147152        tasoAivot.TriesToJump = true; 
     153    } 
    148154 
     155    void LuoVihuAjastin(Vector paikka, double korkeus, double leveys) 
     156    { 
     157        Timer vihuAjastin = new Timer(); 
     158        vihuAjastin.Interval = 3; 
     159        vihuAjastin.Timeout += delegate 
     160        { 
     161            LuoVihu(paikka, korkeus, leveys); 
     162        }; 
     163        vihuAjastin.Start(); 
     164    } 
     165 
     166    void TormaaVihuun(PhysicsObject pelaaja1, PhysicsObject vihu) 
     167    { 
     168        if (Math.Abs(pelaaja1.Bottom - vihu.Top) < epsilon) 
     169        { 
     170            (pelaaja1 as PlatformCharacter).ForceJump(hyppyNopeus); 
     171            pisteLaskuri.Value += 1; 
     172            vihu.Destroy(); 
     173            jupAani.Play(); 
     174        } 
     175        else 
     176        {  
     177 
     178            hitAani.Play(); 
     179            AloitaAlusta(); 
     180        } 
     181    } 
     182    void AloitaAlusta() 
     183    { 
     184        ClearAll(); 
     185        Gravity = new Vector(0, -1000); 
     186 
     187        LuoKentta(); 
     188        LisaaNappaimet(); 
     189        LuoPistelaskuri(); 
     190 
     191        IsFullScreen = true; 
     192        Camera.Follow(pelaaja1); 
     193        Camera.ZoomFactor = 1.2; 
     194        Camera.StayInLevel = true; 
    149195    } 
    150196} 
Note: See TracChangeset for help on using the changeset viewer.