Yes, or use my code with a flare sprite:
//----------------------------------------------------------
//
// FLARES
//
// (c) Copyright 2008 by Snake-Soft
//
//----------------------------------------------------------
//----------------------------------------------------------
define _disable_trace,flag1; // to set in WED
define _flicker, flag2;
define _distance, skill1;
define _scale, skill2;
define _fade_dist, skill3;
define _alpha_min, skill4;
define _alpha_max, skill5;
define _origin_x, skill12; // for internal use
define _camdist, skill15;
define _campan, skill16;
//---------------------------------------------------------------
//uses _distance, _scale, _fade_dist, _alpha_min, _alpha_max, _disable_trace, _flicker
action flare
{
my.parent=you;
my.passable=on;
my.transparent=on;
my.flare=on;
my.bright=on;
my.nofog=on;
my.ambient=100;
my.oriented=off;
my.facing=on;
if(!my._distance) {my._distance=20;}
if(!my._scale) {my._scale=1;}
if(!my._fade_dist) {my._fade_dist=300;}
if(!my._alpha_max) {my._alpha_max=25;}
vec_set(my._origin_x, my.x);
while(1)
{
if(my._disable_trace==off)
{
// check visibility
you=my.parent;
result=c_trace(my._origin_x, camera.x, ignore_me|ignore_you|ignore_passents|ignore_passable|use_polygon);
if(result>0 && result<=camera.clip_far && you==camera.genius)
{
my.invisible=off;
// calculate distance and angle
vec_diff(temp.x, camera.x, my._origin_x);
my._camdist=max(my._distance, vec_to_angle(my._campan, temp.x));
if(my._camdist<my._distance) {my.invisible=on;}
else
{
// calculate alpha transparency
temp=sin(max(0, my._camdist/my._fade_dist)*90);
my.alpha=max(my._alpha_min, temp*my._alpha_max);
// calculate position
vec_set(my.x, vector(my._distance, 0, 0));
vec_rotate(my.x, my._campan);
vec_add(my.x, my._origin_x);
// calculate scale
my.scale_x=clamp(temp*my._scale, my._scale, my._scale*4);
my.scale_y=my.scale_x;
// calculate roll angle
my.roll=temp*90;
}
}
else {my.invisible=on;}
}
else
{
vec_diff(temp.x, camera.x, my._origin_x);
my._camdist=max(my._distance, vec_to_angle(my._campan, temp.x));
if(my._camdist<my._distance) {my.invisible=on;}
else
{
my.invisible=off;
// calculate alpha transparency
temp=sin(max(0, my._camdist/my._fade_dist)*90);
my.alpha=max(my._alpha_min, temp*my._alpha_max);
// calculate position
vec_set(my.x, vector(my._distance, 0, 0));
vec_rotate(my.x, my._campan);
vec_add(my.x, my._origin_x);
// calculate scale
my.scale_x=clamp(temp*my._scale, my._scale, my._scale*4);
my.scale_y=my.scale_x;
// calculate roll angle
my.roll=temp*90;
}
}
if(my._flicker) {my.alpha=clamp(my.alpha-int(random(3)*100*time), my._alpha_min/2, 100);}
wait(1);
}
}
//---------------------------------------------------------------