Ignore:
Timestamp:
2013-07-03 15:01:31 (10 years ago)
Author:
juronnbe
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2013/27/JuhanaR/Korispeli/Korispeli/Korispeli/Korispeli.cs

    r4369 r4413  
    1414    List<Pelaaja> pelaajat = new List<Pelaaja>(); 
    1515    int vuorossaOlevaPelaaja = 0; 
     16    PhysicsObject kori; 
    1617 
    1718    PlatformCharacter pelaaja1; 
     
    2223    Image korinKuva = LoadImage("tahti"); 
    2324    Image koripallonKuva = LoadImage("Koripallo"); 
     25    Image koripallokorinKuva = LoadImage("Koripallokori"); 
    2426 
    2527    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    2628 
     29    bool VoikoHeittaa = true; 
     30 
     31    DoubleMeter heittovoima; 
     32 
     33    void LuoVoimamittari() 
     34    { 
     35        heittovoima = new DoubleMeter(70, 0, 100); 
     36        heittovoima.MaxValue = 10; 
     37        heittovoima.UpperLimit += delegate { heittovoima.Value = 0; }; 
     38 
     39        ProgressBar heittoPalkki = new ProgressBar(150, 20); 
     40        heittoPalkki.X = Screen.Left + 150; 
     41        heittoPalkki.Y = 0; 
     42        heittoPalkki.Angle = Angle.RightAngle; 
     43        heittoPalkki.BindTo(heittovoima); 
     44        Add(heittoPalkki); 
     45    } 
    2746    public override void Begin() 
    2847    { 
     
    3049        for (int i = 0; i < 4; i++) 
    3150        { 
    32             pelaajat.Add(new Pelaaja()); 
     51            Pelaaja pelaaja = new Pelaaja(); 
     52            pelaaja.Pisteet.UpperLimit += VaihdaKenttaa; 
     53            pelaajat.Add(pelaaja); 
     54 
    3355        } 
    34  
    35         //pelaajat.Add(new Pelaaja()); 
    36         //pelaajat.Add(new Pelaaja()); 
     56        Mouse.IsCursorVisible = true; 
     57 
     58         
    3759 
    3860        LuoKentta(); 
    3961        LuoNaytot(); 
    4062        LisaaNappaimet(); 
    41  
     63        LuoVoimamittari(); 
    4264        Camera.ZoomToLevel(); 
    43         //Camera.Follow(pelaaja1); 
    44         //Camera.ZoomFactor = 1.2; 
    45         //Camera.StayInLevel = true; 
    46     } 
     65        
     66    } 
     67 
     68    void VaihdaKenttaa() 
     69    { 
     70        ClearAll(); 
     71        pelaajat.Clear(); 
     72        vuorossaOlevaPelaaja = 0; 
     73        Begin(); 
     74 
     75    } 
     76 
    4777 
    4878    void VaihdaPelaajaaVuorossa() 
     
    5282        else vuorossaOlevaPelaaja++; 
    5383        MessageDisplay.Add("Pelaajan " + (vuorossaOlevaPelaaja + 1) + " vuoro"); 
    54         pelaaja1.Position = new Vector(-200, 0); 
     84        pelaaja1.Position = new Vector( -200, 0); 
    5585    } 
    5686 
     
    76106        TileMap kentta = TileMap.FromLevelAsset("kentta1"); 
    77107        kentta.SetTileMethod('V', LisaaVastustaja); 
    78          
    79          
    80108        kentta.SetTileMethod('#', LisaaTaso); 
    81109        kentta.SetTileMethod('K', LisaaKori); 
    82110        kentta.SetTileMethod('N', LisaaPelaaja); 
     111        kentta.SetTileMethod('T', LisaaTuomari); 
    83112        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    84         Level.CreateBorders(); 
    85         Level.Background.CreateGradient(Color.White, Color.SkyBlue); 
    86          
     113 
     114        PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     115        ylaReuna.Tag = "reuna"; 
     116        Level.CreateHorizontalBorders(0, false, Color.Red); 
     117 
     118        Level.Background.Image = LoadImage("Koripallokenttä"); 
     119        Level.Background.FitToLevel();         
     120    } 
     121 
     122    void LisaaTuomari(Vector paikka, double leveys, double korkeus) 
     123    { 
     124        PhysicsObject Tuomari = PhysicsObject.CreateStaticObject(leveys*1.2, 1.5*korkeus); 
     125      Tuomari.IgnoresCollisionResponse = true; 
     126      Tuomari.Position = paikka; 
     127      Tuomari.Y += 10; 
     128      Tuomari.Image = tuomarinKuva; 
     129      Add(Tuomari); 
    87130    } 
    88131 
     
    97140    void LisaaKori(Vector paikka, double leveys, double korkeus) 
    98141    { 
    99         PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    100         tahti.IgnoresCollisionResponse = true; 
    101         tahti.Position = paikka; 
    102         //tahti.Image = tahtiKuva; 
    103         tahti.Tag = "tahti"; 
    104         Add(tahti); 
     142        kori = PhysicsObject.CreateStaticObject(leveys*1.2, korkeus*1.2); 
     143        kori.IgnoresCollisionResponse = true; 
     144        kori.Position = paikka; 
     145        kori.Image = koripallokorinKuva; 
     146        kori.Tag = "kori"; 
     147        Add(kori); 
    105148    } 
    106149 
    107150    void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    108151    { 
    109         pelaaja1 = new PlatformCharacter(leveys, korkeus); 
     152        pelaaja1 = new PlatformCharacter(leveys, korkeus*1.5); 
    110153        pelaaja1.Position = paikka; 
    111154        pelaaja1.Mass = 4.0; 
     
    118161    void LisaaVastustaja(Vector paikka, double leveys, double korkeus) 
    119162    { 
    120         PlatformCharacter Vastustaja = new PlatformCharacter(leveys, korkeus); 
     163        PlatformCharacter Vastustaja = new PlatformCharacter(leveys, korkeus*2); 
    121164        Vastustaja.Position = paikka; 
    122165        Vastustaja.Mass = 1000.0; 
     
    125168        Timer hyppyAjastin = new Timer(); 
    126169        hyppyAjastin.Start(); 
    127         hyppyAjastin.Interval = 4; 
    128         hyppyAjastin.Timeout += delegate { if (Vastustaja != null) Vastustaja.Jump(1000); }; 
    129     } 
    130  
    131     void LisaaPallo() 
     170        hyppyAjastin.Interval = 2; 
     171        hyppyAjastin.Timeout += delegate { if (Vastustaja != null) Vastustaja.Jump((kori.Y -Level.Bottom) * 4); }; 
     172    } 
     173 
     174    PhysicsObject LisaaPallo() 
    132175    { 
    133176        PhysicsObject Pallo = new PhysicsObject (20,20); 
     
    137180        Pallo.CollisionIgnoreGroup = 1; 
    138181        Add(Pallo); 
    139     } 
     182        return Pallo; 
     183    } 
     184 
     185 
    140186 
    141187    void LisaaNappaimet() 
     
    144190        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
    145191 
    146         Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 
    147         Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
    148         Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     192        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 
     193        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
     194        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
    149195 
    150196        Mouse.Listen(MouseButton.Left, ButtonState.Released, HeitaPallo, ""); 
     
    161207    void HeitaPallo() 
    162208    { 
    163         LisaaPallo(); 
    164     } 
     209        if (!VoikoHeittaa) 
     210            return; 
     211        VoikoHeittaa = false; 
     212       PhysicsObject pallo =  LisaaPallo(); 
     213         
     214        Vector suunta = (Mouse.PositionOnWorld - pallo.Position).Normalize(); 
     215        pallo.Hit(suunta * 1500); 
     216 
     217        AddCollisionHandler(pallo, PalloOsuu); 
     218    } 
     219 
     220    void PalloOsuu(PhysicsObject pallo, PhysicsObject kohde) 
     221    { 
     222        if ("reuna".Equals(kohde.Tag)) return; 
     223        pallo.Destroy(); 
     224        if (kohde.Tag.Equals("kori")) 
     225            pelaajat[vuorossaOlevaPelaaja].Pisteet.Value++; 
     226        pallo.Destroyed += delegate { VaihdaPelaajaaVuorossa(); }; 
     227 
     228        Timer.SingleShot(1.0, delegate { VoikoHeittaa = true; }); 
     229 
     230    } 
     231 
    165232 
    166233    void Liikuta(PlatformCharacter hahmo, double nopeus) 
     
    168235        if (hahmo.Position.X >= 200 && nopeus > 0) 
    169236        { 
    170             hahmo.Velocity = Vector.Zero; 
     237            hahmo.Velocity = new Vector(0, hahmo.Velocity.Y); 
    171238            return; 
    172239        } 
Note: See TracChangeset for help on using the changeset viewer.