C# 클래스 TuneBlaster_.ParticleSystem

ParticleSystem is an abstract class that provides the basic functionality to create a particle effect.
상속: Microsoft.Xna.Framework.DrawableGameComponent
파일 보기 프로젝트 열기: kiniry-teaching/UCD

보호된 프로퍼티들

프로퍼티 타입 설명
maxAcceleration float
maxInitialSpeed float
maxLifetime float
maxNumParticles int
maxRotationSpeed float
maxScale float
minAcceleration float
minInitialSpeed float
minLifetime float
minNumParticles int
minRotationSpeed float
minScale float
spriteBlendMode SpriteBlendMode
textureFilename string

공개 메소드들

메소드 설명
AddParticles ( Vector2 where ) : void

AddParticles's job is to add an effect somewhere on the screen. If there aren't enough particles in the freeParticles queue, it will use as many as it can. This means that if there not enough particles available, calling AddParticles will have no effect.

Draw ( GameTime gameTime ) : void

overriden from DrawableGameComponent, Draw will use Engine's sprite batch to render all of the active particles.

Initialize ( ) : void

override the base class's Initialize to do some additional work; we want to call InitializeConstants to let subclasses set the constants that will be used. also, the particle array and freeParticles queue are set up here.

Update ( GameTime gameTime ) : void

overriden from DrawableGameComponent, Update will update all of the active particles.

보호된 메소드들

메소드 설명
InitializeConstants ( ) : void
InitializeParticle ( Particle p, Vector2 where ) : void
LoadContent ( ) : void

Override the base class LoadContent to load the texture. once it's loaded, calculate the origin.

ParticleSystem ( Engine game, int howManyEffects ) : System

Constructs a new ParticleSystem.

PickRandomDirection ( ) : Vector2

PickRandomDirection is used by InitializeParticles to decide which direction particles will move. The default implementation is a random vector in a circular pattern.

메소드 상세

AddParticles() 공개 메소드

AddParticles's job is to add an effect somewhere on the screen. If there aren't enough particles in the freeParticles queue, it will use as many as it can. This means that if there not enough particles available, calling AddParticles will have no effect.
public AddParticles ( Vector2 where ) : void
where Vector2 where the particle effect should be created
리턴 void

Draw() 공개 메소드

overriden from DrawableGameComponent, Draw will use Engine's sprite batch to render all of the active particles.
public Draw ( GameTime gameTime ) : void
gameTime Microsoft.Xna.Framework.GameTime
리턴 void

Initialize() 공개 메소드

override the base class's Initialize to do some additional work; we want to call InitializeConstants to let subclasses set the constants that will be used. also, the particle array and freeParticles queue are set up here.
public Initialize ( ) : void
리턴 void

InitializeConstants() 보호된 추상적인 메소드

protected abstract InitializeConstants ( ) : void
리턴 void

InitializeParticle() 보호된 메소드

protected InitializeParticle ( Particle p, Vector2 where ) : void
p Particle the particle to initialize
where Vector2 the position on the screen that the particle should be ///
리턴 void

LoadContent() 보호된 메소드

Override the base class LoadContent to load the texture. once it's loaded, calculate the origin.
protected LoadContent ( ) : void
리턴 void

ParticleSystem() 보호된 메소드

Constructs a new ParticleSystem.
protected ParticleSystem ( Engine game, int howManyEffects ) : System
game Engine The host for this particle system. The game keeps the /// content manager and sprite batch for us.
howManyEffects int the maximum number of particle effects that /// are expected on screen at once.
리턴 System

PickRandomDirection() 보호된 메소드

PickRandomDirection is used by InitializeParticles to decide which direction particles will move. The default implementation is a random vector in a circular pattern.
protected PickRandomDirection ( ) : Vector2
리턴 Vector2

Update() 공개 메소드

overriden from DrawableGameComponent, Update will update all of the active particles.
public Update ( GameTime gameTime ) : void
gameTime Microsoft.Xna.Framework.GameTime
리턴 void

프로퍼티 상세

maxAcceleration 보호되어 있는 프로퍼티

protected float maxAcceleration
리턴 float

maxInitialSpeed 보호되어 있는 프로퍼티

protected float maxInitialSpeed
리턴 float

maxLifetime 보호되어 있는 프로퍼티

protected float maxLifetime
리턴 float

maxNumParticles 보호되어 있는 프로퍼티

protected int maxNumParticles
리턴 int

maxRotationSpeed 보호되어 있는 프로퍼티

protected float maxRotationSpeed
리턴 float

maxScale 보호되어 있는 프로퍼티

protected float maxScale
리턴 float

minAcceleration 보호되어 있는 프로퍼티

minAcceleration and maxAcceleration are used to control the acceleration of the particles. The particle's acceleration will be a random number between these two. By default, the direction of acceleration is the same as the direction of the initial velocity.
protected float minAcceleration
리턴 float

minInitialSpeed 보호되어 있는 프로퍼티

minInitialSpeed and maxInitialSpeed are used to control the initial velocity of the particles. The particle's initial speed will be a random number between these two. The direction is determined by the function PickRandomDirection, which can be overriden.
protected float minInitialSpeed
리턴 float

minLifetime 보호되어 있는 프로퍼티

minLifetime and maxLifetime are used to control the lifetime. Each particle's lifetime will be a random number between these two. Lifetime is used to determine how long a particle "lasts." Also, in the base implementation of Draw, lifetime is also used to calculate alpha and scale values to avoid particles suddenly "popping" into view
protected float minLifetime
리턴 float

minNumParticles 보호되어 있는 프로퍼티

minNumParticles and maxNumParticles control the number of particles that are added when AddParticles is called. The number of particles will be a random number between minNumParticles and maxNumParticles.
protected int minNumParticles
리턴 int

minRotationSpeed 보호되어 있는 프로퍼티

minRotationSpeed and maxRotationSpeed control the particles' angular velocity: the speed at which particles will rotate. Each particle's rotation speed will be a random number between minRotationSpeed and maxRotationSpeed. Use smaller numbers to make particle systems look calm and wispy, and large numbers for more violent effects.
protected float minRotationSpeed
리턴 float

minScale 보호되어 있는 프로퍼티

to get some additional variance in the appearance of the particles, we give them all random scales. the scale is a value between minScale and maxScale, and is additionally affected by the particle's lifetime to avoid particles "popping" into view.
protected float minScale
리턴 float

spriteBlendMode 보호되어 있는 프로퍼티

different effects can use different blend modes. fire and explosions work well with additive blending, for example.
protected SpriteBlendMode spriteBlendMode
리턴 SpriteBlendMode

textureFilename 보호되어 있는 프로퍼티

this controls the texture that the particle system uses. It will be used as an argument to ContentManager.Load.
protected string textureFilename
리턴 string