Ignore:
Timestamp:
2010-06-10 14:57:17 (13 years ago)
Author:
ekeimaja
Message:

On melkein jo valmiina!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/ekeimaja/Labyrinth/Labyrinth/Peli.cs

    r633 r688  
    77 
    88namespace Labyrinth // © Eki Majankallio 2010 
    9 { //wanderedbrainilla hirviöt 
     9{ 
    1010    public class Peli : PhysicsGame 
    1111    { 
     12 
    1213        PhysicsObject Pelaaja1; 
    1314        PhysicsObject Pelaaja2; 
     15        PhysicsObject Maali; 
     16 
     17        int pisteitaKentassa = 0; 
    1418 
    1519        const int RuudunLeveys = 50; 
    1620        const int RuudunKorkeus = 50; 
    1721 
     22        IntMeter kenttaLaskuri; 
     23        IntMeter pistelaskuri1; 
     24        IntMeter pistelaskuri2; 
     25        int pisteitakeratty = 0; 
     26 
     27 
    1828        protected override void Begin() 
    1929        { 
    20             
    21  
     30            LuoPisteLaskurit(); 
     31            MessageDisplay.TextColor = Color.White; 
    2232 
    2333            var merkit = new Dictionary<char, ObjectCreator>(); 
     
    3848        } 
    3949 
     50        void LuoPisteLaskurit() 
     51        { 
     52            // Pelaajan 1 pistelaskuri 
     53            pistelaskuri1 = new IntMeter(0); 
     54            ValueDisplay pisteNaytto1 = new ValueDisplay(); 
     55            pisteNaytto1.Text = "Pelaaja1 pisteet: "; 
     56            pisteNaytto1.X = Screen.Left + 100; 
     57            pisteNaytto1.Y = Screen.Top - 100; 
     58            pisteNaytto1.ValueColor = Color.Red; 
     59            pisteNaytto1.TextColor = Color.Red; 
     60            pisteNaytto1.BindTo(pistelaskuri1); 
     61            Add(pisteNaytto1); 
     62 
     63            // Pelaajan 2 pistelaskuri 
     64            pistelaskuri2 = new IntMeter(0); 
     65            ValueDisplay pisteNaytto2 = new ValueDisplay(); 
     66            pisteNaytto2.Text = "Pelaaja2 pisteet: "; 
     67            pisteNaytto2.X = Screen.Left + 100; 
     68            pisteNaytto2.Y = Screen.Top - 20; 
     69            pisteNaytto2.ValueColor = Color.Red; 
     70            pisteNaytto2.TextColor = Color.Red; 
     71            pisteNaytto2.BindTo(pistelaskuri2); 
     72            Add(pisteNaytto2); 
     73        } 
     74 
    4075        PhysicsObject LuoPelaaja1() 
    4176        { 
    42             Pelaaja1 = new PhysicsObject(40.0,40.0); 
     77            Pelaaja1 = new PhysicsObject(40.0, 40.0); 
    4378            Pelaaja1.IgnoresPhysicsLogics = true; 
    44             Pelaaja1.CanRotate = false;  
     79            Pelaaja1.CanRotate = false; 
     80            Pelaaja1.Tag = "1"; 
    4581            Pelaaja1.Image = LoadImage("player1"); 
    4682            Add(Pelaaja1); 
     83            AddCollisionHandler(Pelaaja1, RuokaanTormays); 
     84            AddCollisionHandler(Pelaaja1, MaaliinTormays); 
    4785            return Pelaaja1; 
    4886 
     
    5492            Pelaaja2.IgnoresPhysicsLogics = true; 
    5593            Pelaaja2.CanRotate = false; 
     94            Pelaaja2.Tag = "2"; 
    5695            Pelaaja2.Image = LoadImage("player2"); 
    5796            Add(Pelaaja2); 
     97            AddCollisionHandler(Pelaaja2, RuokaanTormays); 
     98            AddCollisionHandler(Pelaaja2, MaaliinTormays); 
    5899            return Pelaaja2; 
    59100        } 
    60101 
    61         GameObject LuoHirvio() 
    62         { 
    63             GameObject Hirvio = new GameObject(50.0, 50.0); 
     102        PhysicsObject LuoHirvio() 
     103        { 
     104            PhysicsObject Hirvio = new PhysicsObject(48.0, 48.0); 
    64105            Hirvio.Image = LoadImage("monster"); 
    65106            Add(Hirvio); 
     107            Hirvio.IgnoresCollisionResponse = true; 
     108            Hirvio.Velocity = new Vector(90.0, 0.0); 
     109            AddCollisionHandler(Hirvio, SeinaanTormays); 
     110            AddCollisionHandler(Hirvio, PelaajaanTormays); 
    66111            return Hirvio; 
    67112        } 
    68113 
    69         GameObject LuoRuoka() 
    70         { 
    71             GameObject Ruoka = new GameObject(50.0, 50.0); 
     114        PhysicsObject LuoRuoka() 
     115        { 
     116            PhysicsObject Ruoka = new PhysicsObject(50.0, 50.0); 
    72117            Ruoka.Image = LoadImage("food"); 
     118            Ruoka.IgnoresPhysicsLogics = false; 
     119            Ruoka.CanRotate = true; 
     120            pisteitakeratty += 1; 
    73121            Add(Ruoka); 
     122            Ruoka.Tag = "r"; 
    74123            return Ruoka; 
    75124        } 
    76125 
    77         GameObject LuoMaali() 
    78         {  
    79             GameObject Maali = new GameObject(50.0, 50.0); 
     126        PhysicsObject LuoMaali() 
     127        { 
     128            Maali = new PhysicsObject (50.0, 50.0); 
    80129            Maali.Image = LoadImage("goal"); 
     130            Maali.IgnoresPhysicsLogics = true; 
     131            Maali.CanRotate = false; 
     132            Maali.Restitution = 0.0; 
    81133            Add(Maali); 
    82134            return Maali; 
     
    88140            seina.Shape = Shapes.Rectangle; 
    89141            seina.Restitution = 0.0; 
     142            seina.IgnoresPhysicsLogics = true; 
    90143            seina.Color = Color.Black; 
    91144            return seina; 
     
    103156            Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaaja2Ylos, null); 
    104157            Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaaja2Alas, null); 
     158 
    105159            //näppäin ylhäällä 
    106160            Keyboard.Listen(Key.Left, ButtonState.Released, Pelaaja1.StopHorizontal, null); 
     
    112166            Keyboard.Listen(Key.W, ButtonState.Released, Pelaaja2.StopVertical, null); 
    113167            Keyboard.Listen(Key.S, ButtonState.Released, Pelaaja2.StopVertical, null); 
    114              
    115         } 
    116  
     168 
     169        } 
     170 
     171        #region Liikuttaminen 
    117172        //pelaaja1 
    118173        void LiikutaPelaajaaVasemmalle() 
     
    134189        { 
    135190            Pelaaja1.Hit(new Vector(0, -10)); 
    136        } 
     191        } 
    137192        //Pelaaja2 
    138193        void LiikutaPelaaja2Vasemmalle() 
     
    155210            Pelaaja2.Hit(new Vector(0, -10)); 
    156211        } 
    157  
     212        #endregion 
     213 
     214        void SeinaanTormays(PhysicsObject Hirvio, PhysicsObject seina) 
     215        { 
     216            Hirvio.Velocity = -Hirvio.Velocity; 
     217        } 
     218 
     219        void PelaajaanTormays(PhysicsObject Hirvio, PhysicsObject kohde) 
     220        { 
     221            if (kohde == Pelaaja1) 
     222            { 
     223                Pelaaja1.Destroy(); 
     224                TextDisplay viesti = new TextDisplay(); 
     225                Add(viesti); 
     226                viesti.X = Screen.Left + 600; 
     227                viesti.Y = Screen.Top - 60; 
     228                viesti.Text = "Pelaaja1 joutui Hirviön kitaan!"; 
     229            } 
     230            if (kohde == Pelaaja2) 
     231            { 
     232                Pelaaja2.Destroy(); 
     233                TextDisplay viesti = new TextDisplay(); 
     234                Add(viesti); 
     235                viesti.X = Screen.Left + 600; 
     236                viesti.Y = Screen.Top - 60; 
     237                viesti.Text = "Pelaaja2 joutui Hirviön kitaan!"; 
     238 
     239            } 
     240        } 
     241 
     242        void RuokaanTormays(PhysicsObject tormaaja, PhysicsObject pallo) 
     243        { 
     244            if (pallo.Tag.ToString() == "r") // r-tägistä saa pisteitä 
     245            { 
     246                pisteitakeratty -= 1; 
     247                pallo.Destroy(); 
     248                if (tormaaja.Tag.ToString() == "1") 
     249                { 
     250                    pistelaskuri1.Value += 10; 
     251                } 
     252                else if (tormaaja.Tag.ToString() == "2") 
     253                { 
     254                    pistelaskuri2.Value += 10; 
     255                } 
     256            } 
     257 
     258        } 
     259        void MaaliinTormays(PhysicsObject voittaja, PhysicsObject tormattava) 
     260        { 
     261            if (pisteitakeratty != 1) 
     262            { 
     263                if (voittaja.Tag.ToString() == "1" && (tormattava == Maali)) 
     264                { 
     265                    TextDisplay viesti = new TextDisplay(); 
     266                    Add(viesti); 
     267                    viesti.X = Screen.Left + 600; 
     268                    viesti.Y = Screen.Top - 60; 
     269                    viesti.Text = "Pelaaja1 voitti pelin!"; 
     270                } 
     271                else if (voittaja.Tag.ToString() == "2" && tormattava.Equals(Maali)) 
     272                { 
     273                    TextDisplay viesti = new TextDisplay(); 
     274                    Add(viesti); 
     275                    viesti.X = Screen.Left + 600; 
     276                    viesti.Y = Screen.Top - 60; 
     277                    viesti.Text = "Pelaaja2 voitti pelin!"; 
     278                    viesti.MaximumLifetime 
     279                    ClearAll(); 
     280                    goto  
     281                } 
     282 
     283                else if (pisteitakeratty < pisteitaKentassa ) 
     284                { 
     285                    TextDisplay viesti = new TextDisplay(); 
     286                    Add(viesti); 
     287                    viesti.X = Screen.Left + 600; 
     288                    viesti.Y = Screen.Top - 60; 
     289                    viesti.Text = "Et ole kerännyt kaikkia pisteitä!"; 
     290                } 
     291            } 
     292        } 
     293        void SeuraavaKentta(int kentanNro) 
     294        { 
     295             
     296 
     297            kenttaLaskuri = new IntMeter(kentanNro); 
     298 
     299            if (kenttaLaskuri.Value == 1) LuoKentta1(); 
     300            else if (kenttaLaskuri.Value == 2) LuoKentta2(); 
     301            else if (kenttaLaskuri.Value == 3) LuoKentta3(); 
     302            else if (kenttaLaskuri.Value > 3) Exit(); 
     303 
     304            void LuoKentta1() 
     305            { 
     306        } 
     307    } 
    158308    } 
    159309} 
     310 
     311 
     312     
Note: See TracChangeset for help on using the changeset viewer.