Changeset 3325 for 2012/26


Ignore:
Timestamp:
2012-06-28 15:01:20 (7 years ago)
Author:
sijoseha
Message:

Talletus.

Location:
2012/26/OlliL
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • 2012/26/OlliL/SpaceImpact2/SpaceImpact2/SpaceImpact2/SpaceImpact2.cs

    r3304 r3325  
    99public class SpaceImpact2 : PhysicsGame 
    1010{ 
     11    ScoreList topLista = new ScoreList(10, false, 0); 
     12   // muut att 
     13 
     14 
     15 
     16 
     17 
     18 
     19 
    1120 
    1221    Vector nopeusYlos = new Vector(0, 300); 
    1322    Vector nopeusAlas = new Vector(0, -300); 
    14  
    15     PhysicsObject alus; 
     23    Vector nopeusVasemmalle = new Vector(-300, 0); 
     24    Vector nopeusOikealle = new Vector(300, 0); 
     25 
     26    Alus alus; 
    1627    //    PhysicsObject vihu; 
    1728    PhysicsObject laser; 
     
    2132    public override void Begin() 
    2233    { 
     34        if (DataStorage.Exists("pisteet.xml")) 
     35            topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml"); 
    2336        SetWindowSize(800, 480, false); 
    24  
    25         Luokentta(); 
    26         AloitaPeli(); 
    27         AsetaOhjaimet(); 
    28  
    29         // Level.Size = new Vector(800, 480); 
    30  
    31         Level.Background.CreateStars(10000); 
    32         LuoPistelaskuri(); 
    33  
    34     } 
     37        Valikko(); 
     38         
     39 
     40 
     41    } 
     42 
     43    void Valikko() 
     44    { 
     45        ClearAll(); 
     46        MultiSelectWindow alkuValikko = new MultiSelectWindow("SPACE IMAPCT DEFENCE", 
     47            "START GAME", "HIGHSCORE", "QUIT"); 
     48        alkuValikko.DefaultCancel = 3; 
     49        alkuValikko.Color = Color.Green; 
     50        Add(alkuValikko); 
     51        alkuValikko.ItemSelected += PainettiinValikonNappia; 
     52    } 
     53 
    3554    void Luokentta() 
    3655    { 
     
    4463    void AloitaPeli() 
    4564    { 
     65        Luokentta(); 
     66        AsetaOhjaimet(); 
     67        Level.Background.CreateStars(10000); 
     68        LuoPistelaskuri(); 
     69 
    4670        Timer ajastin2 = new Timer(); 
    47         ajastin2.Interval = 1.5; 
     71        ajastin2.Interval = 0.4; 
    4872        ajastin2.Timeout += Luolaser; 
    4973        ajastin2.Start(); 
     
    6084    } 
    6185 
    62     PhysicsObject Luoalus(double x, double y) 
    63     { 
    64         alus = PhysicsObject.CreateStaticObject(112, 56); 
     86    Alus Luoalus(double x, double y) 
     87    { 
     88        //alus = PhysicsObject.CreateStaticObject(112, 56); 
     89        alus = new Alus(112, 56); 
     90        alus.elamaLaskuri.Value--; 
     91        alus.MakeStatic(); 
    6592        alus.Shape = Shape.Diamond; 
    6693        alus.Color = Color.Magenta; 
    6794        alus.CollisionIgnoreGroup = 1; 
     95        AddCollisionHandler(alus, CollisionHandler.DestroyObject); 
     96        alus.Destroyed += TopTen; 
     97        Explosion rajahdys = new Explosion(5000); 
     98        rajahdys.Position = alus.Position; 
     99        rajahdys.Speed = 5000.0; 
     100        rajahdys.Force = 0; 
     101        rajahdys.ShockwaveColor = Color.Orange; 
     102        Add(rajahdys); 
    68103        alus.X = x; 
    69104        alus.Y = y; 
    70105        Add(alus); 
    71106        return alus; 
     107    } 
     108 
     109    void TopTen() 
     110    { 
     111        HighScoreWindow topIkkuna = new HighScoreWindow( 
     112                             "Parhaat pisteet", 
     113                             "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:", 
     114                             topLista, pisteLaskuri.Value); 
     115        topIkkuna.Closed += TallennaPisteet; 
     116        Add(topIkkuna); 
     117         
     118 
     119    } 
     120    void ParhaatPisteet() 
     121    { 
     122        HighScoreWindow topIkkuna = new HighScoreWindow( 
     123            "Parhaat pisteet", 
     124            topLista); 
     125        topIkkuna.Closed += TallennaPisteet; 
     126        Add(topIkkuna); 
     127    } 
     128 
     129    void TallennaPisteet(Window sender) 
     130    { 
     131        DataStorage.Save<ScoreList>(topLista, "pisteet.xml"); 
     132        Valikko(); 
    72133    } 
    73134 
     
    80141        vihu.X = x; 
    81142        vihu.Y = y; 
     143        vihu.Destroyed += delegate { pisteLaskuri.Value++; }; 
    82144        vihu.CanRotate = false; 
    83145        vihu.Hit(new Vector(-100, 0)); 
    84146        Add(vihu); 
    85147        vihut.Add(vihu); 
    86         AddCollisionHandler(vihu, CollisionHandler.DestroyObject); 
     148        AddCollisionHandler(vihu, CollisionHandler.DestroyBoth); 
    87149        AddCollisionHandler(vihu, delegate(PhysicsObject v, PhysicsObject kohde) { vihut.Remove(v); }); 
     150        FollowerBrain seuraajanAivot = new FollowerBrain(alus); 
     151        seuraajanAivot.Speed = 300;                 // Millä nopeudella kohdetta seurataan 
     152        seuraajanAivot.DistanceFar = 600;           // Etäisyys jolla aletaan seurata kohdetta 
     153        seuraajanAivot.DistanceClose = 200;         // Etäisyys jolloin ollaan lähellä kohdetta 
     154        seuraajanAivot.StopWhenTargetClose = true;  // Pysähdytään kun ollaan lähellä kohdetta 
    88155        return vihu; 
    89156    } 
     
    98165        AddCollisionHandler(laser, "vihu", delegate(PhysicsObject ammus, PhysicsObject vihu) 
    99166        { 
    100             Explosion rajahdys = new Explosion(100); 
     167            Explosion rajahdys = new Explosion(400); 
    101168            rajahdys.Position = vihu.Position; 
    102169            rajahdys.Speed = 500.0; 
     
    126193        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta alusta alas", alus, nopeusAlas); 
    127194        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, alus, Vector.Zero); 
     195         
     196        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta alusta vasemmalle", alus, nopeusVasemmalle); 
     197        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, alus, Vector.Zero); 
     198        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta alusta oikealle", alus, nopeusOikealle); 
     199        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, alus, Vector.Zero); 
     200         
    128201 
    129202    } 
     
    143216 
    144217        alus.Velocity = nopeus; 
     218 
    145219    } 
    146220 
     
    154228        while (vihulistalaskuri < vihut.Count) 
    155229        { 
    156             if (Math.Abs(vihut[vihulistalaskuri].X - x) > 112) 
     230            if (Math.Abs(vihut[vihulistalaskuri].X - x) > 1) 
    157231            { 
    158232                vihulistalaskuri++; 
     
    196270 
    197271    } 
     272    void PainettiinValikonNappia(int valinta) 
     273    { 
     274        switch (valinta) 
     275        { 
     276            case 0: 
     277                AloitaPeli(); 
     278                break; 
     279            case 1: 
     280                ParhaatPisteet(); 
     281                break; 
     282            case 2: 
     283                Exit(); 
     284                break; 
     285        } 
     286         
     287 
     288    } 
     289    class Alus : PhysicsObject 
     290    { 
     291        public IntMeter elamaLaskuri = new IntMeter(3, 0, 3); 
     292 
     293        public Alus(double leveys, double korkeus) 
     294            : base(leveys, korkeus) 
     295        { 
     296            elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 
     297        } 
     298    } 
     299    
     300 
     301 
     302 
     303 
    198304 
    199305    public IntMeter pisteLaskuri { get; set; } 
     306 
     307    public double pisteet { get; set; } 
    200308} 
    201  
     309    
     310 
     311 
     312 
     313 
  • 2012/26/OlliL/SpaceImpact2/SpaceImpact2/SpaceImpact2/SpaceImpact2.csproj

    r3226 r3325  
    111111  </ItemGroup> 
    112112  <ItemGroup> 
     113    <Compile Include="alkuValikko.cs" /> 
    113114    <Compile Include="Ohjelma.cs" /> 
    114115    <Compile Include="SpaceImpact2.cs" /> 
  • 2012/26/OlliL/SpaceImpact2/SpaceImpact2/SpaceImpact2/Windows Phone Copy of SpaceImpact2.csproj

    r3226 r3325  
    7373  </ItemGroup> 
    7474  <ItemGroup> 
     75    <Compile Include="alkuValikko.cs" /> 
    7576    <Compile Include="Ohjelma.cs" /> 
    7677    <Compile Include="SpaceImpact2.cs" /> 
Note: See TracChangeset for help on using the changeset viewer.