Changeset 2301 for 2011/26


Ignore:
Timestamp:
2011-06-29 14:46:52 (8 years ago)
Author:
jojumuho
Message:

Talletus.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2011/26/JouniM/MatoPeli/MatoPeli/MatoPeli/Peli.cs

    r2242 r2301  
    1212    PhysicsObject Saalis; 
    1313 
     14    DoubleMeter alaspainLaskuri; 
     15 
     16    Timer ajastin; 
     17    Timer sadeajastin; 
     18    Timer aikaLaskuri; 
     19 
     20    bool kuolematon = false; 
     21 
    1422    public override void Begin() 
    1523    { 
    1624        // TODO: Kirjoita ohjelmakoodisi tähän 
     25         
     26        ajastin = new Timer(); 
     27        ajastin.Interval = 0.1; 
     28        ajastin.Trigger += LiikutaMatoa; 
     29 
     30 
     31        sadeajastin = new Timer(); 
     32        sadeajastin.Trigger += LuoVihollinen; 
     33 
     34        aikaLaskuri = new Timer(); 
     35        aikaLaskuri.Interval = 0.1; 
     36        aikaLaskuri.Trigger += LaskeAlaspain; 
     37 
     38         
     39 
     40 
     41Aloitapeli(); 
     42 
     43 
     44  
     45 
     46 
     47    } 
     48 
     49    private void Aloitapeli() 
     50    { 
     51        sadeajastin.Interval = 1.1; 
    1752        LuoKentta(); 
    1853        LuoMato(); 
    1954        AsetaOhjaimet(); 
    20  
    21         Timer ajastin = new Timer(); 
    22         ajastin.Interval = 0.1; 
    23         ajastin.Trigger += LiikutaMatoa; 
    24         ajastin.Start(); 
    25  
    26         Timer sadeajastin = new Timer(); 
    27         ajastin.Interval = 0.1; 
    28         ajastin.Trigger += Vihollinen; 
    29         ajastin.Start(); 
    30  
    31  
    3255        LuoSaalis(20, 30); 
    3356        LuoLaskuri(); 
    34  
    35  
    36         LuoVihollinen(); 
     57        LuoAikaLaskuri(); 
     58        ajastin.Start(); 
     59        sadeajastin.Start(); 
     60        aikaLaskuri.Start(); 
    3761 
    3862 
     
    5074    { 
    5175     Mato = new PhysicsObject(30.0, 40.0); 
     76     Mato.Tag = "Mato"; 
    5277     Add(Mato); 
    53      Mato.Shape = Shape.Star; 
    54  
    55  
    56       
    57     } 
     78     Mato.Shape = Shape.Heart; 
     79     AddCollisionHandler(Mato, KasitteleMadonTormays); 
     80 
     81    } 
     82 
     83    void KasitteleMadonTormays(PhysicsObject Mato, PhysicsObject kohde) 
     84 
     85    
     86    { 
     87 
     88     if (kohde.Tag.ToString() == "saalis") 
     89     { 
     90         kohde.Destroy(); 
     91         Saalis_Destroyed(); 
     92     } 
     93 
     94    } 
     95 
    5896 
    5997    void AsetaOhjaimet() 
     
    6199    { 
    62100        Mouse.IsCursorVisible = true; 
    63        // Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 
    64  
     101        Keyboard.Listen(Key.G, ButtonState.Down, TuleeKuolemattomaksi,null); 
     102        Keyboard.Listen(Key.G, ButtonState.Up, Kuolemattomuusloppuu,null); 
     103        Keyboard.Listen(Key.R, ButtonState.Released, uudestaan, "aloitus"); 
     104 
     105 
     106    } 
     107 
     108 
     109     void TuleeKuolemattomaksi() 
     110      { 
     111          kuolematon = true; 
     112      } 
     113 
     114    void Kuolemattomuusloppuu() 
     115    { 
     116        kuolematon = false; 
    65117    } 
    66118 
     
    78130        Vector etaisyys = Mouse.PositionOnWorld - Mato.Position; 
    79131        Mato.MoveTo(Mouse.PositionOnWorld, etaisyys.Magnitude*1.5 ); 
    80         Mato.Angle = etaisyys.Angle; 
     132        Mato.Angle = etaisyys.Angle+Angle.RightAngle; 
    81133         
    82134    } 
     
    85137    { 
    86138        Saalis = new PhysicsObject(30, 30); 
     139        Saalis.Tag = "saalis"; 
    87140        Add(Saalis); 
    88         Saalis.Shape = Shape.Heart; 
    89         Saalis.Position = new Vector(X, Y); 
     141        Saalis.Shape = Shape.Star; 
     142        Saalis.X = RandomGen.NextDouble(Level.Left, Level.Right); 
     143        Saalis.Y = RandomGen.NextDouble(Level.Bottom, Level.Top); 
    90144        FollowerBrain karkuunSaalis = new FollowerBrain(Mato, -50); 
    91145        karkuunSaalis.Target = Mato; 
    92146        Saalis.Brain = karkuunSaalis; 
    93  
     147        //Saalis.Destroyed += new Action(Saalis_Destroyed); 
    94148        
    95149 
     
    98152 
    99153    } 
     154 
     155    void Saalis_Destroyed()   
     156    {  
     157        LuoSaalis(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top) ); 
     158        LuoSaalis(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top)); 
     159        pisteLaskuri.Value = pisteLaskuri.Value + 1; 
     160    } 
     161   
    100162    IntMeter pisteLaskuri; 
    101163 
     
    121183    } 
    122184 
    123     void LuoVihollinen() 
    124     { 
     185    void LuoVihollinen(Timer sender) 
     186    { 
     187        sender.Interval = sender.Interval-0.019; 
     188 
    125189        Vector suunta = new Vector(0, 1); 
    126     PhysicsObject Vihollinen = new PhysicsObject(new RaySegment(Vector.zero, suunta, 2000) ); 
    127     Add(Vihollinen); 
     190        
     191        Vector position; 
     192        if (RandomGen.NextBool()) 
     193        { 
     194            position = new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top); 
     195            suunta = new Vector(0.0, -1); 
     196        } 
     197 
     198        else 
     199        { 
     200            position = new Vector ( Level.Left, RandomGen.NextDouble(Level.Bottom, Level.Top)); 
     201            suunta = new Vector(1, 0); 
     202        } 
     203    PhysicsObject Vihollinen = new PhysicsObject(new RaySegment(position, suunta, 2000) ); 
     204    Vihollinen.MaximumLifetime = TimeSpan.FromSeconds(2.0); 
     205 
     206         AddCollisionHandler(Vihollinen, KasitteleVihollisenTormays); 
     207 
     208        Add(Vihollinen); 
    128209      
    129210    } 
    130211 
    131  
    132  
     212    void KasitteleVihollisenTormays(PhysicsObject Vihollinen, PhysicsObject kohde) 
     213    { 
     214 
     215        if (kohde.Tag.ToString() == "Mato" && kuolematon == false) 
     216        { 
     217            kohde.Destroy(); 
     218 
     219        } 
     220 
     221    } 
     222        
     223 
     224 
     225    void LuoAikaLaskuri() 
     226    { 
     227        alaspainLaskuri = new DoubleMeter(30); 
     228 
     229         
     230 
     231        Label aikaNaytto = new Label(); 
     232        aikaNaytto.TextColor = Color.White; 
     233        aikaNaytto.DecimalPlaces = 1; 
     234        aikaNaytto.BindTo(alaspainLaskuri); 
     235        aikaNaytto.X = 0; 
     236        aikaNaytto.Y = Screen.Top - 100; 
     237        Add(aikaNaytto); 
     238    } 
     239 
     240    void LaskeAlaspain(Timer timer) 
     241    { 
     242        alaspainLaskuri.Value -= 0.1; 
     243 
     244        if (alaspainLaskuri.Value <= 0) 
     245        { 
     246            MessageDisplay.Add("total anhilation"); 
     247            timer.Stop(); 
     248 
     249            // täydennä mitä tapahtuu, kun aika loppuu 
     250        } 
     251    } 
     252 
     253 
     254    void uudestaan() 
     255    { 
     256        ClearAll(); 
     257 
     258        Aloitapeli(); 
     259    } 
    133260 
    134261} 
Note: See TracChangeset for help on using the changeset viewer.