Changeset 1401 for 2010


Ignore:
Timestamp:
2010-07-29 11:33:20 (9 years ago)
Author:
vematata
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/vematata/SeikailuRoolipeli/Peli.cs

    r1392 r1401  
    88    Vector nopeusVasen = new Vector(-300, 0); 
    99    Vector nopeusOikea = new Vector(300, 0); 
    10     PhysicsObject pallo; 
    11     PhysicsObject pallo2; 
    12      
    13      
     10    double voima = 20; 
     11    //PhysicsObject pallo; 
    1412 
    1513    PhysicsObject hahmo; 
     
    2321    void Testi() 
    2422    { 
    25         Hahmo(0, 0); 
     23        Hahmo(-40, -40); 
    2624        Kivi(45, -100, 180); 
    2725        Kivi(50, 100, 100); 
    2826        Kivi(200, 400, 50); 
     27        Vihollinen(40, 40); 
     28        Vihollinen(-100, -100); 
    2929        Puu(40, -100, 100); 
    3030        Puu(20, -190, -20); 
    31         Seina(1000, 100, 0, 550); 
    32         Seina(1000, 100, 0, -550); 
    33         Seina(100, 1000, 550, 0); 
    34         Seina(100, 1000, -550, 0); 
     31        Level.CreateBorders(); 
    3532    } 
    3633 
    3734    void Hahmo(double x, double y) 
    3835    { 
    39         hahmo = new PhysicsObject(40,40); 
     36        hahmo = new PhysicsObject(40,20); 
    4037        hahmo.Shape = Shapes.Circle; 
    4138        hahmo.Color = Color.GreenYellow; 
    4239        hahmo.X = x; 
    4340        hahmo.Y = y; 
    44         hahmo.LinearDamping = 0.5; 
    45         Add(hahmo); 
     41        hahmo.LinearDamping = 0.95; 
     42        Vector pelaajanSuunta = Vector.FromLengthAndAngle(100.0, hahmo.Angle); 
     43         
     44        Add(hahmo,0); 
    4645 
    4746        Camera.Follow(hahmo); 
    4847        Camera.Zoom(1.5); 
     48    } 
     49 
     50    PhysicsObject Vihollinen(double x, double y) 
     51    { 
     52        PhysicsObject otus = new PhysicsObject(20, 20, Shapes.Circle); 
     53        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(); 
     54        otus.Brain = satunnaisAivot; 
     55        otus.X = x; 
     56        otus.Y = y; 
     57        otus.Restitution = 0.0; 
     58        Add(otus,0);  
     59        Timer Ajastin = new Timer(); 
     60        Ajastin.Interval = 0.1; 
     61        Ajastin.Trigger += Aivot; 
     62        Ajastin.Tag = otus; 
     63        Ajastin.Start(); 
     64        return (otus); 
     65 
     66    } 
     67 
     68    void Aivot(Timer Ajastin) 
     69    { 
     70        PhysicsObject kohde = Ajastin.Tag as PhysicsObject; 
     71         
     72 
     73        if(kohde != null) 
     74        { 
     75            Vector etaisyys = new Vector(kohde.X - hahmo.X, kohde.Y - hahmo.Y); 
     76            if (etaisyys.Magnitude < 100 && (kohde.Brain is RandomMoverBrain||kohde.Brain is WandererBrain)) 
     77            { 
     78                FollowerBrain seuraajaAivot = new FollowerBrain(); 
     79                seuraajaAivot.Target = hahmo; 
     80                seuraajaAivot.MovingSpeed = 100; 
     81                seuraajaAivot.TargetFollowDistance = 100; 
     82                seuraajaAivot.FollowAlways = true; 
     83                seuraajaAivot.TargetCloseDistance = 200; 
     84                //seuraajaAivot.StopWhenTargetClose = true;   
     85                kohde.Brain = seuraajaAivot; 
     86            } 
     87            else  
     88            { 
     89                if(etaisyys.Magnitude > 100 && kohde.Brain is FollowerBrain) 
     90                { 
     91                    RandomMoverBrain satunnaisAivot = new RandomMoverBrain(); 
     92                    satunnaisAivot.ChangeMovementSeconds = 1; 
     93                    kohde.Brain = satunnaisAivot; 
     94                } 
     95            } 
     96        } 
     97         
    4998    } 
    5099     
     
    60109        else 
    61110            kivi.Mass = koko / 2; 
    62         Add(kivi); 
     111        Add(kivi,0); 
    63112        return(kivi); 
    64113    } 
     
    67116    { 
    68117        double koko = RandomGen.NextDouble(10,20); 
    69         pallo2 = new PhysicsObject(koko, koko, Shapes.Circle); 
     118        PhysicsObject pallo2 = new PhysicsObject(koko, koko, Shapes.Circle); 
    70119        pallo2.Color = RandomGen.NextColor(Color.DarkBlue,Color.DarkViolet); 
    71120        pallo2.Position = Mouse.PositionOnWorld; 
    72121        pallo2.Restitution = 1.05; 
    73         Add(pallo2); 
    74         Timer Ajastin2 = new Timer(); 
    75         Ajastin2.Interval = 10.0; 
    76         Ajastin2.Trigger += Poista; 
    77         Ajastin2.Tag = pallo2; 
    78         Ajastin2.Start(); 
     122        Add(pallo2,0); 
     123        Timer Ajastin = new Timer(); 
     124        Ajastin.Interval = 10.0; 
     125        Ajastin.Trigger += Poista; 
     126        Ajastin.Tag = pallo2; 
     127        Ajastin.Start(); 
    79128 
    80129        MessageDisplay.Add("kumi pallona luokses pompin..."); 
    81         if (Ajastin2.IsDestroyed()) 
    82             MessageDisplay.Add("onnistui"); 
    83          
    84     } 
    85  
    86     void Poista(Timer Ajastin2)  
    87     { 
    88         pallo2.Destroy(); 
    89         Ajastin2.Destroy(); 
    90         if (pallo2.IsDestroyed() && Ajastin2.IsDestroyed()) 
     130         
     131    } 
     132 
     133    void Poista(Timer Ajastin)  
     134    { 
     135        ((PhysicsObject)Ajastin.Tag).Destroy(); 
     136        Ajastin.Destroy(); 
     137        if (((PhysicsObject)Ajastin.Tag).IsDestroyed() && Ajastin.IsDestroyed()) 
    91138            MessageDisplay.Add("tuhottu"); 
    92139    } 
     
    114161 
    115162        Add(runko); 
    116         Add(lehdet); 
     163        Add(lehdet, 3); 
    117164 
    118165        return(runko); 
     
    173220    } 
    174221 
    175  
    176  
    177222    void AsetaHiiri() 
    178223    { 
    179         pallo = new PhysicsObject(10.0, 10.0, Shapes.Circle); 
    180         pallo.IgnoresExplosions = pallo.IgnoresCollisionResponse = true; 
    181         Add(pallo); 
     224        //pallo = new PhysicsObject(10.0, 10.0, Shapes.Circle); 
     225        //pallo.IgnoresExplosions = pallo.IgnoresCollisionResponse = true; 
     226        //Add(pallo); 
    182227        Mouse.IsCursorVisible = true; 
    183228        //Mouse.ListenMovement(0.1, KuunteleLiiketta, null); 
    184         Mouse.Listen(MouseButton.Left, ButtonState.Pressed, VoimanKeruu, null); 
    185         //Mouse.Listen(MouseButton.Left, ButtonState.Down, Rajahdys, null); 
    186         //Mouse.Listen(MouseButton.Left, ButtonState.Released, Teksti, null); 
     229        //Mouse.Listen(MouseButton.Left, ButtonState.Pressed, VoimanKeruu, null); 
     230        Mouse.Listen(MouseButton.Left, ButtonState.Down, LataaVoimaa, null, 1.0); 
     231        Mouse.Listen(MouseButton.Left, ButtonState.Released, Rajahdys, null); 
    187232        Mouse.Listen(MouseButton.Right, ButtonState.Released, LuoPallo, null); 
    188233 
     
    194239    //    pallo.Y = Mouse.PositionOnWorld.Y; 
    195240    //} 
    196      
    197  
    198     void Rajahdys(double voima)  
    199     { 
    200          
    201         Explosion rajahdys = new Explosion(40); 
     241    void LataaVoimaa(double lataaVoimaa)  
     242    { 
     243        if (voima < 500) 
     244        { 
     245            voima += lataaVoimaa; 
     246            MessageDisplay.Add("lisätään voimaa"); 
     247        } 
     248        else 
     249            MessageDisplay.Add("voima max"); 
     250    } 
     251     
     252 
     253    void Rajahdys()  
     254    { 
     255         
     256        Explosion rajahdys = new Explosion(voima/2); 
    202257        rajahdys.Position = Mouse.PositionOnWorld;  
    203         rajahdys.Speed = 100.0; 
    204         rajahdys.Force = 200; 
     258        rajahdys.Speed = 100; 
     259        rajahdys.Force = voima; 
    205260        Add(rajahdys); 
     261        voima = 20; 
    206262        MessageDisplay.Add("pum"); 
    207263    } 
Note: See TracChangeset for help on using the changeset viewer.