Ignore:
Timestamp:
2015-06-24 12:02:28 (4 years ago)
Author:
sieerinn
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2015/26/SanteriP/gunmayhem/gunmayhem/gunmayhem/gunmayhem.cs

    r6185 r6239  
    1414 
    1515    PlatformCharacter pelaaja1; 
    16  
     16    PlatformCharacter pelaaja2; 
     17    IntMeter pisteLaskuri1; 
     18    IntMeter pisteLaskuri2; 
     19 
     20    Vector alkupaikka1; 
     21    Vector alkupaikka2; 
     22 
     23    Image asekuva = LoadImage("ase"); 
    1724    Image pelaajanKuva = LoadImage("pelaaja"); 
     25    Image pelaajanKuva2 = LoadImage("pelaaja2"); 
    1826    Image tahtiKuva = LoadImage("tahti"); 
    1927    Image ruohokuva = LoadImage("ruoho"); 
    20  
     28    Image pommikuva = LoadImage("pommi"); 
    2129    SoundEffect maaliAani = LoadSoundEffect("maali"); 
    2230 
     
    2836        LuoKentta(); 
    2937        LisaaNappaimet(); 
     38 
     39        pisteLaskuri1 = LuoPistelaskuri(Screen.Right - 100); 
     40        pisteLaskuri2 = LuoPistelaskuri(Screen.Left + 100); 
    3041 
    3142        Camera.Follow(pelaaja1); 
     
    3445    } 
    3546 
     47 
     48 
     49    IntMeter LuoPistelaskuri(double x) 
     50    { 
     51        IntMeter pisteLaskuri = new IntMeter(0); 
     52 
     53        Label pisteNaytto = new Label(); 
     54        pisteNaytto.X = x; 
     55        pisteNaytto.Y = Screen.Top - 100; 
     56        pisteNaytto.TextColor = Color.Black; 
     57        pisteNaytto.Color = Color.White; 
     58 
     59        pisteNaytto.BindTo(pisteLaskuri); 
     60        Add(pisteNaytto); 
     61        return pisteLaskuri; 
     62    } 
     63 
    3664    void LuoKentta() 
    3765    { 
     
    3967        kentta.SetTileMethod('#', LisaaTaso); 
    4068        kentta.SetTileMethod('*', LisaaTahti); 
    41         kentta.SetTileMethod('N', LisaaPelaaja); 
     69        kentta.SetTileMethod('N', LisaaPelaaja1); 
     70        kentta.SetTileMethod('E', LisaaPelaaja2); 
     71        kentta.SetTileMethod('%', LisaaPommi); 
     72        kentta.SetTileMethod('"', Lisaapohja); 
    4273        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    4374        Level.CreateBorders(); 
     
    5081        taso.Position = paikka; 
    5182        taso.Image = ruohokuva; 
    52         //taso.MakeOneWay(new Vector(0, 1)); 
    5383        Add(taso); 
     84    } 
     85 
     86    void Lisaapohja(Vector paikka, double leveys, double korkeus) 
     87    { 
     88        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     89        taso.Position = paikka; 
     90        taso.IsVisible=false; 
     91        taso.Tag = "pohja"; 
     92        Add(taso); 
     93    } 
     94 
     95    void LisaaPommi(Vector paikka, double leveys, double korkeus) 
     96    { 
     97        PhysicsObject pommi = PhysicsObject.CreateStaticObject(leveys, korkeus); 
     98        pommi.Position = paikka; 
     99        pommi.Image = pommikuva; 
     100        Add(pommi); 
     101        pommi.Tag = "pommi"; 
    54102    } 
    55103 
     
    64112    } 
    65113 
    66     void LisaaPelaaja(Vector paikka, double leveys, double korkeus) 
    67     { 
    68         pelaaja1 = new PlatformCharacter(pelaajanKuva.Width * 1.4, pelaajanKuva.Height * 1.4); 
    69         pelaaja1.Position = paikka; 
    70         pelaaja1.Mass = 4.0; 
    71         pelaaja1.Image = pelaajanKuva; 
    72         pelaaja1.Shape = Shape.FromImage(pelaajanKuva); 
    73         AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen); 
    74         Add(pelaaja1); 
     114    PlatformCharacter LisaaPelaaja(Vector paikka, double leveys, double korkeus,Image kuva) 
     115    { 
     116        PlatformCharacter pelaaja = new PlatformCharacter(pelaajanKuva.Width * 1.4, pelaajanKuva.Height * 1.4); 
     117        pelaaja.Position = paikka; 
     118        pelaaja.Mass = 4.0; 
     119        pelaaja.Image = kuva; 
     120        pelaaja.Tag = "pelaaja"; 
     121        pelaaja.Shape = Shape.FromImage(pelaajanKuva); 
     122        pelaaja.Weapon = new AssaultRifle(30, 10); 
     123        pelaaja.Weapon.Image = asekuva; 
     124        pelaaja.Weapon.Ammo.Value = 1000; 
     125        pelaaja.Weapon.ProjectileCollision = AmmusOsui; 
     126 
     127        AddCollisionHandler(pelaaja, "tahti", TormaaTahteen); 
     128        AddCollisionHandler(pelaaja, "pommi", Tormaapommiin); 
     129        AddCollisionHandler(pelaaja, "pohja", Tormaapohjaan); 
     130        Add(pelaaja); 
     131        return pelaaja; 
     132    } 
     133 
     134    void AmmuAseella(PlatformCharacter pelaaja) 
     135    { 
     136        PhysicsObject ammus = pelaaja.Weapon.Shoot(); 
     137 
     138        if (ammus != null) 
     139        { 
     140            //ammus.Size *= 3; 
     141            //ammus.Image = ... 
     142            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     143        } 
     144    } 
     145 
     146    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     147    { 
     148        ammus.Destroy(); 
     149 
     150        if (kohde.Tag.Equals("pelaaja")) 
     151        { 
     152            kohde.Velocity = ammus.Velocity*7; 
     153        } 
     154    } 
     155 
     156    void LisaaPelaaja1(Vector paikka, double leveys, double korkeus) 
     157    { 
     158        pelaaja1 = LisaaPelaaja(paikka, leveys, korkeus, pelaajanKuva); 
     159        alkupaikka1 = paikka; 
     160    } 
     161 
     162    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus) 
     163    { 
     164        pelaaja2 = LisaaPelaaja(paikka, leveys, korkeus, pelaajanKuva2); 
     165        alkupaikka2 = paikka; 
    75166    } 
    76167 
     
    83174        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
    84175        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     176        Keyboard.Listen(Key.Enter, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1); 
     177 
     178 
     179        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus); 
     180        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus); 
     181        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus); 
     182        Keyboard.Listen(Key.R, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2); 
     183 
    85184 
    86185        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
     
    109208        tahti.Destroy(); 
    110209    } 
     210 
     211    void Tormaapommiin(PhysicsObject hahmo, PhysicsObject pommi) 
     212    { 
     213        Explosion räjähdys = new Explosion(200); 
     214        räjähdys.Position = pommi.Position + new Vector(0, 10); 
     215        Add(räjähdys); 
     216    } 
     217 
     218    void Tormaapohjaan(PhysicsObject hahmo, PhysicsObject pohja) 
     219    { 
     220        pelaaja1.Position = alkupaikka1; 
     221        pelaaja2.Position = alkupaikka2; 
     222 
     223        if (hahmo == pelaaja1) 
     224        { 
     225            pisteLaskuri2.Value += 1; 
     226        } 
     227        if (hahmo == pelaaja2) 
     228        { 
     229            pisteLaskuri1.Value += 1; 
     230        } 
     231    } 
    111232} 
Note: See TracChangeset for help on using the changeset viewer.