Survivalcraft API 1.8.2.3
v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
FuseParticleSystem.cs
浏览该文件的文档.
1
using
Engine
;
2
using
Engine.Graphics
;
3
4
namespace
Game
{
5
public
class
FuseParticleSystem
:
ParticleSystem
<FuseParticleSystem.Particle> {
6
public
class
Particle
:
Game
.
Particle
{
7
public
float
Time
;
8
9
public
float
TimeToLive
;
10
11
public
float
Speed
;
12
13
public
float
TargetSpeed
;
14
}
15
16
public
Random
m_random
=
new
();
17
18
public
Vector3
m_position
;
19
20
public
float
m_toGenerate
;
21
22
public
bool
m_visible
;
23
24
public
FuseParticleSystem
(
Vector3
position) : base(15) {
25
m_position
= position;
26
Texture
=
ContentManager
.
Get
<
Texture2D
>(
"Textures/FireParticle"
);
27
TextureSlotsCount
= 3;
28
}
29
30
public
override
bool
Simulate
(
float
dt) {
31
if
(
m_visible
) {
32
m_toGenerate
+= 15f * dt;
33
for
(
int
i = 0; i <
Particles
.Length; i++) {
34
Particle
particle =
Particles
[i];
35
if
(particle.
IsActive
) {
36
particle.Time += dt;
37
particle.TimeToLive -= dt;
38
if
(particle.
TimeToLive
> 0f) {
39
particle.Position.Y += particle.Speed * dt;
40
particle.Speed =
MathUtils
.
Max
(particle.
Speed
- 1.5f * dt, particle.
TargetSpeed
);
41
particle.TextureSlot = (int)
MathUtils
.
Min
(9f * particle.
Time
/ 0.75f, 8f);
42
particle.Size =
new
Vector2
(0.07f * (1f + 2f * particle.
Time
));
43
}
44
else
{
45
particle.IsActive =
false
;
46
}
47
}
48
else
if
(
m_toGenerate
>= 1f) {
49
particle.IsActive =
true
;
50
particle.Position =
m_position
+ 0.02f *
new
Vector3
(0f,
m_random
.Float(-1f, 1f), 0f);
51
particle.Color =
Color
.
White
;
52
particle.TargetSpeed =
m_random
.Float(0.45f, 0.55f) * 0.4f;
53
particle.Speed =
m_random
.Float(0.45f, 0.55f) * 2.5f;
54
particle.Time = 0f;
55
particle.Size =
Vector2
.
Zero
;
56
particle.TimeToLive =
m_random
.Float(0.3f, 1f);
57
particle.FlipX =
m_random
.Int(0, 1) == 0;
58
particle.FlipY =
m_random
.Int(0, 1) == 0;
59
m_toGenerate
-= 1f;
60
}
61
}
62
m_toGenerate
=
MathUtils
.
Remainder
(
m_toGenerate
, 1f);
63
}
64
m_visible
=
false
;
65
return
false
;
66
}
67
68
public
override
void
Draw
(
Camera
camera) {
69
float
num =
Vector3
.
Dot
(
m_position
- camera.
ViewPosition
, camera.
ViewDirection
);
70
if
(num > -0.5f
71
&& num <= 48f
72
&&
Vector3
.
DistanceSquared
(
m_position
, camera.
ViewPosition
) <= 1024f) {
73
m_visible
=
true
;
74
base.Draw(camera);
75
}
76
}
77
}
78
}
Vector3
Engine.Vector3 Vector3
定义
SubsystemAudio.cs:5
Engine.Graphics.Texture2D
定义
Texture2D.cs:15
Engine.MathUtils
定义
MathUtils.cs:2
Engine.MathUtils.Remainder
static float Remainder(float x, float y)
定义
MathUtils.cs:183
Engine.MathUtils.Min
static int Min(int x1, int x2)
定义
MathUtils.cs:7
Engine.MathUtils.Max
static int Max(int x1, int x2)
定义
MathUtils.cs:18
Game.Camera
定义
Camera.cs:5
Game.Camera.ViewPosition
Vector3 ViewPosition
定义
Camera.cs:10
Game.Camera.ViewDirection
Vector3 ViewDirection
定义
Camera.cs:12
Game.ContentManager
定义
ContentManager.cs:50
Game.ContentManager.Get
static object Get(Type type, string name)
定义
ContentManager.cs:70
Game.FuseParticleSystem.Particle
定义
FuseParticleSystem.cs:6
Game.FuseParticleSystem.Particle.TimeToLive
float TimeToLive
定义
FuseParticleSystem.cs:9
Game.FuseParticleSystem.Particle.Speed
float Speed
定义
FuseParticleSystem.cs:11
Game.FuseParticleSystem.Particle.Time
float Time
定义
FuseParticleSystem.cs:7
Game.FuseParticleSystem.Particle.TargetSpeed
float TargetSpeed
定义
FuseParticleSystem.cs:13
Game.FuseParticleSystem.FuseParticleSystem
FuseParticleSystem(Vector3 position)
定义
FuseParticleSystem.cs:24
Game.FuseParticleSystem.Simulate
override bool Simulate(float dt)
定义
FuseParticleSystem.cs:30
Game.FuseParticleSystem.m_random
Random m_random
定义
FuseParticleSystem.cs:16
Game.FuseParticleSystem.m_toGenerate
float m_toGenerate
定义
FuseParticleSystem.cs:20
Game.FuseParticleSystem.Draw
override void Draw(Camera camera)
定义
FuseParticleSystem.cs:68
Game.FuseParticleSystem.m_visible
bool m_visible
定义
FuseParticleSystem.cs:22
Game.FuseParticleSystem.m_position
Vector3 m_position
定义
FuseParticleSystem.cs:18
Game.Particle.IsActive
bool IsActive
定义
Particle.cs:5
Game.ParticleSystem-1-g.TextureSlotsCount
int TextureSlotsCount
定义
ParticleSystem.cs:33
Game.ParticleSystem-1-g.Texture
Texture2D Texture
定义
ParticleSystem.cs:22
Game.ParticleSystem-1-g.ParticleSystem
ParticleSystem(int particlesCount)
定义
ParticleSystem.cs:35
Game.ParticleSystem-1-g.Particles
T[] Particles
定义
ParticleSystem.cs:20
Game.Random
定义
Random.cs:5
Engine.Graphics
定义
BaseBatch.cs:1
Engine.Graphics.ShaderParameterType.Vector2
@ Vector2
定义
ShaderParameterType.cs:4
Engine
定义
BaseSound.cs:10
Game
定义
ContentFileBridge.cs:4
Engine.Color
定义
Color.cs:2
Engine.Color.White
static Color White
定义
Color.cs:15
Engine.Vector2
定义
Vector2.cs:2
Engine.Vector2.Zero
static readonly Vector2 Zero
定义
Vector2.cs:7
Engine.Vector3
定义
Vector3.cs:2
Engine.Vector3.DistanceSquared
static float DistanceSquared(Vector3 v1, Vector3 v2)
定义
Vector3.cs:109
Engine.Vector3.Dot
static float Dot(Vector3 v1, Vector3 v2)
定义
Vector3.cs:112
SurvivalcraftApi 1.8.2.3
Survivalcraft.Windows
Game
FuseParticleSystem.cs
制作者
1.16.1