Jypeli 10
The simple game programming library
Smoke.cs
Siirry tämän tiedoston dokumentaatioon.
1using System;
2using Microsoft.Xna.Framework;
3
4namespace Jypeli.Effects
5{
9 public class Smoke : ParticleSystem
10 {
11 private double addTime;
12 private double width;
13
17 public Smoke()
18 : base(Game.LoadImageFromResources("Smoke.png"), 180)
19 {
20 this.Angle = Angle.FromDegrees(90);
21 this.width = 5;
22 }
23
29 public Smoke(Image particleImage, double width)
30 : base(particleImage, (int)width*8)
31 {
32 this.Angle = Angle.FromDegrees(90);
33 this.width = width;
34 }
35
39 protected override void InitializeParticles()
40 {
41 MinLifetime = 4.0;
42 MaxLifetime = 4.2;
43
44 MinScale = 70;
45 MaxScale = 100;
46
47 ScaleAmount = 1;
48
49 AlphaAmount = 0.3;
50
51 MinVelocity = 40;
52 MaxVelocity = 60;
53
56
57 MinRotationSpeed = -MathHelper.PiOver4;
58 MaxRotationSpeed = MathHelper.PiOver4;
59
60 }
61
66 protected override Vector GiveRandomDirection()
67 {
69 }
70
75 public override void Update(Time time)
76 {
77 double t = time.SinceLastUpdate.TotalSeconds;
78 addTime += t;
79 if (addTime > 0.1)
80 {
81 for (int i = 0; i < (int)Math.Ceiling(width/50); i++)
82 {
83 base.AddEffect(RandomGen.NextDouble(Position.X - width / 2, Position.X + width / 2), Position.Y, 2);
84 }
85
86 addTime = 0;
87 }
88 base.Update(time);
89 }
90
96 protected override void InitializeParticle(Particle p, Vector position)
97 {
98 base.InitializeParticle(p, position);
99
100 if(!IgnoreWind)
102
103 }
104 }
105}
Vector Acceleration
Partikkelin kiihtyvyys
Definition: Particle.cs:70
Järjestelmä partikkelien käsittelyyn
Boolean IgnoreWind
Vaikuttaako efektiin tuuli
double MinScale
Pienin skaalaus joka efektin partikkeleilla voi olla
double AlphaAmount
Efektin läpinäkyvyyskerroin (0.0-1.0)
double MaxLifetime
Efektin partikkelin pisin mahdollinen elinaika
double MaxScale
Suurin skaalaus joka efektin partikkeleilla voi olla
double MinLifetime
Efektin partikkelin lyhin mahdollinen elinaika
double MaxAngleChange
Suurin sallittu suunnan poikkeama asteina
double ScaleAmount
Määrä jonka partikkeli skaalautuu päivityksessä
double MaxRotationSpeed
Suurin pyörimisnopeus joka efektin partikkelilla voi olla
double MinVelocity
Pienin nopeus joka efektin partikkelilla voi olla
double MinRotationSpeed
Pienin pyörimisnopeus joka efektin partikkelilla voi olla
double MaxVelocity
Suurin nopeus joka efektin partikkelilla voi olla
double MinAcceleration
Pienin kiihtyvyys joka efektin partikkelilla voi olla
double MaxAcceleration
Suurin kiihtyvyys joka efektin partikkelilla voi olla
Savuefekti.
Definition: Smoke.cs:10
override Vector GiveRandomDirection()
Lasketaan savun suunnalle satunnaisuutta
Definition: Smoke.cs:66
override void Update(Time time)
Päivitetään savua
Definition: Smoke.cs:75
Smoke(Image particleImage, double width)
Savu, johon vaikuttaa tuuli ja jonka tekstuuria ja leveyttä voi vaihtaa.
Definition: Smoke.cs:29
override void InitializeParticle(Particle p, Vector position)
Alustetaan partikkeli
Definition: Smoke.cs:96
override void InitializeParticles()
Määritetään oletusarvot efektille
Definition: Smoke.cs:39
Smoke()
Savu, johon vaikuttaa tuuli
Definition: Smoke.cs:17
double addTime
Definition: Smoke.cs:11
static Vector Wind
Tuuli. Vaikuttaa vain efekteihin
Definition: Effects.cs:21
override Vector?? Position
Definition: Dimensions.cs:72
Kuva.
Definition: Image.cs:30
Satunnaisgeneraattori. Luo satunnaisia arvoja, mm. lukuja, vektoreita sekä kulmia.
Definition: RandomGen.cs:39
static double NextDouble(double min, double max)
Palauttaa satunnaisen liukuluvun parametrien
Definition: RandomGen.cs:70
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
Definition: Angle.cs:40
static Angle FromDegrees(double degree)
Luo kulman annettujen asteiden mukaan.
Definition: Angle.cs:324
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Definition: Time.cs:14
TimeSpan SinceLastUpdate
Aika joka on kulunut viime päivityksestä.
Definition: Time.cs:27
2D-vektori.
Definition: Vector.cs:67
double Y
Vektorin Y-komponentti
Definition: Vector.cs:339
double X
Vektorin X-komponentti.
Definition: Vector.cs:334
static Vector FromLengthAndAngle(double length, double angle)
Luo vektorin pituuden ja kulman perusteella.
Definition: Vector.cs:114