Ignore:
Timestamp:
2014-06-27 12:14:07 (7 years ago)
Author:
kivijuno
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2014/26/KirmoN/kanapeli/kanapeli/kanapeli/kanapeli.cs

    r5135 r5161  
    1111    const double nopeus = 200; 
    1212    const double hyppyNopeus = 500; 
    13     const int RUUDUN_KOKO = 40; 
     13    const int RUUDUN_KOKO = 30; 
    1414 
    1515    PlatformCharacter pelaaja1; 
     
    3131    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    3232 
     33    DoubleMeter elamaLaskuri; 
     34 
    3335    double lataus = 0; 
    3436 
     
    3739    public override void Begin() 
    3840    { 
     41 
     42        AloitaPeli(); 
     43            } 
     44 
     45    void AloitaPeli() 
     46    { 
    3947        Gravity = new Vector(0, -1000); 
    4048 
    4149        LuoKentta(); 
     50        LuoElamaLaskuri(); 
    4251        LisaaNappaimet(); 
    4352 
     
    8190    void LisaaTahti(Vector paikka, double leveys, double korkeus) 
    8291    { 
    83         PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     92        PhysicsObject tahti = PhysicsObject.CreateStaticObject(15, 40); 
    8493        tahti.IgnoresCollisionResponse = true; 
    8594        tahti.Position = paikka; 
     
    91100    void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    92101    { 
    93         pelaaja1 = new PlatformCharacter(leveys, korkeus); 
     102        pelaaja1 = new PlatformCharacter(40, 40); 
    94103        pelaaja1.Position = paikka; 
    95104        pelaaja1.Mass = 4.0; 
     
    107116        pelaajan1Ase.AttackSound = null; 
    108117        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
     118        AddCollisionHandler(pelaaja1, "jonnekana", TormaaJonneen); 
    109119        pelaaja1.Restitution = 0; 
    110120        pelaaja1.CollisionIgnoreGroup = 1; 
     
    114124    void LisaaVihollinen(Vector paikka, double leveys, double korkeus) 
    115125    { 
    116         Vihollinen vihollinen1 = new Vihollinen(leveys, korkeus); 
     126        Vihollinen vihollinen1 = new Vihollinen(40, 40); 
    117127        vihollinen1.Shape = Shape.Rectangle; 
    118128        vihollinen1.Mass = 10.0; 
     
    147157            } 
    148158        }; 
     159 
     160        ProgressBar elamaPalkki = new ProgressBar(80, 10); 
     161        elamaPalkki.BindTo(vihollinen1.ElamaLaskuri); 
     162        elamaPalkki.BarColor = Color.Red; 
     163        Add(elamaPalkki); 
     164 
     165        Timer t = new Timer(); 
     166        t.Interval = 0.01; 
     167        t.Timeout += delegate 
     168        { 
     169            elamaPalkki.Position = Camera.WorldToScreen(vihollinen1.Position) + new Vector(0, 100); 
     170        }; 
     171        t.Start(); 
    149172         
    150173    } 
     
    182205        { 
    183206            (kohde as Vihollinen).ElamaLaskuri.Value--; 
     207 
     208            int i = 0; 
     209            while (i < 5) 
     210            { 
     211                Heitahouhen(kohde.Position); 
     212                i++; 
     213            } 
    184214        } 
    185215 
     
    232262        aikaNaytto.DecimalPlaces = 1; 
    233263        aikaNaytto.BindTo(aikaLaskuri.SecondCounter); 
    234         aikaNaytto.X = -900; 
    235         aikaNaytto.Y = 500; 
     264        aikaNaytto.X = -870; 
     265        aikaNaytto.Y = 490; 
    236266        Add(aikaNaytto); 
    237267        double aikaaKulunut = aikaLaskuri.SecondCounter.Value; 
     
    307337        Keyboard.Listen(Key.Space, ButtonState.Up, pysautaminigunaani, "aanipysahtyy"); 
    308338 
     339        Keyboard.Listen(Key.R, ButtonState.Pressed, restart, "Aloitapeli");  
     340 
    309341        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
    310342 
     
    325357    } 
    326358 
     359    void restart() 
     360    { 
     361        ClearAll(); 
     362        AloitaPeli(); 
     363    } 
     364 
    327365    void Hyppaa(PlatformCharacter hahmo, double nopeus) 
    328366    { 
     
    333371    { 
    334372        maaliAani.Play(); 
    335         MessageDisplay.Add("Keräsit tähden!"); 
     373        MessageDisplay.Add("5/5!"); 
    336374        tahti.Destroy(); 
     375 
     376        elamaLaskuri.Value += 3; 
     377    } 
     378 
     379    void TormaaJonneen(PhysicsObject hahmo, PhysicsObject jonne) 
     380    { 
     381        //MessageDisplay.Add("Keräsit tähden!"); 
     382 
     383        if (pelaaja1.Y > jonne.Y + 20) 
     384        { 
     385            (jonne as Vihollinen).ElamaLaskuri.Value-=2; 
     386            pelaaja1.ForceJump(hyppyNopeus * 0.4); 
     387        } 
     388        else 
     389        { 
     390            elamaLaskuri.Value--; 
     391        } 
     392    } 
     393 
     394    void LuoElamaLaskuri() 
     395    { 
     396        elamaLaskuri = new DoubleMeter(10); 
     397        elamaLaskuri.MaxValue = 10; 
     398        elamaLaskuri.LowerLimit += ElamaLoppui; 
     399 
     400        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     401        elamaPalkki.X = Screen.Left + 150; 
     402        elamaPalkki.Y = Screen.Top - 20; 
     403        elamaPalkki.BindTo(elamaLaskuri); 
     404        elamaPalkki.BarColor = Color.Green; 
     405        Add(elamaPalkki); 
     406    } 
     407 
     408    void ElamaLoppui() 
     409    { 
     410        MessageDisplay.Add("LOL, you died! Press 'R' to try again. "); 
     411        pelaaja1.Destroy(); 
     412 
     413        Explosion e2 = new Explosion(300); 
     414        e2.Position = pelaaja1.Position; 
     415        e2.Image = ketsuppiakuva; 
     416        e2.UseShockWave = true; 
     417        e2.Speed = 1000; 
     418        Add(e2); 
     419 
     420        int i = 0; 
     421        while (i < 20) 
     422        { 
     423            Heitahouhen(pelaaja1.Position); 
     424            i++; 
     425        } 
    337426    } 
    338427 
Note: See TracChangeset for help on using the changeset viewer.