Changeset 601 for 2010/23


Ignore:
Timestamp:
2010-06-09 11:57:32 (10 years ago)
Author:
jopehell
Message:

aloitettiin teko

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/jopehell/TheTankTMR/Peli.cs

    r559 r601  
    88    public class Peli : PhysicsGame 
    99    { 
     10        Vector nopeusYlos = new Vector(0, 200); 
     11        Vector nopeusAlas = new Vector(0, -200); 
     12 
     13        PhysicsObject tankki1; 
     14        PhysicsObject tankki2; 
     15        PhysicsObject vasenReuna; 
     16        PhysicsObject oikeaReuna; 
     17 
     18        PhysicsObject orkki; 
     19 
     20        IntMeter KillCount; 
     21 
    1022        protected override void Begin() 
    1123        { 
    12            
     24            LuoKentta(); 
     25            LuoViholliset(); 
     26            LuoOhjaimet(); 
     27             
     28            Aloita(); 
     29 
     30        } 
     31 
     32        void LuoKentta() 
     33        { 
     34            Level.BackgroundColor = Color.TransparentBlack; 
     35            Camera.ZoomToLevel(); 
     36             
     37 
     38            tankki1 = LuoTankki(Level.Left + 20.0, 0.0); 
     39            tankki2 = LuoTankki(Level.Right - 20.0, 0.0); 
     40 
     41            vasenReuna = Level.CreateLeftBorder(); 
     42            vasenReuna.Restitution = 1.0; 
     43            vasenReuna.IsVisible = false; 
     44            oikeaReuna = Level.CreateRightBorder(); 
     45            oikeaReuna.Restitution = 1.0; 
     46            oikeaReuna.IsVisible = false; 
     47            PhysicsObject ylaReuna = Level.CreateTopBorder(); 
     48            ylaReuna.Restitution = 1.0; 
     49            ylaReuna.IsVisible = false; 
     50            PhysicsObject alaReuna = Level.CreateBottomBorder(); 
     51            alaReuna.Restitution = 1.0; 
     52            alaReuna.IsVisible = false; 
     53        } 
     54 
     55        PhysicsObject LuoTankki(double x, double y) 
     56        { 
     57            PhysicsObject tankki = PhysicsObject.CreateStaticObject(30.0, 30.0); 
     58 
     59            tankki.Shape = Shapes.Rectangle; 
     60            tankki.X = x; 
     61            tankki.Y = y; 
     62            tankki.Restitution = 1.0; 
     63            Add( tankki ); 
     64            return tankki; 
     65 
     66        } 
     67 
     68        void LuoViholliset() 
     69        { 
     70            PhysicsObject orkki = new PhysicsObject(30, 30); 
     71            orkki.Shape = Shapes.Rectangle; 
     72            orkki.Restitution = 1.0; 
     73            orkki.X = 50; 
     74            orkki.Y = 50; 
     75 
     76            Add(orkki); 
     77            Vector impulssi = new Vector(10.0, 200.0); 
     78            orkki.Hit(impulssi); 
     79             
     80 
     81        } 
     82 
     83        void LisaaLaskurit() 
     84        { 
     85            KillCount = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0); 
     86       
     87        } 
     88        IntMeter LuoPisteLaskuri(double x, double y) 
     89        { 
     90            IntMeter laskuri = new IntMeter(0); 
     91            laskuri.MaxValue = 2; 
     92            ValueDisplay naytto = new ValueDisplay(); 
     93            naytto.BindTo(laskuri); 
     94            naytto.X = x; 
     95            naytto.Y = y; 
     96            naytto.ValueColor = Color.White; 
     97            Add(naytto); 
     98            return laskuri; 
     99        } 
     100        void AmmuksenTormays(PhysicsObject kuula, PhysicsObject kohde) 
     101        { 
     102            if (kohde == orkki) 
     103            { 
     104                KillCount.Value += 1; 
     105            } 
     106            else if (orkki == tankki1) 
     107            { 
     108                 
     109                
     110            } 
     111        } 
     112 
     113        void Aloita() 
     114        { 
     115            Vector impulssi = new Vector(650.0, 0.0); 
     116            tankki1.Hit(impulssi); 
     117            Vector impulssi2 = new Vector(650.0, 0.0); 
     118            tankki2.Hit(impulssi2); 
     119 
     120        } 
     121        void LuoOhjaimet() 
     122        { 
     123            Keyboard.Listen(Key.W, ButtonState.Down, LiikutaTankkiaYlos, "Pelaaja 1: Liikuta tankkia ylös", tankki1); 
     124            Keyboard.Listen(Key.W, ButtonState.Released, PysaytaTankki, null, tankki1); 
     125            Keyboard.Listen(Key.S, ButtonState.Down, LiikutaTankkiaAlas, "Pelaaja 1: Liikuta tankkia alas", tankki1); 
     126            Keyboard.Listen(Key.S, ButtonState.Released, PysaytaTankki, null, tankki1); 
     127            Keyboard.Listen(Key.D, ButtonState.Down, LiikutaTankkiaOik, "Pelaaja 1: Liikuta tankkia oikealle", tankki1); 
     128            Keyboard.Listen(Key.D, ButtonState.Released, PysaytaTankki, null, tankki1); 
     129            Keyboard.Listen(Key.A, ButtonState.Down, LiikutaTankkiaVas, "Pelaaja 1: Liikuta tankkia vasemmalle", tankki1); 
     130            Keyboard.Listen(Key.A, ButtonState.Released, PysaytaTankki, null, tankki1); 
     131 
     132            Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaTankkiaYlos, "Pelaaja 2: Liikuta tankkia ylös", tankki2); 
     133            Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaTankki, null, tankki2); 
     134            Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaTankkiaAlas, "Pelaaja 2: Liikuta tankkia alas", tankki2); 
     135            Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaTankki, null, tankki2); 
     136            Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaTankkiaOik, "Pelaaja 2: Liikuta tankkia oikealle", tankki2); 
     137            Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaTankki, null, tankki2); 
     138            Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaTankkiaVas, "Pelaaja 2: Liikuta tankkia vasemmalle", tankki2); 
     139            Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaTankki, null, tankki2); 
     140 
     141            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     142            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     143 
     144            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta tankkia ylös", tankki1, nopeusYlos); 
     145            ControllerOne.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, tankki1, Vector.Zero); 
     146            ControllerOne.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta tankkia alas", tankki1, nopeusAlas); 
     147            ControllerOne.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, tankki1, Vector.Zero); 
     148 
     149            ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, AsetaNopeus, "Liikuta tankkia ylös", tankki2, nopeusYlos); 
     150            ControllerTwo.Listen(Button.DPadUp, ButtonState.Released, AsetaNopeus, null, tankki2, Vector.Zero); 
     151            ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, AsetaNopeus, "Liikuta tankkia alas", tankki2, nopeusAlas); 
     152            ControllerTwo.Listen(Button.DPadDown, ButtonState.Released, AsetaNopeus, null, tankki2, Vector.Zero); 
     153 
     154            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     155            ControllerTwo.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu"); 
     156        } 
     157        void AsetaNopeus(PhysicsObject tankki, Vector nopeus) 
     158        { 
     159            if ((nopeus.Y < 0) && (tankki.Y < Level.Bottom)) 
     160            { 
     161                tankki.Velocity = Vector.Zero; 
     162                return; 
     163            } 
     164 
     165            if ((nopeus.Y > 0) && (tankki.Y > Level.Top)) 
     166            { 
     167                tankki.Velocity = Vector.Zero; 
     168                return; 
     169            } 
     170            tankki.Velocity = nopeus; 
     171        } 
     172 
     173        void LiikutaTankkiaYlos(PhysicsObject tankki) 
     174        { 
     175            if ((tankki.Y >= Level.Top)) 
     176            { 
     177                tankki.Velocity = Vector.Zero; 
     178                return; 
     179            } 
     180            Vector nopeus = new Vector(0, 200); 
     181            tankki.Velocity = nopeus; 
     182        } 
     183 
     184        void LiikutaTankkiaAlas(PhysicsObject tankki) 
     185        { 
     186            if ((tankki.Y <= Level.Bottom)) 
     187            { 
     188                tankki.Velocity = Vector.Zero; 
     189                return; 
     190            } 
     191 
     192            Vector nopeus = new Vector(0, -200); 
     193            tankki.Velocity = nopeus; 
     194 
     195        } 
     196 
     197 
     198        void LiikutaTankkiaOik(PhysicsObject tankki) 
     199        { 
     200            if ((tankki.X >= Level.Right)) 
     201            { 
     202                tankki.Velocity = Vector.Zero; 
     203                return; 
     204            } 
     205            Vector nopeus = new Vector(200, 0); 
     206            tankki.Velocity = nopeus; 
     207        } 
     208 
     209        void LiikutaTankkiaVas(PhysicsObject tankki) 
     210        { 
     211            if ((tankki.X <= Level.Left)) 
     212            { 
     213                tankki.Velocity = Vector.Zero; 
     214                return; 
     215            } 
     216 
     217            Vector nopeus = new Vector(-200, 0); 
     218            tankki.Velocity = nopeus; 
     219        } 
     220 
     221 
     222        void PysaytaTankki(PhysicsObject tankki) 
     223        { 
     224            tankki.Velocity = Vector.Zero; 
    13225        } 
    14226    } 
    15227} 
     228     
     229 
     230 
     231   
     232 
     233 
     234 
Note: See TracChangeset for help on using the changeset viewer.