- 2_marsmission__2__sprites_a.zip
- Atmosphere_Sun_00.SP3
- Atmosphere_Sun_01.SP3
- Atmosphere_Sun_02.SP3
- Atmosphere_Sun_03.SP3
- Atmosphere_Sun_04.SP3
- Atmosphere_Sun_05.SP3
- Atmosphere_Sun_06.SP3
- Atmosphere_Sun_07.SP3
- Atmosphere_Sun_08.SP3
- Atmosphere_Sun_09.SP3
- Atmosphere_Sun_10.SP3
- ATMOSPHERE_VENUS_00.SP3
- ATMOSPHERE_VENUS_01.SP3
- ATMOSPHERE_VENUS_02.SP3
- ATMOSPHERE_VENUS_03.SP3
- ATMOSPHERE_VENUS_04.SP3
- ATMOSPHERE_VENUS_05.SP3
- ATMOSPHERE_VENUS_06.SP3
- 1_marsmission__2__sourccode.zip
- Mars Mission
- Mars Mission.suo
- Mars Mission
- 4_marsmission__2__bitmaps.zip
- Ship_Fighter.bmp
- Ship_saucer.bmp
- Ship_scout.bmp
- Ship_shuttle.bmp
- Ship_transport.bmp
- Shrapnel_Fighter_0.bmp
- Shrapnel_Fighter_1.bmp
- Shrapnel_Fighter_2.bmp
- Shrapnel_Fighter_3.bmp
- Shrapnel_Fighter_4.bmp
- Shrapnel_Shuttle_0.bmp
- Shrapnel_Shuttle_1.bmp
- Shrapnel_Shuttle_2.bmp
- Shrapnel_Shuttle_3.bmp
- Shrapnel_Shuttle_4.bmp
- Shrapnel_Shuttle_5.bmp
- Shrapnel_Shuttle_6.bmp
- Shrapnel_standard_0.bmp
- Shrapnel_standard_1.bmp
- Shrapnel_standard_2.bmp
- SO_Amalthea.bmp
- SO_ariel.bmp
- SO_Atlas.bmp
- SO_Callisto.bmp
- SO_Charon.bmp
- SO_default_0.bmp
- SO_default_1.bmp
- SO_Deimos.bmp
- SO_Earth.bmp
- SO_Enceladus.bmp
- SO_Epimetheus.bmp
- SO_Europa.bmp
- SO_ganymede.bmp
- SO_Hyperion.bmp
- SO_Iapetus.bmp
- SO_Io.bmp
- SO_Janus.bmp
- SO_Jupiter.bmp
- SO_Larissa.bmp
- SO_Luna.bmp
- SO_mars.bmp
- SO_mercury.bmp
- SO_mimas.bmp
- SO_Miranda.bmp
- SO_Neptune.bmp
- SO_Oberon.bmp
- SO_Pandora.bmp
- SO_Phobos.bmp
- SO_Phoebe.bmp
- SO_Pluto.bmp
- SO_Prometheus.bmp
- SO_Proteus.bmp
- SO_Rhea.bmp
- SO_Saturn.bmp
- SO_SolarShadow.bmp
- SO_Sun.bmp
- SO_Telesto.bmp
- SO_tethys.bmp
- SO_Titan.bmp
- SO_Titania.bmp
- SO_Triton.bmp
- SO_Umbriel.bmp
- SO_Uranus.bmp
- SO_Venus.bmp
- starfield.jpg
- Structure_Base.bmp
- Structure_Terran_Base.bmp
- 3_marsmission__2__sprites_b.zip
- Atmosphere_Sun_11.SP3
- LANDING GEAR.SP3
- SHUTTLE.SP3
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace Mars_Mission
{
public class classExplosion
{
public static classShrapnel[] cShrapnel_Active = new classShrapnel[0];
public static void makeExplosion(ref classCollisionDetectionObject cCDO_Origin, double dblExplosiveForce, int intSizeExplosion)
{
//intSizeExplosion = 1;
int intStartInsert = cShrapnel_Active.Length;
Array.Resize<classShrapnel>(ref cShrapnel_Active, cShrapnel_Active.Length + intSizeExplosion);
for (int intCounter = 0; intCounter < intSizeExplosion; intCounter++)
{
cShrapnel_Active[intStartInsert + intCounter] = new classShrapnel(ref cCDO_Origin, dblExplosiveForce, intSizeExplosion);
}
}
public static void clearShrapnel()
{
cShrapnel_Active = new classShrapnel[0];
}
public static void AnimateActiveShrapnel()
{
for (int intShrapnelCounter = 0; intShrapnelCounter < cShrapnel_Active.Length; intShrapnelCounter++)
{
while (intShrapnelCounter < cShrapnel_Active.Length && cShrapnel_Active[intShrapnelCounter].intLifeSpan <= 0)
{
cShrapnel_Active[intShrapnelCounter] = cShrapnel_Active[cShrapnel_Active.Length - 1];
Array.Resize<classShrapnel>(ref cShrapnel_Active, cShrapnel_Active.Length - 1);
}
if (intShrapnelCounter < cShrapnel_Active.Length)
{
classCollisionDetectionObject cCDO = cShrapnel_Active[intShrapnelCounter].cCDO;
cCDO.angle += cCDO.dblTurningRate;
cCDO.dptEnd.X = cCDO.dptPos.X + cCDO.dptVel.X;
cCDO.dptEnd.Y = cCDO.dptPos.Y + cCDO.dptVel.Y;
switch (cShrapnel_Active[intShrapnelCounter].cCDO.eLoc)
{
case enuLocation.Base:
case enuLocation.Cave:
case enuLocation.Surface:
cCDO.cLandscapeCell.cLandscape.gravityEffects(ref cCDO);
classCollisionResult cResult = cCDO.cLandscapeCell.cLandscape.moveLandscape(ref cCDO);
cCDO.dptPos = cCDO.dptEnd.Copy();
if (cResult.eCollision == enuCollisionResult.crash)
cShrapnel_Active[intShrapnelCounter].intLifeSpan -= 1;
break;
default:
cShrapnel_Active[intShrapnelCounter].intLifeSpan--;
break;
}
}
}
}
public class classShrapnel
{
static public classRotatedImage[] cRotImages;
static classSortedImages[] cSortedImages;
enum enuShrapnelTypes { Shuttle, Fighter, standard, _numShrapnelTypes };
public int intLifeSpan = 10;
public classCollisionDetectionObject cCDO;
public classRotatedImage cBmp;
enuShrapnelTypes eShrapnelType;
public classShrapnel(ref classCollisionDetectionObject cCDO_Origin, double dblExplosiveForce, int intSize)
{
cCDO = cCDO_Origin.Copy();
cCDO.radius /= intSize;
cCDO.dblTurningRate = classMath.rnd.NextDouble() * (Math.PI / 32);
cCDO.dptVel.X += (classMath.rnd.NextDouble() * 2 * dblExplosiveForce) - dblExplosiveForce;
cCDO.dptVel.Y += (classMath.rnd.NextDouble() * 2 * dblExplosiveForce) - dblExplosiveForce;
intLifeSpan = 5;
switch (cCDO.eTypeObject)
{
case classCollisionDetectionObject.enuTypeObject.Ship:
switch (cCDO.cIAmShip.eModel)
{
case enuShipModels.shuttle:
eShrapnelType = enuShrapnelTypes.Shuttle;
break;
case enuShipModels.fighter:
eShrapnelType = enuShrapnelTypes.Fighter;
break;
default:
eShrapnelType = enuShrapnelTypes.standard;
break;
}
break;
default:
eShrapnelType = enuShrapnelTypes.standard;
break;
}
cCDO.eTypeObject = classCollisionDetectionObject.enuTypeObject.Shrapnel;
setImage();
}
void setImage()
{
if (cSortedImages == null)
{
cSortedImages = new classSortedImages[(int)enuShrapnelTypes._numShrapnelTypes];
for (enuShrapnelTypes eTypeCounter = (enuShrapnelTypes)0; eTypeCounter < enuShrapnelTypes._numShrapnelTypes; eTypeCounter++)
{
string strType = eTypeCounter.ToString().ToUpper();
cSortedImages[(int)eTypeCounter] = new classSortedImages();
cSortedImages[(int)eTypeCounter].cRotatedImages = new classRotatedImage[0];
for (int intRotImageCounter = 0; intRotImageCounter < cRotImages.Length; intRotImageCounter++)
{
string strFilename = cRotImages[intRotImageCounter].strMyFilename.ToUpper().Substring("shrapnel_".Length);
if (strFilename.Length > strType.Length)
{
if (strFilename.Substring(0, strType.Length) == strType)
{
Array.Resize<classRotatedImage>(ref cSortedImages[(int)eTypeCounter].cRotatedImages, cSortedImages[(int)eTypeCounter].cRotatedImages.Length + 1);
cSortedImages[(int)eTypeCounter].cRotatedImages[cSortedImages[(int)eTypeCounter].cRotatedImages.Length - 1] = cRotImages[intRotImageCounter];
}
}
}
}
}
cBmp = cSortedImages[(int)eShrapnelType].cRotatedImages[classMath.getRndInt(cSortedImages[(int)eShrapnelType].cRotatedImages.Length)];
}
}
class classSortedImages
{
public classRotatedImage[] cRotatedImages;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Christ Kennedy grew up in the suburbs of Montreal and is a bilingual Quebecois with a bachelor’s degree in computer engineering from McGill University. He is unemployable and currently living in Moncton, N.B. writing his next novel.