Gamestudio Links
Zorro Links
Newest Posts
Z9 getting Error 058
by madpower2000. 07/22/26 14:01
ZorroGPT
by TipmyPip. 07/21/26 17:54
New Zorro version 3.11
by jcl. 07/21/26 13:42
Lapsa's very own thread
by Lapsa. 07/18/26 13:40
Purchase A8 full licence version
by ukgamer. 07/17/26 05:52
AUM Magazine
Latest Screens
Dorifto samurai
Shadow 2
Rocker`s Revenge
Stug 3 Stormartillery
Who's Online Now
6 registered members (AndrewAMD, madpower2000, Quad, VoroneTZ, TipmyPip, 1 invisible), 1,674 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Newest Members
riggi89, shuhari, KD1990, Ephraim, Student_64151
19223 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Explosionsgröße ändern? #395528
02/24/12 12:38
02/24/12 12:38
Joined: Feb 2012
Posts: 16
M
MODinCLite Offline OP
Newbie
MODinCLite  Offline OP
Newbie
M

Joined: Feb 2012
Posts: 16
#include <acknex.h> // Cabecera LiteC

// Imágenes
BMAP* IMG_Particula = "particula.tga";
BMAP* IMG_Metralla = "metralla.tga";

// Variables
VECTOR vtemp;
VECTOR POSICION;

// Efecto metralla al inicio de la explosión
function ContFX_Metralla ( PARTICLE *p )
{
p.alpha += 6 *time_step;
if(p.alpha > 30) p.lifespan = 0;
}
//schwarzer Rauch
function FX_Metralla ( PARTICLE *p )
{
p.bmap = IMG_Metralla;
p.vel_x = random( 32 ) - 16; // Dirección aleatoria
p.vel_y = random( 32 ) - 16;
p.vel_z = random( 32 ) - 16;

p.size = 5 ;
p.alpha = 0 ;

p.flags |= MOVE | TRANSLUCENT;

p.event = ContFX_Metralla;
}

// grauer Rauch
function ContFX_Particulas ( PARTICLE *p )
{
p.alpha -= random(4) * time_step;
if( p.alpha < 0 ) p.lifespan = 0;
p.vel_x += random(0.6)-0.3;
p.vel_y += random(0.6)-0.3;

}
//grauer Rauch
function FX_Particulas ( PARTICLE *p )
{
p.bmap = IMG_Particula;
p.angle = random (360);

// Coloco las particulas en un plano paralelo a la pantalla
vec_for_angle ( vtemp, vector( p.angle, 0, 0 ) );
vec_rotate ( vtemp, vector(camera.pan, camera.tilt-90, 0 ) );
vec_normalize ( vtemp, 10+random(50) );
vec_add ( p.x, vtemp );

// Unas suben y otras se quedan donde están
if ( random(2) > 1)
{
vec_set ( vtemp, vector( 1, 0, 0 ) );
vec_rotate ( vtemp, vector(camera.pan, camera.tilt+90, 0 ) );
vec_normalize ( vtemp, 10+random(5) );
vec_set ( p.vel_x, vtemp );
}

p.vel_z *= random(1); // Velocidad vertical aleatoria

p.alpha = 50 ;

p.flags |= TRANSLUCENT | MOVE;

p.event = ContFX_Particulas;
}

//
function Flecha_Humo ()
{
set ( me, TRANSLUCENT | PASSABLE | LIGHT );
my.roll = random (360);
my.alpha = 100;
my.scale_x = 4;
my.scale_y = 7;
my.skill1 = random(3)+2;

vec_fill ( my.blue, 30 );

while ( my.alpha > 0 )
{
if ( my.alpha > 93 ) // Al principio aumenta rápidamente
{
vec_for_angle ( vtemp, vector( my.roll, 0, 0 ) );
vec_rotate ( vtemp, vector(camera.pan, camera.tilt+90, 0 ) );
vec_normalize ( vtemp, time_step * (my.alpha/my.skill1) * 0.4 );
vec_add ( my.x, vtemp );

my.scale_y += vec_length( vtemp )/46;

my.alpha -= time_step * 3;
}
else // y después se desvanece
{
vec_for_angle ( vtemp, vector( my.roll, 0, 0 ) );
vec_rotate ( vtemp, vector(camera.pan, camera.tilt+90, 0 ) );
vec_normalize ( vtemp, time_step * (my.alpha/(my.skill1*2)));
vec_add ( my.x, vtemp );

my.scale_y += vec_length( vtemp ) / 500;

my.alpha -= time_step * 9;
}
wait(1);
}
ent_remove ( me );
return;
}

// Onda expansiva
function Onda ()
{
set ( me, TRANSLUCENT | DECAL | PASSABLE );
my.alpha = 70;
vec_fill ( my.scale_x, 100 );
my.tilt = 90;
my.pan = random ( 360 );

vec_fill ( my.blue, 0 );


while( my.alpha > 0 )
{
vec_fill ( vtemp, time_step * 2 );
vec_add ( my.scale_x, vtemp );

my.alpha -= time_step * 7;

wait (1);
}

ent_remove ( me );
}

// Humo tras el fuego
function Humo ()
{
set ( me, TRANSLUCENT | LIGHT | ZNEAR | PASSABLE );

vec_set ( my.blue, vector ( 200,255,255 ) );

my.alpha = 40;
my.roll = random (360);


vec_fill ( my.scale_x, 0.4 );
while ( my.alpha > 0 )
{
my.alpha -= time_step * 2;
my.roll += time_step * sign(ang(my.roll))*1;

vec_fill ( vtemp, time_step *0.01);
vec_add ( my.scale_x, vtemp );
wait(1);
}

ent_remove ( me );
}

// Segunda ronda de fuego
function Cont_Fogonazo ()
{
set ( me, BRIGHT | TRANSLUCENT | ZNEAR | PASSABLE );

my.blue = 150;
my.green = 235;
my.red = 255;

my.alpha = 0;
my.roll = random (360);

vec_fill ( my.scale_x, 10 );

// Lo coloco en un plano paralelo a la pantalla
vec_for_angle ( vtemp, vector( my.roll, 0, 0 ) );
vec_rotate ( vtemp, vector(camera.pan, camera.tilt+90, 0 ) );
vec_normalize ( vtemp, 40 );
vec_add ( vtemp, POSICION );
vec_set ( my.x, vtemp );

while ( my.alpha < 100 ) // Al principio aumenta su tamaño y luminosidad
{
if (my.lightrange < 1000 ) my.lightrange += 2000 * time_step;
my.alpha += time_step * (random(20)+20);
my.roll += time_step * sign(ang(my.roll));
vec_normalize ( my.blue, 150 + random(105) );
wait(1);
}
ent_create ( "humo02.tga", my.x, Humo ); // en el cenit se crea el humo
while ( my.alpha > 0 ) // y disminuye su tamaño y luminosidad
{
if (my.lightrange > 0 ) my.lightrange -= 500 * time_step;
my.alpha -= time_step * 20;
my.roll += time_step * sign(ang(my.roll))*5;
wait(1);
}

while ( my.lightrange > 0 ) // Se apaga suavemente
{
my.lightrange -= 500 * time_step;
wait(1);
}

ent_remove(me);
}

// Primera ronda de fuego
function Fogonazo ()
{
var i;
set ( me, BRIGHT | TRANSLUCENT | LIGHT | ZNEAR | PASSABLE );

my.alpha = 50;
my.roll = random (360);

while ( my.alpha < 100 ) // Al principio aumenta su tamaño
{
my.alpha += time_step * (random(20)+20);
my.roll += time_step * sign(ang(my.roll));
vec_fill ( my.scale_x, my.alpha / 13 );
wait(1);
}

for ( i=0; i<4; i++) // En el zenit crea la segunda ronda de fuego
{
ent_create ( "flash01.tga", POSICION, Cont_Fogonazo );
you = ent_create ( "flash02.tga", POSICION, Cont_Fogonazo );

if (i == 0) set ( you, LIGHT ); // Solo ilumina la primera
}

for ( i = 0; i < 5; i ++) // Crea las coletas de la explosión
{
ent_create ( "humo01.tga", POSICION, Flecha_Humo );
}

effect( FX_Particulas, 200, POSICION, NULL ); // Particulas suspendidas
vec_add ( my.scale_x, vector(3,3,3) ); // Pequeño salto estético
ent_create ( "humo02.tga", my.x, Humo ); // Humo residual


while ( my.alpha > 0 ) // se desvanece
{
my.alpha -= time_step * 25;
my.roll += time_step * sign(ang(my.roll));
wait(1);
}

ent_remove(me);
}

function Crear_Explosion (int posX, int posY, int posZ)
{
vec_set(POSICION, vector(posX,posY,posZ));
vec_set(vtemp, vector(0, 0, 0));
ent_create ( "flash01.tga", POSICION, Fogonazo ); // Fuego
ent_create ( "flash02.tga", POSICION, Fogonazo );
ent_create ( "onda01.tga", POSICION, Onda ); // Onda expansiva
effect ( FX_Metralla, 1500, POSICION, NULL ); // Metralla

}


diesen Code habe ich aus dem Internet wie kann ich hier die Größe der kommpleten Explosion ändern? Sei sollte ca. 3x so groß sein.

LG MODinCLite

Re: Explosionsgröße ändern? [Re: MODinCLite] #395530
02/24/12 13:34
02/24/12 13:34
Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Rondidon Offline
Expert
Rondidon  Offline
Expert

Joined: Aug 2002
Posts: 2,183
Germany, BaW�
Such mal nach den scale_x und scale_y Variablen im Code. Die steuern die Skalierung bzw. die Größe der Grafiken.

Re: Explosionsgröße ändern? [Re: Rondidon] #395550
02/24/12 16:26
02/24/12 16:26
Joined: Feb 2012
Posts: 16
M
MODinCLite Offline OP
Newbie
MODinCLite  Offline OP
Newbie
M

Joined: Feb 2012
Posts: 16
Ja das habe ich schon versucht aber dabei beeinflusse ich nur den Rauch aber nicht das Gelbe / Orange bei einer Explosion.

Re: Explosionsgröße ändern? [Re: MODinCLite] #395556
02/24/12 16:47
02/24/12 16:47
Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
Espér Offline
Expert
Espér  Offline
Expert

Joined: Mar 2008
Posts: 2,247
Baden Württemberg, Germany
die größe.. also ausbreitung einer explosion änderst du normal über die vel_x/y/z werte. ggf noch den alphawert erhöhen um frühzeitiges ausblenden zu verhindern.

je höher die velocity werte (beschleunigungswerte) sind, desto schneller fliegen die partikel nach außen weg, und je höher der alphawert zu beginn ist, desto länger bleiben die partikel am leben.

Es wäre btw nett englische kommentare und namen im script zu haben, und den [ code][ \code] Tag zu nutzen xD - aber egal, sollte so gehen.


Selling my Acknex Engine Editions (A7 Com & A8 Pro):
>> click here if you are interested <<
Re: Explosionsgröße ändern? [Re: Espér] #395559
02/24/12 17:13
02/24/12 17:13
Joined: Feb 2012
Posts: 16
M
MODinCLite Offline OP
Newbie
MODinCLite  Offline OP
Newbie
M

Joined: Feb 2012
Posts: 16
Danke. Die haben nur Ausländische Namen weil ich den Code aus dem Internet habe. Hätte ich das selber gemacht wüsste ich ja wie sie vergrößern könnte.

Lg

Last edited by MODinCLite; 02/24/12 17:15.
Re: Explosionsgröße ändern? [Re: MODinCLite] #395564
02/24/12 18:05
02/24/12 18:05
Joined: Feb 2009
Posts: 2,154
Damocles_ Offline
Expert
Damocles_  Offline
Expert

Joined: Feb 2009
Posts: 2,154
Hier in Deutsch
Code:
während( meine.durchdichtig > 0 )
{
meine.durchdichtig -= zeit_schritt * 2;
meine.rolle += zeit_schritt * vorzeichenbehaftet(winkel(meine.rolle)*1;

wecker_füllen ( geschw_geradeebend , zeit_schritt *0.01);
wecker_zusammenzählen( meine.größe_x, geschw_geradeebend );
warte(1);
}



Orinal:
Code:
while ( my.alpha > 0 )
{
my.alpha -= time_step * 2;
my.roll += time_step * sign(ang(my.roll))*1;

vec_fill ( vtemp, time_step *0.01);
vec_add ( my.scale_x, vtemp );
wait(1);
}




Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1