[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cinvoke-svn] r124 - trunk/skorpion
From: |
will |
Subject: |
[cinvoke-svn] r124 - trunk/skorpion |
Date: |
17 Nov 2006 00:31:07 -0500 |
Author: vmy
Date: 2006-11-17 00:31:06 -0500 (Fri, 17 Nov 2006)
New Revision: 124
Modified:
trunk/skorpion/Client.cs
trunk/skorpion/ParticleSystem.cs
trunk/skorpion/skorpion.cs
Log:
isolated constructor of paddle particles inside thruster clientstate variable;
improved thruster particle model but left it disabled for prym's sanity
Modified: trunk/skorpion/Client.cs
===================================================================
--- trunk/skorpion/Client.cs 2006-11-16 16:13:23 UTC (rev 123)
+++ trunk/skorpion/Client.cs 2006-11-17 05:31:06 UTC (rev 124)
@@ -138,7 +138,7 @@
s.Position =
m.ShipPos[j].GetVector();
s.Orientation =
m.ShipOrt[j].GetVector();
s.UpDirection =
m.ShipUp[j].GetVector();
- // s.Velocity =
m.ShipVel[j].GetVector();
+ //s.Velocity =
m.ShipVel[j].GetVector();
s.Team = m.ShipTeam[j];
}
Modified: trunk/skorpion/ParticleSystem.cs
===================================================================
--- trunk/skorpion/ParticleSystem.cs 2006-11-16 16:13:23 UTC (rev 123)
+++ trunk/skorpion/ParticleSystem.cs 2006-11-17 05:31:06 UTC (rev 124)
@@ -258,15 +258,41 @@
Particle p =
(Particle)_particlesList[ii];
// Calculate new position
- float fRand =
((float)_rand.Next(int.MaxValue)/(float)int.MaxValue) * 1.1f;
- p.positionVector =
p.initialPosition; // should be random
- p.positionVector.Scale(fRand);
+ // Calculate new position
+ float fT = _time -
p.creationTime;
+ float fGravity;
+
+ if (p.isSpark)
+ {
+ fGravity = -0.05f;
+ p.fadeProgression -=
(fSecsPerFrame * 2.25f);
+ }
+ else
+ {
+ fGravity = -9.8f;
+ p.fadeProgression -=
fSecsPerFrame * 0.25f;
+ }
+
+ p.positionVector =
p.initialVelocity * fT + p.initialPosition;
+ p.positionVector.Y += (0.5f *
fGravity) * (fT * fT);
+ p.velocityVector.Y =
p.initialVelocity.Y + fGravity * fT;
if (p.fadeProgression < 0.0f)
p.fadeProgression =
0.0f;
- // remove particles if they
time out
- _particlesList[ii] = p;
+ // remove particles... or if
they are a spark that has faded
+ //if (p.positionVector.Y + 100
< _radius || p.isSpark && p.fadeProgression <= 0.0f)
+ if(fT > .3f || p.isSpark &&
p.fadeProgression <= 0.0f)
+ {
+ // Kill particle
+ _freeParticles.Add(p);
+
_particlesList.RemoveAt(ii);
+
+ if (!p.isSpark)
+
_particleCount--;
+ }
+ else
+ _particlesList[ii] = p;
}
// emit NumParticlesToEmit new
particles, but dont exceed _particlesLimit
@@ -293,17 +319,16 @@
particle.initialPosition =
vPosition + new Vector3(_radius, 0.0f, 0.0f);
- particle.initialVelocity.X =
(float)Math.Cos(fRand1) * (float)Math.Sin(fRand2) * 2.5f;
- particle.initialVelocity.Z =
(float)Math.Sin(fRand1) * (float)Math.Sin(fRand2) * 2.5f;
- particle.initialVelocity.Y =
(float)Math.Cos(fRand2);
- particle.initialVelocity.Y *=
((float)_rand.Next(int.MaxValue)/(float)int.MaxValue) * _emitVelocity;
- //particle.initialVelocity =
vVelocity;
+ particle.initialVelocity =
vVelocity;
+
particle.initialVelocity.Scale(-1);
+
+ particle.initialVelocity.X +=
(float)Math.Cos(fRand1) * (float)Math.Sin(fRand2) * 2.5f;
+ particle.initialVelocity.Z +=
(float)Math.Sin(fRand1) * (float)Math.Sin(fRand2) * 2.5f;
+ particle.initialVelocity.Y +=
(float)Math.Cos(fRand2);
particle.initialVelocity.X +=
(float)Math.Cos(fRand1) * (float)Math.Sin(fRand2) * .5f;
particle.initialVelocity.Y +=
(float)Math.Sin(fRand1) * (float)Math.Sin(fRand2) * .5f;
particle.initialVelocity.Z +=
(float)Math.Sin(fRand1) * (float)Math.Cos(fRand2) * .5f;
-
//particle.initialVelocity.Scale(-10);
-
particle.positionVector =
particle.initialPosition;
particle.velocityVector =
particle.initialVelocity;
@@ -331,7 +356,7 @@
dev.RenderState.PointSize = 0.8f;
//0.08f;
break;
case Mode.engineThrob:
- dev.RenderState.PointSize = 8f; //0.08f;
+ dev.RenderState.PointSize = 2f; //0.08f;
break;
}
Modified: trunk/skorpion/skorpion.cs
===================================================================
--- trunk/skorpion/skorpion.cs 2006-11-16 16:13:23 UTC (rev 123)
+++ trunk/skorpion/skorpion.cs 2006-11-17 05:31:06 UTC (rev 124)
@@ -267,24 +267,26 @@
// ship text
// thrusters
- iThrusterParticleSystem = new
ParticleSystem(ParticleSystem.Mode.engineThrob, 512, 2048);
- iThrusterParticleSystem.Radius = 3;
- iThrusterParticleSystem.ParticlesLimit = 4;
- iThrusterParticleSystem.NumParticlesToEmit = 1;
- iThrusterParticleSystem.EmitVelocity = 1;
- iThrusterParticleTexture = TextureLoader.FromFile(
iDevice,
- System.IO.Directory.GetCurrentDirectory() +
"\\assets\\Particle.bmp",
- D3DX.Default,
- D3DX.Default,
- D3DX.Default,
- 0,
- Format.Unknown,
- Pool.Managed,
- Filter.Triangle|Filter.Mirror,
- Filter.Triangle|Filter.Mirror,
- 0);
- iThrusterParticleSystem.RestoreDeviceObjects(iDevice);
-
+ if(ClientConfig.Thrusters)
+ {
+ iThrusterParticleSystem = new
ParticleSystem(ParticleSystem.Mode.engineThrob, 512, 2048);
+ iThrusterParticleSystem.Radius = .1f;
+ iThrusterParticleSystem.ParticlesLimit = 512;
+ iThrusterParticleSystem.NumParticlesToEmit = 1;
+ iThrusterParticleSystem.EmitVelocity = 100;
+ iThrusterParticleTexture =
TextureLoader.FromFile( iDevice,
+
System.IO.Directory.GetCurrentDirectory() + "\\assets\\Particle.bmp",
+ D3DX.Default,
+ D3DX.Default,
+ D3DX.Default,
+ 0,
+ Format.Unknown,
+ Pool.Managed,
+ Filter.Triangle|Filter.Mirror,
+ Filter.Triangle|Filter.Mirror,
+ 0);
+
iThrusterParticleSystem.RestoreDeviceObjects(iDevice);
+ }
// particles
iBallParticleSystem = new
ParticleSystem(ParticleSystem.Mode.ballFountain, 512, 2048);
iBallParticleSystem.Radius = 3; //0.03f;
@@ -549,18 +551,21 @@
// draw pulsating thruster on ship
foreach(Entity e2 in
GlobalState.Client.ThisFrame.Values)
- //foreach(Entity e in
(Entity)GlobalState.Client.Universe.Entities[2])
{
if (e2.Type == Ship.TYPE)
{
- iDevice.Transform.World =
Matrix.Translation(e2.Position.X, e2.Position.Y, e2.Position.Z);
+ iDevice.Transform.World =
Matrix.Translation(0f, 0f, 0f);
if (ClientConfig.Thrusters)
{
+ Ship s = (Ship)e2;
+ Vector3 v = new
Vector3(s.Orientation.X, s.Orientation.Y, s.Orientation.Z);
+
+ v.Scale(100);
iThrusterParticleSystem.Update(.03F,
g_clrColor[(int)iThrusterParticleColor],
g_clrColorFade[(int)iThrusterParticleColor],
- new Vector3(0f, 0f,
0f), new Vector3(0f, 0f, .1f));
+ new
Vector3(e2.Position.X, e2.Position.Y, e2.Position.Z), v);
iDevice.RenderState.ZBufferWriteEnable = false;
iDevice.RenderState.AlphaBlendEnable = true;
iDevice.RenderState.SourceBlend
= Blend.One;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cinvoke-svn] r124 - trunk/skorpion,
will <=