Changeset 1542 for 2010


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

kaikkea pientä.

Location:
2010/30/tekrjant/Seikkailu
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • 2010/30/tekrjant/Seikkailu/Content/Content.contentproj

    r1511 r1542  
    174174    </Compile> 
    175175  </ItemGroup> 
     176  <ItemGroup> 
     177    <Compile Include="ottiainen_kuollut.png"> 
     178      <Name>ottiainen_kuollut</Name> 
     179      <Importer>TextureImporter</Importer> 
     180      <Processor>TextureProcessor</Processor> 
     181    </Compile> 
     182  </ItemGroup> 
    176183</Project> 
  • 2010/30/tekrjant/Seikkailu/Esine.cs

    r1511 r1542  
    4646        IgnoresCollisionResponse = true; 
    4747    } 
     48 
     49 
     50    public static string Kuvaus( EsineenTyyppi t ) 
     51    { 
     52        switch ( t ) 
     53        { 
     54            case EsineenTyyppi.TuliSauva: 
     55                return "Taikasauva"; 
     56            case EsineenTyyppi.EnergiaSauva: 
     57                return "Välkkyvä taikasauva"; 
     58            case EsineenTyyppi.Lyhty: 
     59                return "Lyhty"; 
     60            case EsineenTyyppi.Timantti: 
     61                return "Kiiltävä timantti"; 
     62            default: 
     63                return t.ToString(); 
     64        } 
     65    } 
    4866} 
  • 2010/30/tekrjant/Seikkailu/HUD.cs

    r1346 r1542  
    136136    Timer piilotusAjastin; 
    137137 
    138     public EsineRuutu( Peli peli, double leveys, double korkeus ) 
     138    public EsineRuutu( double leveys, double korkeus ) 
    139139        : base( leveys, korkeus ) 
    140140    { 
     
    155155        piilotusAjastin.Interval = 3; 
    156156        piilotusAjastin.Trigger += delegate( Timer t ) { Hide(); }; 
    157         peli.Add( piilotusAjastin ); 
    158157    } 
    159158 
    160159    public void Nayta( Esine e ) 
    161160    { 
    162         teksti.Text = e.Tyyppi.ToString(); 
     161        teksti.Text = Esine.Kuvaus( e.Tyyppi ); 
    163162        Show(); 
    164163        piilotusAjastin.Start( 1 ); 
  • 2010/30/tekrjant/Seikkailu/Otus.cs

    r1486 r1542  
    5050    public Animation LiikkumisAnimaatio; 
    5151    public Animation HyokkaysAnimaatio; 
     52    public Image KuollutKuva; 
    5253    public Image PalanutKuva; 
     54 
     55    public int OsumaPisteet = 10; 
    5356 
    5457    public bool OnKuollut { get { return tila == Tila.Kuollut; } } 
     
    141144    } 
    142145 
    143     public void Liekita() 
     146    public void TeeVahinkoa( int pisteet ) 
     147    { 
     148        OsumaPisteet -= pisteet; 
     149        if ( OsumaPisteet <= 0 ) 
     150        { 
     151            OsumaPisteet = 0; 
     152            Kuole(); 
     153        } 
     154    } 
     155 
     156    public void Kuole() 
    144157    { 
    145158        liikkumisAjastin.Stop(); 
    146159        hyokkaysAjastin.Stop(); 
    147160        kaantymisAjastin.Stop(); 
     161        Animation.Stop(); 
    148162        // RemoveCollisionHandler() olis kiva 
    149  
    150163        tila = Tila.Kuollut; 
    151164        MaximumLifetime = Lifetime + TimeSpan.FromMinutes( 1 ); 
    152         this.Image = PalanutKuva; 
     165 
     166        if ( KuollutKuva != null ) 
     167            Image = KuollutKuva; 
     168    } 
     169 
     170    public void Liekita() 
     171    { 
     172        Kuole(); 
     173        if ( PalanutKuva != null ) 
     174            this.Image = PalanutKuva; 
    153175        savu.AddEffect( this.X, this.Y, 1 ); 
    154176    } 
  • 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.