Changeset 4305


Ignore:
Timestamp:
2013-06-28 12:08:43 (10 years ago)
Author:
sakivima
Message:

Talletus.

Location:
2013/26/SakuK/kaksintastelut/kaksintastelut
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2013/26/SakuK/kaksintastelut/kaksintastelut/kaksintastelut/kaksintastelut.cs

    r4262 r4305  
    99public class kaksintastelut : PhysicsGame 
    1010{ 
    11     PhysicsObject pelaaja1; 
    12     PhysicsObject pelaaja2; 
    13      
     11    PlatformCharacter pelaaja1; 
     12    PlatformCharacter pelaaja2; 
     13 
     14    Image hahmokuva = LoadImage("hahmopaahenkilo"); 
     15    Image hahmokuva2 = LoadImage("hahmopaahenkilo2"); 
     16 
     17    DoubleMeter elamaLaskuri1; 
     18    DoubleMeter elamaLaskuri2; 
     19    IntMeter pisteLaskuri1 = new IntMeter(0, 0, 5); 
     20    IntMeter pisteLaskuri2 = new IntMeter(0, 0, 5); 
    1421 
    1522    public override void Begin() 
    1623    { 
    17         Gravity = new Vector(0, -100); 
    18   //      pelaaja1 = new PhysicsObject( 40, 40 ); 
    19   //Add( pelaaja1 ); 
    20   //pelaaja2 = new PhysicsObject( 40, 40 ); 
    21   //Add( pelaaja2 ); 
    22    
    23   ControllerOne.Listen( Button.DPadLeft,  ButtonState.Down,  
    24     LiikutaPelaajaa, null, new Vector( -1000, 0 ), pelaaja1 ); 
    25   ControllerOne.Listen( Button.DPadRight, ButtonState.Down,  
    26     LiikutaPelaajaa, null, new Vector( 1000, 0 ),  pelaaja1 ); 
    27   ControllerOne.Listen( Button.DPadUp,    ButtonState.Down,  
    28     LiikutaPelaajaa, null, new Vector( 0, 1000 ),  pelaaja1 ); 
    29   ControllerOne.Listen( Button.DPadDown,  ButtonState.Down,  
    30     LiikutaPelaajaa, null, new Vector( 0, -1000 ), pelaaja1 ); 
    31    
    32   ControllerTwo.Listen( Button.DPadLeft,  ButtonState.Down,  
    33     LiikutaPelaajaa, null, new Vector( -1000, 0 ), pelaaja2 ); 
    34   ControllerTwo.Listen( Button.DPadRight, ButtonState.Down,  
    35     LiikutaPelaajaa, null, new Vector( 1000, 0 ),  pelaaja2 ); 
    36   ControllerTwo.Listen( Button.DPadUp,    ButtonState.Down,  
    37     LiikutaPelaajaa, null, new Vector( 0, 1000 ),  pelaaja2 ); 
    38   ControllerTwo.Listen( Button.DPadDown,  ButtonState.Down,  
    39     LiikutaPelaajaa, null, new Vector( 0, -1000 ), pelaaja2 ); 
    40  
    41         
    42     } 
     24        AloitaPeli(); 
     25    } 
     26 
     27    public void AloitaPeli() 
     28    { 
     29        ClearAll(); 
     30        Gravity = new Vector(0, -900); 
     31        //      pelaaja1 = new PhysicsObject( 40, 40 ); 
     32        //Add( pelaaja1 ); 
     33        //pelaaja2 = new PhysicsObject( 40, 40 ); 
     34        //Add( pelaaja2 ); 
     35        LuoKentta(); 
     36 
     37        LuoElamaLaskuri(); 
     38 
     39        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Kavele, null, -1000.0, pelaaja1); 
     40        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Kavele, null, 1000.0, pelaaja1); 
     41        ControllerOne.Listen(Button.DPadUp, ButtonState.Down, Hyppaa, null, 1000.0, pelaaja1); 
     42        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaTatilla, "Liikuta pelaajaa tattia pyörittämällä.", pelaaja1); 
     43        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Hyppää", 1000.0, pelaaja1); 
     44         
     45        ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1); 
     46 
     47 
     48 
     49        ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, 
     50          Kavele, null, -1000.0, pelaaja2); 
     51        ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, 
     52          Kavele, null, 1000.0, pelaaja2); 
     53        ControllerTwo.Listen(Button.DPadUp, ButtonState.Down, 
     54          Hyppaa, null, 1000.0, pelaaja2); 
     55        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, 
     56      LiikutaTatilla, "Liikuta pelaajaa tattia pyörittämällä.", pelaaja2); 
     57        ControllerTwo.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Hyppää", 1000.0, pelaaja2); 
     58        ControllerTwo.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2); 
     59 
     60 
     61 
     62        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); 
     63        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
     64 
     65    } 
     66 
     67    void Hyppaa(double nopeus, PlatformCharacter pelaaja) 
     68    { 
     69        pelaaja.Jump(nopeus); 
     70    } 
     71 
     72    void AmmuAseella(PlatformCharacter pelaaja) 
     73    { 
     74        PhysicsObject ammus = pelaaja.Weapon.Shoot(); 
     75 
     76        if (ammus != null) 
     77        { 
     78            //ammus.Size *= 3; 
     79            //ammus.Image = ... 
     80            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     81        } 
     82    } 
     83 
     84 
     85    void Kavele(double nopeus, PlatformCharacter pelaaja) 
     86    { 
     87        pelaaja.Walk(nopeus); 
     88    } 
     89 
     90    void LiikutaTatilla(AnalogState a, PlatformCharacter pelaaja) 
     91    { 
     92        Vector tatinAsento = a.StateVector; 
     93        pelaaja.Walk(tatinAsento.X * 1000); 
     94 
     95    } 
     96 
    4397 
    4498    void LuoPelaaja1(Vector paikka, double leveys, double korkeus, PhysicsObject pelaaja) 
    4599    { 
    46         pelaaja1 = new PhysicsObject(40, 20); 
     100        pelaaja1 = new PlatformCharacter(40, 20); 
    47101        pelaaja1.Shape = Shape.Rectangle; 
    48102        pelaaja1.Mass = 10.0; 
    49103        pelaaja1.Position = paikka; 
     104        pelaaja1.Image = hahmokuva; 
    50105        Add(pelaaja1); 
    51     } 
    52  
    53  
    54    void LuoKentta() 
    55     { 
    56       //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä. 
    57       ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kaksintaistelu"); 
    58       ruudut.SetTileMethod("55FF11", LuoPelaaja1, pelaaja1); 
    59       ruudut.SetTileMethod("FF000C", LuoPelaaja2, pelaaja2); 
    60       ruudut.SetTileMethod("FF6A00", LuoTaso); 
    61       ruudut.Execute(40, 40); 
    62  
    63     } 
    64    void LuoTaso(Vector paikka, double leveys, double Korkerus) 
    65    { 
    66    } 
    67    void LiikutaPelaajaa(Vector paikka, PhysicsObject Pelaaja ) 
    68    { 
    69        Pelaaja.Push(paikka); 
    70    } 
    71    void LuoPelaaja2(Vector paikka, double leveys, double korkeus, PhysicsObject pelaaja) 
    72    { 
    73    } 
     106        pelaaja1.Weapon = new AssaultRifle(30, 10); 
     107        pelaaja1.Weapon.Ammo.Value = 1000; 
     108        pelaaja1.Weapon.ProjectileCollision = AmmusOsui; 
     109    } 
     110 
     111 
     112    void LuoKentta() 
     113    { 
     114        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä. 
     115        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kaksintaistelu"); 
     116        ruudut.SetTileMethod("55FF11", LuoPelaaja1, pelaaja1); 
     117        ruudut.SetTileMethod("FF000C", LuoPelaaja2, pelaaja2); 
     118        ruudut.SetTileMethod("FF6A00", LuoTaso); 
     119        ruudut.SetTileMethod("7F0000", LuoSeina); 
     120        ruudut.Execute(40, 40); 
     121 
     122        Level.CreateBorders(); 
     123 
     124        Level.BackgroundColor = Color.Black; 
     125 
     126        LuoPistelaskuri(pisteLaskuri1, Screen.Left + 100); 
     127        LuoPistelaskuri(pisteLaskuri2, Screen.Right - 100); 
     128    } 
     129 
     130    void LuoSeina(Vector paikka, double leveys, double Korkerus) 
     131    { 
     132        PhysicsObject taso = new PhysicsObject(leveys, Korkerus); 
     133        taso.MakeStatic(); 
     134        taso.Position = paikka; 
     135        Add(taso); 
     136    } 
     137 
     138    void LuoTaso(Vector paikka, double leveys, double Korkerus) 
     139    { 
     140        PhysicsObject taso = new PhysicsObject(leveys, Korkerus); 
     141        taso.MakeStatic(); 
     142        taso.Position = paikka; 
     143        Add(taso); 
     144    } 
     145 
     146    void LiikutaPelaajaa(Vector paikka, PhysicsObject Pelaaja) 
     147    { 
     148        Pelaaja.Push(paikka); 
     149    } 
     150    void LuoPelaaja2(Vector paikka, double leveys, double korkeus, PhysicsObject pelaaja) 
     151    { 
     152        pelaaja2 = new PlatformCharacter(40, 20); 
     153        pelaaja2.Shape = Shape.Rectangle; 
     154        pelaaja2.Mass = 10.0; 
     155        pelaaja2.Position = paikka; 
     156        pelaaja2.Image = hahmokuva2; 
     157        Add(pelaaja2); 
     158        pelaaja2.Weapon = new AssaultRifle(30, 10); 
     159        pelaaja2.Weapon.Ammo.Value = 1000; 
     160        pelaaja2.Weapon.ProjectileCollision = AmmusOsui; 
     161    } 
     162 
     163    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde) 
     164    { 
     165        ammus.Destroy(); 
     166 
     167        if (kohde == pelaaja1) 
     168        { 
     169            elamaLaskuri1.Value--; 
     170        } 
     171        if (kohde == pelaaja2) 
     172        { 
     173            elamaLaskuri2.Value--; 
     174        } 
     175    } 
     176 
     177    void LuoPistelaskuri(IntMeter pisteLaskuri,  double x) 
     178    { 
     179        Label pisteNaytto = new Label(); 
     180        pisteNaytto.X = x; 
     181        pisteNaytto.Y = Screen.Top - 100; 
     182        pisteNaytto.TextColor = Color.Black; 
     183        pisteNaytto.Color = Color.White; 
     184 
     185        pisteLaskuri.UpperLimit += delegate { Exit(); }; 
     186        pisteNaytto.BindTo(pisteLaskuri); 
     187        Add(pisteNaytto); 
     188    } 
     189 
     190    void LuoElamaLaskuri() 
     191    { 
     192        elamaLaskuri1 = new DoubleMeter(10); 
     193        elamaLaskuri1.MaxValue = 10; 
     194        elamaLaskuri1.LowerLimit += delegate { 
     195 
     196            ElamaLoppui(pelaaja1); 
     197            pisteLaskuri2.Value++; 
     198            ControllerOne.Vibrate(1.5, 1.5, 1.5, 1.5, 0.5); 
     199        }; 
     200        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     201        elamaPalkki.X = Screen.Left + 150; 
     202        elamaPalkki.Y = Screen.Top - 20; 
     203        elamaPalkki.BindTo(elamaLaskuri1); 
     204        Add(elamaPalkki); 
     205 
     206        elamaLaskuri2 = new DoubleMeter(10); 
     207        elamaLaskuri2.MaxValue = 10; 
     208        elamaLaskuri2.LowerLimit += delegate { 
     209            ElamaLoppui(pelaaja2); 
     210            pisteLaskuri1.Value++; 
     211            ControllerTwo.Vibrate(1.5, 1.5, 1.5, 1.5, 0.5); 
     212        }; 
     213        ProgressBar elamaPalkki2 = new ProgressBar(150, 20); 
     214        elamaPalkki2.X = Screen.Right - 150; 
     215        elamaPalkki2.Y = Screen.Top - 20; 
     216        elamaPalkki2.BindTo(elamaLaskuri2); 
     217        Add(elamaPalkki2); 
     218    } 
     219 
     220    void ElamaLoppui(PlatformCharacter pelaaja) 
     221    { 
     222        pelaaja.Destroy(); 
     223 
     224        Timer.SingleShot(2, AloitaPeli); 
     225    } 
    74226} 
  • 2013/26/SakuK/kaksintastelut/kaksintastelut/kaksintastelutContent/kaksintastelutContent.contentproj

    r4262 r4305  
    8888    </Compile> 
    8989  </ItemGroup> 
     90  <ItemGroup> 
     91    <Compile Include="PopedaPitkaKuumaKesa.mp3"> 
     92      <Name>PopedaPitkaKuumaKesa</Name> 
     93      <Importer>Mp3Importer</Importer> 
     94      <Processor>SongProcessor</Processor> 
     95    </Compile> 
     96  </ItemGroup> 
    9097  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    9198  <!--  To modify your build process, add your task inside one of the targets below and uncomment it.  
Note: See TracChangeset for help on using the changeset viewer.