Ignore:
Timestamp:
2010-08-02 22:40:35 (12 years ago)
Author:
tekrjant
Message:

kaikkea pientä.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/tekrjant/Seikkailu/Peli.cs

    r1511 r1542  
    2828using Jypeli.Widgets; 
    2929using Jypeli.Effects; 
     30using Physics2DDotNet.Ignorers; 
    3031 
    3132 
     
    3536    const double PelaajanKulmanopeus = 3.0; 
    3637 
     38    Timer energiaAmpumisAjastin = new Timer() { Interval = 0.1 }; 
     39    ObjectIgnorer energiaIgnorer = new ObjectIgnorer(); 
     40 
    3741    EsineRuutu esineRuutu; 
    3842    EsineValikko esineValikko; 
     
    4549        "ottiainen_syo1", "ottiainen_syo2", "ottiainen_syo3", "ottiainen_syo4", 
    4650        "ottiainen_syo5", "ottiainen_syo6", "ottiainen_syo7", "ottiainen_syo8" ); 
     51    Image ottiainenKuollutKuva = LoadImage( "ottiainen_kuollut" ); 
    4752    Image ottiainenPalanutKuva = LoadImage( "ottiainen_palanut" ); 
    4853    Image liekinKuva = LoadImage( "liekki" ); 
     
    6974    void LuoHUD() 
    7075    { 
    71         esineRuutu = new EsineRuutu( this, 200, 50 ); 
     76        esineRuutu = new EsineRuutu( 200, 50 ); 
    7277        esineRuutu.X = Screen.Center.X + Screen.Width / 4; 
    7378        esineRuutu.Y = Screen.Top - esineRuutu.Height / 2; 
     
    95100        lyhtyAjastin.Interval = 0.1; 
    96101        lyhtyAjastin.Trigger += PaivitaLyhtya; 
     102 
     103        energiaAmpumisAjastin.Trigger += AmmuEnergiaPallo; 
    97104 
    98105        double ruohonLeveys = 5; 
     
    156163        energiaSauva.Image = taikasauva2Kuva; 
    157164        energiaSauva.X = -1; 
    158         energiaSauva.Y = -3; 
     165        energiaSauva.Y = -1; 
    159166        Add( energiaSauva, -1 ); 
    160167 
    161168        Esine lyhty = new Esine( 0.6, 0.6, Shapes.Circle, EsineenTyyppi.Lyhty ); 
    162169        lyhty.Image = lyhdynKuva; 
    163         lyhty.X = 4; 
    164         lyhty.Y = -2; 
     170        lyhty.X = 2; 
     171        lyhty.Y = -1; 
    165172        Add( lyhty, -1 ); 
    166173 
     
    211218        ottiainen.LiikkumisAnimaatio = new Animation( ottiaisenKuvat ) { FPS = 5 }; 
    212219        ottiainen.HyokkaysAnimaatio = new Animation( ottiaisenSyomisKuvat ) { FPS = 20 }; 
     220        ottiainen.KuollutKuva = ottiainenKuollutKuva; 
    213221        ottiainen.PalanutKuva = ottiainenPalanutKuva; 
    214222        ottiainen.Angle = RandomGen.NextAngle(); 
     
    260268                break; 
    261269            case EsineenTyyppi.EnergiaSauva: 
    262                 PhysicsObject energia = new PhysicsObject( 3, 1 ); 
    263                 energia.MaximumLifetime = TimeSpan.FromSeconds( 6 ); 
    264                 energia.Restitution = 1.5; 
    265                 //energia.IgnoresCollisionResponse = true; 
    266  
    267                 energia.Animation = new Animation( energiaKuvat ); 
    268                 energia.Animation.FPS = 20; 
    269                 energia.Animation.Start(); 
    270  
    271                 Vector suunta = Vector.FromLengthAndAngle( 1, pelaaja.Angle ); 
    272                 energia.Position = pelaaja.Position + suunta * 1; 
    273                 energia.Velocity = suunta * 3; 
    274                 energia.Angle = pelaaja.Angle; 
    275                 Add( energia ); 
     270                energiaAmpumisAjastin.Start( 5 ); 
    276271                break; 
    277272            case EsineenTyyppi.Lyhty: 
     
    282277            default: 
    283278                break; 
     279        } 
     280    } 
     281 
     282    void AmmuEnergiaPallo( Timer ajastin ) 
     283    { 
     284        PhysicsObject energia = new PhysicsObject( 1, 1, Shapes.Circle ); 
     285        energia.MaximumLifetime = TimeSpan.FromSeconds( 6 ); 
     286        energia.Restitution = 1.5; 
     287        energia.CollisionIgnorer = energiaIgnorer; 
     288        AddCollisionHandler( energia, EnergiaPalloOsuu ); 
     289 
     290        energia.Animation = new Animation( energiaKuvat ); 
     291        energia.Animation.FPS = 20; 
     292        energia.Animation.Start(); 
     293 
     294        Angle kulmanVaihtelu = RandomGen.NextAngle( Angle.Degrees( -5 ), Angle.Degrees( 5 ) ); 
     295        Vector suunta = Vector.FromLengthAndAngle( 1, pelaaja.Angle + kulmanVaihtelu ); 
     296        energia.Position = pelaaja.Position + suunta * 1; 
     297        energia.Velocity = suunta * 3; 
     298        energia.Angle = pelaaja.Angle; 
     299        Add( energia ); 
     300    } 
     301 
     302    void EnergiaPalloOsuu( PhysicsObject energia, PhysicsObject kohde ) 
     303    { 
     304        if ( kohde is Otus ) 
     305        { 
     306            Otus otus = (Otus)kohde; 
     307            // TODO: efekti. 
     308            otus.TeeVahinkoa( 2 ); 
    284309        } 
    285310    } 
Note: See TracChangeset for help on using the changeset viewer.