source: 2013/30/MiskaK/MW2(My Warfare 2)/MW2(My Warfare 2)/MW2(My Warfare 2)/Partikkelit.cs @ 4507

Revision 4507, 8.9 KB checked in by anlakane, 6 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.Effects;
7
8/// <summary>
9/// Pelissä käytettävät partikkelit.
10/// </summary>
11public static class Partikkelit
12{
13    public static ExplosionSystem KiviPartikkelit { get; private set; }
14    public static ExplosionSystem KiviHajoaa { get; private set; }
15
16    public static ExplosionSystem PuuPartikkelit { get; private set; }
17    public static ExplosionSystem PuuHajoaa { get; private set; }
18
19    public static ExplosionSystem KipinaPartikkelit { get; private set; }
20
21    public static ExplosionSystem VeriPartikkelit { get; private set; }
22
23    public static ExplosionSystem RajahdysPartikkelit1 { get; private set; }
24    public static ExplosionSystem RajahdysPartikkelit2 { get; private set; }
25    public static ExplosionSystem RajahdysPartikkelit3 { get; private set; }
26    public static ExplosionSystem RajahdysPartikkelit4 { get; private set; }
27
28    public static Flame Tuli { get; private set; }
29
30    private static readonly Image kivisirpale1 = MW2_My_Warfare_2_.LoadImage("kivisirpale1");
31    private static readonly Image kivisirpale2 = MW2_My_Warfare_2_.LoadImage("kivisirpale2");
32    private static readonly Image kipinä1 = MW2_My_Warfare_2_.LoadImage("kipinä1");
33    private static readonly Image veriroiske1 = MW2_My_Warfare_2_.LoadImage("veriroiske1");
34    private static readonly Image puusirpale1 = MW2_My_Warfare_2_.LoadImage("puusirpale1");
35    private static readonly Image savuHiukkanen1 = MW2_My_Warfare_2_.LoadImage("savuhiukkanen1");
36    private static readonly Image savuHiukkanen2 = MW2_My_Warfare_2_.LoadImage("savuhiukkanen2");
37    private static readonly Image liekkiHiukkanen1 = MW2_My_Warfare_2_.LoadImage("liekkihiukkanen1");
38    private static readonly Image liekkiHiukkanen2 = MW2_My_Warfare_2_.LoadImage("liekkihiukkanen2");
39    //private static readonly Image rajahdysPartikkeli1 = MW2_My_Warfare_2_.LoadImage("Räjähdys1");
40    //private static readonly Image rajahdysPartikkeli2 = MW2_My_Warfare_2_.LoadImage("räjähdyspartikkeli1");
41
42    private static Image rajahdys1 = MW2_My_Warfare_2_.LoadImage("rajahdys1");
43    private static Image rajahdys2 = MW2_My_Warfare_2_.LoadImage("rajahdys2");
44    private static Image rajahdys3 = MW2_My_Warfare_2_.LoadImage("rajahdys3");
45    private static Image rajahdys4 = MW2_My_Warfare_2_.LoadImage("rajahdys4");
46
47
48    static Partikkelit()
49    {
50        InitializeParticles(MW2_My_Warfare_2_.Peli);
51    }
52
53    /// <summary>
54    /// Alustetaan partikkelit käyttöä varten.
55    /// </summary>
56    /// <param name="peli">Peli, johon partikkelit lisätään.</param>
57    private static void InitializeParticles(MW2_My_Warfare_2_ peli)
58    {
59        KiviPartikkelit = new ExplosionSystem(kivisirpale1, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
60        KiviPartikkelit.MinScale = 1;
61        KiviPartikkelit.MaxScale = 2;
62        KiviPartikkelit.MaxLifetime = 0.5;
63        KiviPartikkelit.MinLifetime = 0.2;
64        KiviPartikkelit.MaxVelocity = 1;
65        peli.Add(KiviPartikkelit);
66
67        KiviHajoaa = new ExplosionSystem(kivisirpale1, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
68        KiviHajoaa.MinScale = 5;
69        KiviHajoaa.MaxScale = 10;
70        KiviHajoaa.MaxLifetime = 1.0;
71        KiviHajoaa.MinLifetime = 0.2;
72        KiviHajoaa.MaxVelocity = 1;
73        peli.Add(KiviHajoaa);
74
75        PuuPartikkelit = new ExplosionSystem(puusirpale1, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
76        PuuPartikkelit.MinScale = 1;
77        PuuPartikkelit.MaxScale = 2;
78        PuuPartikkelit.MaxLifetime = 0.5;
79        PuuPartikkelit.MinLifetime = 0.2;
80        PuuPartikkelit.MaxVelocity = 1;
81        peli.Add(PuuPartikkelit);
82
83        PuuHajoaa = new ExplosionSystem(puusirpale1, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
84        PuuHajoaa.MinScale = 5;
85        PuuHajoaa.MaxScale = 10;
86        PuuHajoaa.MaxLifetime = 1.0;
87        PuuHajoaa.MinLifetime = 0.2;
88        PuuHajoaa.MaxVelocity = 0.5;
89        peli.Add(PuuHajoaa);
90
91        KipinaPartikkelit = new ExplosionSystem(kipinä1, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
92        KipinaPartikkelit.MinScale = 1;
93        KipinaPartikkelit.MaxScale = 2;
94        KipinaPartikkelit.MaxLifetime = 0.5;
95        KipinaPartikkelit.MinLifetime = 0.2;
96        KipinaPartikkelit.MaxVelocity = 0.3;
97        peli.Add(KipinaPartikkelit);
98
99        VeriPartikkelit = new ExplosionSystem(veriroiske1, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
100        VeriPartikkelit.MinScale = 1;
101        VeriPartikkelit.MaxScale = 2;
102        VeriPartikkelit.MaxLifetime = 0.5;//0.5
103        VeriPartikkelit.MinLifetime = 0.2;
104        VeriPartikkelit.MaxVelocity = 1;
105        peli.Add(VeriPartikkelit);
106
107
108        //RajahdysPartikkelit1 = new ExplosionSystem(rajahdysPartikkeli1, Vakiot.PARTIKKELEIDEN_MAX_MAARA); // Explosion
109        //RajahdysPartikkelit1.MinScale = 10;
110        //RajahdysPartikkelit1.MaxScale = 50;
111        //RajahdysPartikkelit1.MaxLifetime = 1.0;
112        //RajahdysPartikkelit1.MinLifetime = 0.2;
113        //RajahdysPartikkelit1.MaxVelocity = 40.0;
114        //RajahdysPartikkelit1.MinVelocity = 5.0;
115        //peli.Add(RajahdysPartikkelit1);
116
117        //RajahdysPartikkelit2 = new ExplosionSystem(rajahdysPartikkeli2, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
118        //RajahdysPartikkelit2.MinScale = 5;
119        //RajahdysPartikkelit2.MaxScale = 20;
120        //RajahdysPartikkelit2.MaxLifetime = 0.3;
121        //RajahdysPartikkelit2.MinLifetime = 0.1;
122        //RajahdysPartikkelit2.MaxVelocity = 200.0;
123        //RajahdysPartikkelit2.MinVelocity = 60.0;
124        //peli.Add(RajahdysPartikkelit2);
125
126        //RajahdysPartikkelit3 = new ExplosionSystem(kipinä1, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
127        //RajahdysPartikkelit3.MinScale = 1;
128        //RajahdysPartikkelit3.MaxScale = 5;
129        //RajahdysPartikkelit3.MaxLifetime = 0.3;
130        //RajahdysPartikkelit3.MinLifetime = 0.1;
131        //RajahdysPartikkelit3.MaxVelocity = 100.0;
132        //RajahdysPartikkelit3.MinVelocity = 50.0;
133        //peli.Add(RajahdysPartikkelit3);
134
135        RajahdysPartikkelit1 = new ExplosionSystem(rajahdys1, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
136        RajahdysPartikkelit1.MinVelocity = 1.0;
137        RajahdysPartikkelit1.MaxVelocity = 90.0; // 45
138        RajahdysPartikkelit1.MaxScale = 20;
139        RajahdysPartikkelit1.MaxLifetime = 0.4; // Jypelin oletus 0.8
140        peli.Add(RajahdysPartikkelit1);
141
142        RajahdysPartikkelit2 = new ExplosionSystem(rajahdys2, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
143        RajahdysPartikkelit2.MinVelocity = 25.0;
144        RajahdysPartikkelit2.MaxVelocity = 140.0; // 70
145        RajahdysPartikkelit2.MaxScale = 20;
146        RajahdysPartikkelit2.MaxLifetime = 0.4;
147        peli.Add(RajahdysPartikkelit2);
148
149        RajahdysPartikkelit3 = new ExplosionSystem(rajahdys3, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
150        RajahdysPartikkelit3.MinVelocity = 60.0;
151        RajahdysPartikkelit3.MaxVelocity = 200.0; // 100
152        RajahdysPartikkelit3.MaxScale = 20;
153        RajahdysPartikkelit3.MaxLifetime = 0.4;
154        peli.Add(RajahdysPartikkelit3);
155
156        RajahdysPartikkelit4 = new ExplosionSystem(rajahdys4, Vakiot.PARTIKKELEIDEN_MAX_MAARA);
157        RajahdysPartikkelit4.MinVelocity = 50.0;
158        RajahdysPartikkelit4.MaxVelocity = 220.0; // 110
159        RajahdysPartikkelit4.MaxScale = 35;
160        RajahdysPartikkelit4.MaxLifetime = 0.6;
161        RajahdysPartikkelit4.AlphaAmount = 0.7;
162        peli.Add(RajahdysPartikkelit4);
163    }
164
165    /// <summary>
166    /// Lisätään partikkeliefekti kentälle.
167    /// </summary>
168    /// <param name="kaytettavatPartikkelit">Mitä partikkeleita lisätään.</param>
169    /// <param name="paikka">Mihin partikkelit lisätään.</param>
170    /// <param name="maara">Paljonko partikkeleita lisätään.</param>
171    public static void AddParticleEffect(ExplosionSystem kaytettavatPartikkelit, Vector paikka, int maara)
172    {
173        kaytettavatPartikkelit.AddEffect(paikka, maara);
174    }
175
176    /// <summary>
177    /// Lisätään valmis räjähdysefekti kentälle.
178    /// </summary>
179    /// <param name="paikka">Räjähdyksen paikka.</param>
180    /// <param name="maara">Käytettävien partikkelien määrä.</param>
181    public static void AddExplosionEffect(Vector paikka, int maara)
182    {
183        AddParticleEffect(RajahdysPartikkelit1, paikka, maara / 4);
184        AddParticleEffect(RajahdysPartikkelit2, paikka, maara / 4);
185        AddParticleEffect(RajahdysPartikkelit3, paikka, maara / 4);
186        AddParticleEffect(RajahdysPartikkelit4, paikka, maara / 4);
187    }
188
189    /// <summary>
190    /// Luodaan FlameSystem. Efekti pitää erikseen lisätä kentälle ja aktivoida.
191    /// </summary>
192    /// <param name="paikka">Efektin paikka.</param>
193    /// <returns>Flame.</returns>
194    public static Flame CreateFlames(Vector paikka, double elinaika)
195    {
196        Tuli = new Flame(liekkiHiukkanen1);
197        Tuli.AlphaAmount = 0.5;
198        Tuli.MaximumLifetime = TimeSpan.FromSeconds(elinaika);
199        return Tuli;
200    }
201}
Note: See TracBrowser for help on using the repository browser.