Changeset 4639


Ignore:
Timestamp:
2013-07-24 15:05:20 (10 years ago)
Author:
novaanan
Message:

Talletus.

Location:
2013/30/NoelV/shooter/shooter
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2013/30/NoelV/shooter/shooter/shooter/shooter.cs

    r4582 r4639  
    99public class shooter : PhysicsGame 
    1010{ 
     11    DoubleMeter elamaLaskuri; 
     12    IntMeter pisteLaskuri; 
     13    IntMeter vihollisLaskuri; 
     14 
    1115    Image aluksenKuva = LoadImage("alus"); 
    1216    Image vihollisenKuva = LoadImage("vihollinen"); 
    13  
     17    PhysicsObject alus; 
     18    PhysicsObject enkka; 
     19 
     20    PhysicsObject ammus; 
    1421 
    1522    public override void Begin() 
    1623    { 
    17         PhysicsObject alus = new PhysicsObject(100, 100); 
     24        LuoPelaaja(); 
     25 
     26 
     27        LuoVihollinen(new Vector(0, 450)); 
     28 
     29        //Surfaces reunat = Level.CreateBorders(1.3, true); 
     30 
     31        Level.BackgroundColor = Color.Gray; 
     32 
     33        Timer vihunLuontiAjastin = new Timer(); 
     34        vihunLuontiAjastin.Interval = 0.5; 
     35        vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 
     36        vihunLuontiAjastin.Start(); 
     37 
     38        LuoElamaLaskuri(); 
     39        LuoPisteLaskuri(); 
     40 
     41 
     42        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ampuu", alus); 
     43        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     44 
     45        Level.Background.CreateGradient(Color.Red, Color.Blue); 
     46        Camera.ZoomToLevel(); 
     47    } 
     48 
     49    private void LuoPelaaja() 
     50    { 
     51        alus = new PhysicsObject(100, 100); 
    1852        alus.Image = aluksenKuva; 
    1953        Add(alus); 
    20  
     54        Mouse.IsCursorVisible = true; 
     55        alus.CollisionIgnoreGroup = 2; 
     56        alus.MakeStatic(); 
     57        Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 
     58        alus.Position = new Vector(0, -350); 
     59        alus.Tag = "alus"; 
     60        alus.Restitution = 1.5; 
     61        alus.CanRotate = false; 
     62 
     63        AddCollisionHandler(alus, "vihu", OsuuViholliseen); 
     64 
     65 
     66 
     67    } 
     68 
     69 
     70    void OsuuViholliseen(PhysicsObject pelaaja, PhysicsObject vihu) 
     71    { 
     72        elamaLaskuri.Value--; 
     73 
     74    } 
     75 
     76 
     77    private void LuoVihollinen(Vector paikka) 
     78    { 
    2179        PhysicsObject vihollinen = new PhysicsObject(100, 100); 
    22         vihollinen.Image =  
    23         // TODO: Kirjoita ohjelmakoodisi tähän 
    24  
    25         Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); 
     80        vihollinen.Position = paikka; 
     81        vihollinen.Image = vihollisenKuva; 
     82 
     83        Add(vihollinen); 
     84        Vector impulssi = new Vector(0.0, -10000.0); 
     85        vihollinen.Hit(impulssi); 
     86        vihollinen.Restitution = 1.5; 
     87        //vihollinen.Velocity = 100; 
     88        vihollinen.Tag = "vihu"; 
     89 
     90        vihollinen.MoveTo(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Bottom - 250), 500, delegate { vihollisLaskuri.Value++; }); 
     91        //FollowerBrain seuraajanAivot = new FollowerBrain("alus"); 
     92        //seuraajanAivot.Speed = 500.0; 
     93        //seuraajanAivot.DistanceClose = 200; 
     94        //seuraajanAivot.TargetClose += delegate 
     95        //{ 
     96        //    seuraajanAivot.Active = false; 
     97        //    vihollinen.Hit(new Vector(0, -5000)); 
     98 
     99        //}; 
     100 
     101        //vihollinen.Brain = seuraajanAivot; 
     102 
     103 
     104    } 
     105 
     106 
     107 
     108    void Ammu(PhysicsObject ampuja) 
     109    { 
     110        if (ampuja.IsDestroyed) return; 
     111        ammus = new PhysicsObject(5, 15); 
     112        ammus.Color = Color.OrangeRed; 
     113        ammus.LifetimeLeft = TimeSpan.FromSeconds(4); 
     114        ammus.Position = ampuja.Position; 
     115        ammus.CollisionIgnoreGroup = ampuja.CollisionIgnoreGroup; 
     116        Add(ammus); 
     117 
     118        ammus.Hit(Vector.FromLengthAndAngle(1000, ampuja.Angle + Angle.FromDegrees(90))); 
     119        ammus.Angle = ampuja.Angle; 
     120        ammus.Tag = "ammus"; 
     121        AddCollisionHandler(ammus, AmmusOsuu); 
     122    } 
     123 
     124    void AmmusOsuu(PhysicsObject ammus, PhysicsObject kohde) 
     125    { 
     126        ammus.Destroy(); 
     127        if (kohde.Tag.Equals("vihu")) 
     128        { 
     129            Explosion rajahdys = new Explosion(100); 
     130            rajahdys.Position = kohde.Position; 
     131            rajahdys.ShockwaveColor = Color.Transparent; 
     132            Add(rajahdys); 
     133            kohde.Destroy(); 
     134            pisteLaskuri.Value++; 
     135        } 
     136    } 
     137 
     138 
     139    void LiikutaPelaajaa(Vector vektori) 
     140    { 
     141        alus.Push(vektori); 
     142    } 
     143 
     144    void KuunteleLiiketta(AnalogState hiirenTila) 
     145    { 
     146        alus.X = Mouse.PositionOnWorld.X; 
     147 
     148        Vector hiirenLiike = hiirenTila.MouseMovement; 
     149    } 
     150 
     151    void LuoPisteLaskuri() 
     152    { 
     153        pisteLaskuri = new IntMeter(0, 0, int.MaxValue); 
     154 
     155        Label pisteNaytto = new Label(); 
     156        pisteNaytto.X = Screen.Right - 100; 
     157        pisteNaytto.Y = Screen.Top - 100; 
     158        pisteNaytto.TextColor = Color.Orange; 
     159        pisteNaytto.Color = Color.Blue; 
     160        pisteNaytto.IntFormatString = "Pisteet: {00}"; 
     161        pisteNaytto.BindTo(pisteLaskuri); 
     162        Add(pisteNaytto); 
     163 
     164        vihollisLaskuri = new IntMeter(0, 0, 5); 
     165        vihollisLaskuri.UpperLimit += ElamaLoppui; 
     166 
     167        Label vihollisNaytto = new Label(); 
     168        vihollisNaytto.X = 0; 
     169        vihollisNaytto.Y = Screen.Top - 100; 
     170        vihollisNaytto.TextColor = Color.Black; 
     171        vihollisNaytto.Color = Color.Red; 
     172        vihollisNaytto.IntFormatString = "Vihollisia pääsi läpi: {00}"; 
     173        vihollisNaytto.BindTo(vihollisLaskuri); 
     174        Add(vihollisNaytto); 
     175    } 
     176 
     177 
     178    void LuoElamaLaskuri() 
     179    { 
     180        elamaLaskuri = new DoubleMeter(10); 
     181        elamaLaskuri.MaxValue = 10; 
     182        elamaLaskuri.LowerLimit += ElamaLoppui; 
     183 
     184        ProgressBar elamaPalkki = new ProgressBar(150, 20); 
     185        elamaPalkki.X = Screen.Left + 150; 
     186        elamaPalkki.Y = Screen.Top - 20; 
     187        elamaPalkki.BindTo(elamaLaskuri); 
     188        Add(elamaPalkki); 
     189    } 
     190 
     191    void ElamaLoppui() 
     192    { 
     193        Explosion rajahdys = new Explosion(50); 
     194 
     195        rajahdys.Position = alus.Position; 
     196        Add(rajahdys); 
     197 
     198 
     199        alus.Destroy(); 
     200        MessageDisplay.Add("Hävisit pelin"); 
     201 
     202        Label teksti = new Label("PELI LOPPUI!!!"); 
     203        teksti.TextScale = new Vector(3, 3); 
     204        Add(teksti); 
     205 
    26206    } 
    27207} 
    28208 
     209 
     210 
     211 
     212 
  • 2013/30/NoelV/shooter/shooter/shooterContent/shooterContent.contentproj

    r4582 r4639  
    5252    </Compile> 
    5353  </ItemGroup> 
     54  <ItemGroup> 
     55    <Compile Include="vihollinen.png"> 
     56      <Name>vihollinen</Name> 
     57      <Importer>TextureImporter</Importer> 
     58      <Processor>TextureProcessor</Processor> 
     59    </Compile> 
     60  </ItemGroup> 
    5461  <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" /> 
    5562  <!--  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.