Changeset 1438 for 2010/30


Ignore:
Timestamp:
2010-07-30 12:00:42 (9 years ago)
Author:
vematata
Message:
 
Location:
2010/30/vematata/SeikailuRoolipeli
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/vematata/SeikailuRoolipeli/Content/Content.contentproj

    r1414 r1438  
    3434    <Reference Include="Microsoft.Xna.Framework.Content.Pipeline.XImporter, Version=3.1.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d" /> 
    3535  </ItemGroup> 
    36   <ItemGroup> 
    37     <Compile Include="Miekka.png"> 
    38       <Name>Miekka</Name> 
    39       <Importer>TextureImporter</Importer> 
    40       <Processor>TextureProcessor</Processor> 
    41       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
    42     </Compile> 
    43   </ItemGroup> 
    4436</Project> 
  • 2010/30/vematata/SeikailuRoolipeli/Peli.cs

    r1426 r1438  
    1 using Jypeli; 
     1using System; 
     2using Jypeli; 
    23using Jypeli.Assets; 
     4using Jypeli.Widgets; 
     5using Physics2DDotNet.Ignorers; 
    36 
    47public class Peli : PhysicsGame 
     
    912    Vector nopeusOikea = new Vector(300, 0); 
    1013    double voima = 20; 
     14    DoubleMeter elamat; 
    1115    //PhysicsObject pallo; 
    1216 
    1317    PhysicsObject hahmo; 
    1418    PhysicsObject miekka; 
     19    PhysicsObject nuoli; 
     20    ObjectIgnorer ignorer; 
    1521 
    1622    Image miekanKuva = LoadImage("Miekka"); 
     
    2026    protected override void Begin() 
    2127    { 
     28        ignorer = new ObjectIgnorer(); 
     29        ElamaPalkki(); 
    2230        Testi(); 
    2331        AsetaOhjaimet(); 
     
    4452        hahmo.LinearDamping = 0.95; 
    4553        hahmo.CanRotate = false; 
     54        hahmo.CollisionIgnorer = ignorer;      
     55       
    4656 
    4757        Add(hahmo,0); 
    48         Miekka(); 
     58        //Miekka(); 
    4959 
    5060        Camera.Follow(hahmo); 
    5161        Camera.Zoom(1.5); 
    5262    } 
     63 
     64    BarGauge ElamaPalkki()  
     65    { 
     66        elamat = new DoubleMeter(1000); 
     67        elamat.MaxValue = 1000; 
     68        BarGauge elamaPalkki = new BarGauge(10, 500); 
     69        elamaPalkki.BindTo(elamat); 
     70        elamaPalkki.X = (Screen.LeftSafe+275); 
     71        elamaPalkki.Y = (Screen.TopSafe-20); 
     72        elamaPalkki.BorderColor = Color.White; 
     73        elamaPalkki.Angle = Angle.Degrees(90); 
     74        elamat.LowerLimit += ElamatLoppui; 
     75        Add(elamaPalkki); 
     76        return elamaPalkki; 
     77    } 
     78 
     79    void ElamatLoppui(double mittarinArvo) 
     80    { 
     81        MessageDisplay.Add("Elamat loppuivat, voi voi."); 
     82    } 
     83 
     84    void VahennaElamia() 
     85    { 
     86        elamat.Value--; 
     87    } 
     88 
     89    void LisaaElamia() 
     90    { 
     91        elamat.Value += 0.2; 
     92    } 
     93     
     94 
     95    void Nuoli()  
     96    { 
     97        nuoli = new PhysicsObject(10,3,Shapes.Circle); 
     98        nuoli.CollisionIgnorer = ignorer; 
     99        AddCollisionHandler(nuoli, Osuma); 
     100        nuoli.Angle = hahmo.Angle; 
     101        nuoli.Position = hahmo.Position; 
     102        Add(nuoli,-3); 
     103 
     104        nuoli.Hit(Vector.FromLengthAndAngle(500, nuoli.Angle)); 
     105    } 
     106 
     107    void Osuma(PhysicsObject ammus, PhysicsObject kohde) 
     108    { 
     109        if (kohde.Tag.ToString() == "vihollinen") 
     110        { 
     111            kohde.Brain.Active = false; 
     112            kohde.Destroy(); 
     113            ammus.Destroy(); 
     114        } 
     115        else ammus.Destroy(); 
     116    } 
     117 
     118 
     119 
    53120 
    54121    PhysicsObject Otus(double x, double y) 
     
    60127        otus.Y = y; 
    61128        otus.Restitution = 0.0; 
     129        otus.Tag = "vihollinen"; 
    62130        Add(otus,0); 
    63131        Timer Ajastin = new Timer(); 
     
    73141    { 
    74142        PhysicsObject kohde = Ajastin.Tag as PhysicsObject; 
    75          
     143        if (kohde.IsDestroyed()) 
     144        { 
     145            return;  
     146        } 
    76147 
    77148        if(kohde != null) 
    78149        { 
    79150            Vector etaisyys = new Vector(kohde.X - hahmo.X, kohde.Y - hahmo.Y); 
    80             if (etaisyys.Magnitude < 100 && (kohde.Brain is RandomMoverBrain||kohde.Brain is WandererBrain)) 
     151            if (etaisyys.Magnitude < kohde.Width*4 && (kohde.Brain is RandomMoverBrain||kohde.Brain is WandererBrain)) 
    81152            { 
    82153                FollowerBrain seuraajaAivot = new FollowerBrain(); 
    83154                seuraajaAivot.Target = hahmo; 
    84155                seuraajaAivot.MovingSpeed = 100; 
    85                 seuraajaAivot.TargetFollowDistance = 100; 
     156                seuraajaAivot.TargetFollowDistance = kohde.Width*4; 
    86157                seuraajaAivot.FollowAlways = true; 
    87                 seuraajaAivot.TargetCloseDistance = 200; 
    88                 //seuraajaAivot.StopWhenTargetClose = true;   
     158                seuraajaAivot.TargetCloseDistance = kohde.Width*2; 
     159                //seuraajaAivot.StopWhenTargetClose = true; 
     160                 
     161                seuraajaAivot.TargetClose += new EventHandler(Hyokkaa); 
     162 
    89163                kohde.Brain = seuraajaAivot; 
     164 
    90165            } 
    91166            else  
     
    101176         
    102177    } 
    103      
     178 
     179    void Hyokkaa(object sender, EventArgs e) 
     180    { 
     181        VahennaElamia(); 
     182        MessageDisplay.Add("mennetit elämiä"); 
     183    } 
     184 
    104185     
    105186    PhysicsObject Kivi(double koko, double x, double y)  
     
    139220        runko.Color = Color.Brown; 
    140221        lehdet.Color = Color.ForestGreen; 
    141          
     222 
     223        lehdet.CollisionIgnorer = ignorer; 
     224 
    142225        Timer Ajastin = new Timer(); 
    143226        Ajastin.Interval = 0.1; 
     
    193276        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Liiku oikealle", hahmo, nopeusOikea); 
    194277        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, hahmo, Vector.Zero); 
     278        Keyboard.Listen(Key.Space, ButtonState.Pressed, Nuoli, null); 
    195279 
    196280                                    
     
    279363        miekka.IgnoresExplosions = true; 
    280364        miekka.IgnoresPhysicsLogics = true; 
    281         //miekka.Image = Image.Mirror(miekanKuva); 
    282365        Add(miekka,-1); 
    283366        Timer Ajastin = new Timer(); 
     
    287370        Ajastin.Start(); 
    288371    } 
    289  
     372    Vector Jokin; 
    290373     void Miekansijainti(Timer Ajastin)  
    291     { 
    292          miekka.X = hahmo.X - 25; 
    293          miekka.Y = hahmo.Bottom; 
     374    {         
     375         Jokin =new Vector(hahmo.X-25,hahmo.Bottom); 
     376 
     377         miekka.Position = Jokin ; 
    294378         miekka.Angle = hahmo.Angle; 
    295379    } 
     
    297381    protected override void Update(Time time) 
    298382    { 
    299         hahmo.Angle = (Mouse.PositionOnWorld - hahmo.Position).Angle;         
     383        hahmo.Angle = (Mouse.PositionOnWorld - hahmo.Position).Angle; 
     384        if (hahmo.Velocity == Vector.Zero)  
     385        { 
     386            LisaaElamia(); 
     387        } 
    300388 
    301389        base.Update(time); 
Note: See TracChangeset for help on using the changeset viewer.