Simple explosion, on top of the click.

Code:
#include <acknex.h>
#include <default.c>

SOUND* Explosion_wav = "Explosion.wav";
BMAP* Fire_tga = "Fire.tga";

function VecRandomize(var *vec, var range);
function FadeParticle(PARTICLE *p);
function Fire(PARTICLE *p);
function Explosion();

VECTOR ParticlePos;

/* Main Function
---------------------------------*/
function main()
{
	mouse_mode = 2;
	level_load("Explosao.wmb");
	wait(2);
	while(1)
	{
		on_mouse_left = Explosion;
		vec_set(mouse_pos, mouse_cursor);
		vec_set(ParticlePos, mouse_pos);
		wait(1);
	}
}

function Explosion()
{
	ParticlePos.z = 200;
	snd_play(Explosion_wav, 100, 1);
	vec_for_screen(ParticlePos, camera);
	effect(Fire, 1000, ParticlePos, normal);
}


/* Particle Generator
-------------------------------*/
function Fire(PARTICLE *p)
{
	var temp[3];
	VecRandomize(temp, 10);
	vec_add(p.vel_x, temp);
	p.alpha = 25 + random(25);
	p.bmap = Fire_tga;
	p.flags |= (BRIGHT | MOVE);
	p.event = FadeParticle;
}


/* Dist and Direction of particle
---------------------------------------------------------*/
function VecRandomize(var *vec, var range)
{
	vec[0] = random(1) - 0.5;
	vec[1] = random(1) - 0.5;
	vec[2] = random(1) - 0.5;
	vec_normalize(vec, random(range));
}


/* Particle life
-------------------------------*/
function FadeParticle(PARTICLE *p)
{
	p.alpha -= 2 * time_step;
	if(p.alpha <= 0)p.lifespan = 0;
}


Executavel


Breve Meu E-BOOK
Desenvolvimento de Jogos Em Lite-C
Iniciante em 3D Game Studio
Meu Portfólio