Changeset 4246


Ignore:
Timestamp:
2013-06-26 14:58:02 (6 years ago)
Author:
osjoneuv
Message:

Talletus.

Location:
2013/26/OskariN
Files:
12 added
2 edited

Legend:

Unmodified
Added
Removed
  • 2013/26/OskariN/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs

    r4213 r4246  
    77using Jypeli.Widgets; 
    88 
     9public class Pelaaja : PlatformCharacter 
     10{ 
     11    public ListenContext tikkaillaNappaimet; 
     12    public ListenContext poisTikkailtaNappaimet; 
     13 
     14    public Pelaaja(double leveys, double korkeus) 
     15        : base(leveys, korkeus) 
     16    { 
     17        IsUpdated = true; 
     18    } 
     19 
     20    public override void Update(Time time) 
     21    { 
     22        base.Update(time); 
     23    } 
     24} 
     25 
    926public class Tasohyppelypeli1 : PhysicsGame 
    1027{ 
     
    1330    const int RUUDUN_KOKO = 40; 
    1431 
    15     PlatformCharacter pelaaja1; 
    16     PlatformCharacter pelaaja2; 
    17  
    18     Image pelaajanKuva2 = LoadImage("pelaaja2"); 
     32    Pelaaja pelaaja1; 
     33    Pelaaja pelaaja2; 
     34 
     35    Image luodinKuva = LoadImage("luoti"); 
     36    Image pelaajanKuva2 = LoadImage("pelaaja2 (2)"); 
    1937    Image pelaajanKuva = LoadImage("player3"); 
    2038    Image aseKuva = LoadImage("gun"); 
    21     Image tikasKuva = LoadImage("Tikkaat");  
    22  
    23     SoundEffect maaliAani = LoadSoundEffect("maali"); 
     39    Image tikasKuva = LoadImage("Tikkaat"); 
     40 
     41    DoubleMeter elamaLaskuri1; 
     42    DoubleMeter elamalaskuri2; 
     43 
    2444 
    2545    public override void Begin() 
    2646    { 
    2747        Gravity = new Vector(0, -1000); 
    28  
    2948        LuoKentta(); 
    3049        LisaaNappaimet(); 
    3150        Camera.ZoomToLevel(); 
    32     } 
     51        MediaPlayer.Play("game music"); 
     52        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", 
     53        "Aloita peli", "Lopeta"); 
     54        alkuValikko.Color = Color.Black; 
     55        
     56         
     57        Add(alkuValikko); 
     58         
     59 
     60    } 
     61 
     62    DoubleMeter LuoElamaLaskuri(double x, double y, Pelaaja pelaaja) 
     63    { 
     64       DoubleMeter elamaLaskuri = new DoubleMeter(10); 
     65        elamaLaskuri.MaxValue = 10; 
     66        elamaLaskuri.LowerLimit += delegate { 
     67            ElamaLoppui(pelaaja); 
     68            elamaLaskuri.Image = LoadImage(""); 
     69            elamaLAskuri.BarImage = LoadImage(""); 
     70        }; 
     71 
     72        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     73        elamaPalkki.X = x; 
     74        elamaPalkki.Y = y; 
     75        elamaPalkki.BindTo(elamaLaskuri); 
     76        Add(elamaPalkki); 
     77        return elamaLaskuri; 
     78    } 
     79 
     80    void ElamaLoppui(Pelaaja pelaaja) 
     81    { 
     82        MessageDisplay.Add("HaHaHa!!! You're dead!"); 
     83        pelaaja.Destroy(); 
     84    } 
     85 
    3386 
    3487    void LuoKentta() 
    3588    { 
     89        pelaaja1 = LuoPelaaja(RUUDUN_KOKO, RUUDUN_KOKO, pelaajanKuva); 
     90        pelaaja2 = LuoPelaaja(RUUDUN_KOKO, RUUDUN_KOKO, pelaajanKuva2); 
    3691        TileMap kentta = TileMap.FromLevelAsset("pelitausta"); 
    3792        kentta.SetTileMethod('#', LisaaTaso); 
    3893        kentta.SetTileMethod('*', LisaaAse); 
    39         kentta.SetTileMethod('N', LisaaPelaaja1); 
    40         kentta.SetTileMethod('M', LisaaPelaaja2); 
     94        kentta.SetTileMethod('N', LisaaPelaaja, pelaaja1); 
     95        kentta.SetTileMethod('M', LisaaPelaaja, pelaaja2); 
    4196        kentta.SetTileMethod('H', LisaaTikkaat); 
    4297        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); 
    4398        Level.CreateBorders(); 
    44         Level.Background.CreateGradient(Color.White, Color.SkyBlue); 
     99        Level.Background.CreateGradient(Color.White, Color.White); 
     100        elamaLaskuri1 = LuoElamaLaskuri(Screen.Right - 150, Screen.Top - 150, pelaaja1); 
     101       elamalaskuri2 = LuoElamaLaskuri(Screen.Left +150, Screen.Top - 150, pelaaja2);  
     102    } 
     103 
     104    void AloitaPeli() 
     105    {  
     106    } 
     107 
     108    void ParhaatPisteet() 
     109    { 
    45110    } 
    46111 
     
    56121        PhysicsObject tikkaat = PhysicsObject.CreateStaticObject(leveys, korkeus); 
    57122        tikkaat.Position = paikka; 
    58         tikkaat.Image = tikasKuva; 
     123         tikkaat.Image = tikasKuva; 
     124        tikkaat.IgnoresCollisionResponse = true; 
     125        tikkaat.Tag = "tikkaat"; 
    59126        Add(tikkaat); 
    60127    } 
     128 
     129     
     130 
    61131    void LisaaAse(Vector paikka, double leveys, double korkeus) 
    62132    { 
     
    69139    } 
    70140 
    71     void LisaaPelaaja1(Vector paikka, double leveys, double korkeus) 
    72     { 
    73         pelaaja1 = new PlatformCharacter(leveys, korkeus); 
    74         pelaaja1.Position = paikka; 
    75         pelaaja1.Mass = 4.0; 
    76         pelaaja1.Image = pelaajanKuva; 
    77         AddCollisionHandler(pelaaja1, "gun", TormaaAseeseen); 
    78         Add(pelaaja1); 
    79     } 
    80      
    81     void LisaaPelaaja2(Vector paikka, double leveys, double korkeus) 
    82     { 
    83         pelaaja2 = new PlatformCharacter(leveys, korkeus); 
    84         pelaaja2.Position = paikka; 
    85         pelaaja2.Mass = 4.0; 
    86         pelaaja2.Image = pelaajanKuva2; 
    87         AddCollisionHandler(pelaaja2, "gun", TormaaAseeseen); 
    88         Add(pelaaja2); 
     141    Pelaaja LuoPelaaja(double leveys, double korkeus, Image kuva) 
     142    { 
     143        Pelaaja pelaaja = new Pelaaja(leveys, korkeus); 
     144        pelaaja.Image = kuva; 
     145        return pelaaja; 
     146    } 
     147 
     148    void LisaaPelaaja(Vector paikka, double leveys, double korkeus, Pelaaja pelaaja) 
     149    { 
     150        pelaaja.Position = paikka; 
     151        pelaaja.Mass = 4.0; 
     152        // AddCollisionHandler(pelaaja1, "tikkaat", delegate(PhysicsObject tormaaja, PhysicsObject kohde) { pelaaja1.StopVertical(); }); 
     153        Add(pelaaja); 
     154 
     155        pelaaja.Weapon = new PlasmaCannon (30, 10); 
     156        pelaaja.Weapon.Ammo.Value = 1000; 
     157        pelaaja.Weapon.ProjectileCollision = AmmusOsui; 
     158        pelaaja. 
     159        Timer onkoTikkaillaAjastin = new Timer(); 
     160        onkoTikkaillaAjastin.Interval = 0.1; 
     161        onkoTikkaillaAjastin.Timeout += delegate 
     162        { 
     163                if (GetObjectsAt(pelaaja.Position, "tikkaat", pelaaja.Width / 2).Count > 0) 
     164            { 
     165                // pelaaja1.StopVertical(); 
     166                pelaaja.IgnoresGravity = true; 
     167                pelaaja.poisTikkailtaNappaimet.Disable(); 
     168                pelaaja.tikkaillaNappaimet.Enable(); 
     169            } 
     170            else 
     171            { 
     172                pelaaja.IgnoresGravity = false; 
     173                pelaaja.poisTikkailtaNappaimet.Enable(); 
     174                pelaaja.tikkaillaNappaimet.Disable(); 
     175            } 
     176        }; 
     177        onkoTikkaillaAjastin.Start(); 
     178 
     179        AssaultRifle ase = new AssaultRifle(20, 5); 
     180        ase.ProjectileCollision = AmmusOsui; 
     181        PlasmaCannon plasmaTykki = new PlasmaCannon(20, 5); 
     182        plasmaTykki.ProjectileCollision = AmmusOsui; 
     183        Cannon tykki = new Cannon(50, 10); 
     184        tykki.ProjectileCollision = AmmusOsui; 
     185        Grenade kranaatti = new Grenade(4.0); 
     186        ase.InfiniteAmmo = true; 
     187        plasmaTykki.InfiniteAmmo = true; 
     188        tykki.InfiniteAmmo = true; 
     189    } 
     190 
     191    
     192 
     193    void AmmuAseella(PlatformCharacter pelaaja) 
     194    { 
     195        PhysicsObject ammus = pelaaja.Weapon.Shoot(); 
     196 
     197        if (ammus != null) 
     198        { 
     199            ammus.Size *= 3; 
     200            ammus.Image = luodinKuva; 
     201            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     202        } 
     203    } 
     204 
     205    void HeitaKranaatti(PlatformCharacter pelaaja) 
     206    { 
     207        Grenade kranu = new Grenade(4.0); 
     208        ClusterGrenade kranaatti = new ClusterGrenade(4.0, 2); 
     209        kranaatti.NumberOfClusters = 6; 
     210        pelaaja.Throw(kranu, Angle.FromDegrees(30), 10000); 
     211        kranu.Explosion.ShockwaveReachesObject += KranaattiOsui; 
     212        Add(kranaatti); 
     213    }  
     214 
     215 
     216    void KranaattiOsui(IPhysicsObject rajahdyksenKohde, Vector v) 
     217    { 
     218        rajahdyksenKohde.Destroy(); 
     219    } 
     220 
     221    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     222    { 
     223        ammus.Destroy(); 
     224        if (kohde == pelaaja1) 
     225        { 
     226            elamaLaskuri1.Value -= 3; 
     227        } 
     228 
     229        if (kohde == pelaaja2) 
     230        { 
     231            elamalaskuri2.Value -= 3; 
     232        } 
    89233    } 
    90234 
    91235    void LisaaNappaimet() 
    92236    { 
     237        pelaaja1.tikkaillaNappaimet = ControlContext.CreateSubcontext(); 
     238        pelaaja1.poisTikkailtaNappaimet = ControlContext.CreateSubcontext(); 
     239        pelaaja2.tikkaillaNappaimet = ControlContext.CreateSubcontext(); 
     240        pelaaja2.poisTikkailtaNappaimet = ControlContext.CreateSubcontext(); 
     241 
    93242        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
    94243        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     
    96245        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); 
    97246        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus); 
    98         Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
     247        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus).InContext(pelaaja1.poisTikkailtaNappaimet); 
     248 
     249        Keyboard.Listen(Key.Up, ButtonState.Down, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja1, 500.0).InContext(pelaaja1.tikkaillaNappaimet); 
     250        Keyboard.Listen(Key.Down, ButtonState.Down, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja1, -500.0).InContext(pelaaja1.tikkaillaNappaimet); 
     251        Keyboard.Listen(Key.Up, ButtonState.Released, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja1, 0.0).InContext(pelaaja1.tikkaillaNappaimet); 
     252        Keyboard.Listen(Key.Down, ButtonState.Released, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja1, 0.0).InContext(pelaaja1.tikkaillaNappaimet); 
     253 
     254        Keyboard.Listen(Key.O, ButtonState.Down, Tahtaa, "Tähtää ylös", pelaaja1.Weapon, Angle.FromDegrees(1)); 
     255        Keyboard.Listen(Key.L, ButtonState.Down, Tahtaa, "Tähtää alas", pelaaja1.Weapon, Angle.FromDegrees(-1)); 
     256        Keyboard.Listen(Key.M, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1); 
     257        Keyboard.Listen(Key.G, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2); 
    99258 
    100259        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus); 
    101260        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja2, nopeus); 
    102         Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus); 
    103  
    104         ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); 
    105  
    106         ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus); 
    107         ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus); 
    108         ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
    109  
    110         PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); 
     261        Keyboard.Listen(Key.W, ButtonState.Down, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja2, 500.0).InContext(pelaaja2.tikkaillaNappaimet); 
     262        Keyboard.Listen(Key.S, ButtonState.Down, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja2, -500.0).InContext(pelaaja2.tikkaillaNappaimet); 
     263        Keyboard.Listen(Key.W, ButtonState.Released, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja2, 0.0).InContext(pelaaja2.tikkaillaNappaimet); 
     264        Keyboard.Listen(Key.S, ButtonState.Released, LiikkuuTikkailla, "Pelaaja liikkuu tikkailla", pelaaja2, 0.0).InContext(pelaaja2.tikkaillaNappaimet); 
     265        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus).InContext(pelaaja2.poisTikkailtaNappaimet); ; 
     266        Keyboard.Listen(Key.Y, ButtonState.Down, Tahtaa, "Tähtää ylös", pelaaja2.Weapon, Angle.FromDegrees(1)); 
     267        Keyboard.Listen(Key.H, ButtonState.Down, Tahtaa, "Tähtää alas", pelaaja2.Weapon, Angle.FromDegrees(1)); 
     268    } 
     269 
     270    void LiikkuuTikkailla(Pelaaja pelaaja, double nopeus) 
     271    { 
     272        pelaaja.Velocity = new Vector(0, nopeus); 
     273    } 
     274 
     275    void Tahtaa(Weapon ase, Angle kulma) 
     276    { 
     277        ase.Angle += kulma; 
    111278    } 
    112279 
    113280    void Liikuta(PlatformCharacter hahmo, double nopeus) 
    114281    { 
    115         hahmo.Walk(nopeus ); 
     282        hahmo.Walk(nopeus); 
    116283    } 
    117284 
     
    120287        hahmo.Jump(nopeus); 
    121288    } 
    122  
    123     void TormaaAseeseen(PhysicsObject hahmo, PhysicsObject tahti) 
    124     { 
    125         maaliAani.Play(); 
    126         MessageDisplay.Add("You're getting closer to their base!"); 
    127         tahti.Destroy(); 
    128     } 
    129289} 
     290 
  • 2013/26/OskariN/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1Content/Tasohyppelypeli1Content.contentproj

    r4213 r4246  
    5151      <Processor>SoundEffectProcessor</Processor> 
    5252    </Compile> 
    53     <Compile Include="pelitausta.txt"> 
    54       <SubType>Designer</SubType> 
    55       <Name>pelitausta</Name> 
    56       <Importer>TextFileImporter</Importer> 
    57       <Processor>TextFileContentProcessor</Processor> 
    58     </Compile> 
    59   </ItemGroup> 
    60   <ItemGroup> 
    61     <Compile Include="player.png"> 
    62       <Name>player</Name> 
    63       <Importer>TextureImporter</Importer> 
    64       <Processor>TextureProcessor</Processor> 
    65     </Compile> 
    6653  </ItemGroup> 
    6754  <ItemGroup> 
     
    7360  </ItemGroup> 
    7461  <ItemGroup> 
    75     <Compile Include="player3.png"> 
    76       <Name>player3</Name> 
    77       <Importer>TextureImporter</Importer> 
    78       <Processor>TextureProcessor</Processor> 
    79     </Compile> 
    80   </ItemGroup> 
    81   <ItemGroup> 
    82     <Compile Include="player2.png"> 
    83       <Name>player2</Name> 
     62    <Compile Include="pelaaja2 %282%29.png"> 
     63      <Name>pelaaja2 %282%29</Name> 
    8464      <Importer>TextureImporter</Importer> 
    8565      <Processor>TextureProcessor</Processor> 
     
    9474  </ItemGroup> 
    9575  <ItemGroup> 
    96     <Compile Include="pelaaja2.png"> 
    97       <Name>pelaaja2</Name> 
     76    <Compile Include="pelitausta.txt"> 
     77      <Name>pelitausta</Name> 
     78      <Importer>TextFileImporter</Importer> 
     79      <Processor>TextFileContentProcessor</Processor> 
     80    </Compile> 
     81  </ItemGroup> 
     82  <ItemGroup> 
     83    <Compile Include="player3.png"> 
     84      <Name>player3</Name> 
    9885      <Importer>TextureImporter</Importer> 
    9986      <Processor>TextureProcessor</Processor> 
     87    </Compile> 
     88  </ItemGroup> 
     89  <ItemGroup> 
     90    <Compile Include="luoti.png"> 
     91      <Name>luoti</Name> 
     92      <Importer>TextureImporter</Importer> 
     93      <Processor>TextureProcessor</Processor> 
     94    </Compile> 
     95  </ItemGroup> 
     96  <ItemGroup> 
     97    <Compile Include="game music.mp3"> 
     98      <Name>game music</Name> 
     99      <Importer>Mp3Importer</Importer> 
     100      <Processor>SongProcessor</Processor> 
    100101    </Compile> 
    101102  </ItemGroup> 
Note: See TracChangeset for help on using the changeset viewer.