Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - hardraid

46
este pregunta esta relacionada con este post:(http://www.comunidadgm.org/index.php?topic=10376.0) y la solucion la pueden ver en el ultimo script que ahora funciona perfecto. para simplificar muestro:

//comparacion con los sprites existentes por que no es posible sacar los indices del string(argument0)
//argument0 es un string con varios sprites separados por coma(,)
//c[j] contiene los sprites extraidos del string(argument0)
//como c[j] contiene el nombre del sprite lo comparo al final de la funcion y le asigno el ind correcto.
for(ind=0;sprite_exists(ind);ind+=1)
   {
   for(j=0;j<(string_count(',',argument0)+1);j+=1)
       {if(sprite_get_name(ind)=string(c[j])){c[j]=ind;}}
   }
47
eh? q paso yo esto ya lo habia solucionado y todo, ahbia gente q habia posteado.
48
Bueno esto costo... xD

hice dos scripts, en ellos podras ver sus especificaciones.el primero esta limitado a 15 sprites y el segundo es ilimitado pero un poco mas lenta tambien dependiendo de si tenes muchos sprites en el juego. los dos scripts pueden reproducir sprites animados.

cualqueir usuario puede editarlo para su mejor funcionamiento(optimizacion) y exponerlo.

//scr_sprites(velocidad,sprite0,....sprite14);
//1? argumento: colocar la velocidad de reproduccion de los sprites(1 equivale a la reproduccion normal de los sprites).
//2? al 16? argumento podes poner los sprites q quieras opcionalmente pero por lo menos 1 es obligatorio.

image_speed=argument0;

if!(variable_local_exists('n')){
long=0;
//opcionalemte agregamos los sprites.
c[0]=argument1;long+=1;
if(argument2){c[1]=argument2;long+=1;}
if(argument3){c[2]=argument3;long+=1;}
if(argument4){c[3]=argument4;long+=1;}
if(argument5){c[4]=argument5;long+=1;}
if(argument6){c[5]=argument6;long+=1;}
if(argument7){c[6]=argument7;long+=1;}
if(argument8){c[7]=argument8;long+=1;}
if(argument9){c[8]=argument9;long+=1;}
if(argument10){c[9]=argument10;long+=1;}
if(argument11){c[10]=argument11;long+=1;}
if(argument12){c[11]=argument12;long+=1;}
if(argument13){c[12]=argument13;long+=1;}
if(argument14){c[13]=argument14;long+=1;}
if(argument15){c[14]=argument15;long+=1;}

n=0;
}

//reproduccion de todos los sprites.

if(n<long)and(image_index=image_number-1){
       sprite_index=c[n];n+=1;
       if(n=long){n=0;}
}




//scr_sprites(sprites,velocidad);
//1? argumento: colocar entre comillas los nombres de los sprites separados por coma(,) sin espacios.
//2? argumento(opcional): colocar la velocidad de reproduccion de los sprites(por defecto es 30).

if!(variable_local_exists('n')){
c[0]=0;//creo un array para el registro de sprites
str=argument0;//guardo el string con los sprites para su utilizacion y modificacion en los for.

//procedimiento para obtener los sprites del string.
for(i=0;i<(string_count(',',argument0)+1);i+=1)
    {if!(i=(string_count(',',argument0)))
        {c[i]=string_copy(str,0,string_pos(',',str)-1);
        str=string_delete(str,1,string_pos(',',str));}
        else{c[i]=string_copy(str,0,string_length(str));}
    }

//comparacion con los sprites existentes por que no es posible sacar los indices del string(argument0)
for(ind=0;sprite_exists(ind);ind+=1)
    {
    for(j=0;j<(string_count(',',argument0)+1);j+=1)
        {if(sprite_get_name(ind)=string(c[j])){c[j]=ind;}}
    }

n=0;
}

//reproduccion de todos los sprites.
if(argument1){image_speed=argument1;}

if(n<(string_count(',',argument0)+1))and(image_index=image_number-1){
        sprite_index=c[n];n+=1;
        if(n=(string_count(',',argument0)+1)){n=0;}
}


49
meno meno... para eso tenes mi script xD http://www.comunidadgm.org/index.php?topic=9408.0

metelo en step o en el evento colision(te recomiendo que de tolerancia al script no le pongas 1, ponele de entre 2 a 10 dependiendo de si se laguea o no);
50
Bueno tengo un problema que por lo visto no le encontre solucion:
resulta que tengo el nombre de un sprite dentro de una cadena y no se como sacarle el indice para oder asignarselo al sprite_index.
51
Preguntas y respuestas / Re: ayuda con colisiones
Enero 29, 2010, 05:21:14 PM
q raro, voy a probarlo... pero vos lo probaste al codigo q te pase??

sino proba asi este seguro funciona:
Citar
//en el evento colisionar con enemigo dentro del objeto flecha pones.
if(image_index=1){enemigo.vida-=10;instance_destroy();}
if(image_index=2){enemigo.vida-=20;instance_destroy();}
52
Preguntas y respuestas / Re: ayuda con colisiones
Enero 28, 2010, 04:49:53 AM
En el evento colisionar con flecha dentro del objeto enemigo pones:
Citar
if(flecha.image_index=1){vida-=10;with(flecha){instance_destroy();}}
if(flecha.image_index=2){vida-=20;with(flecha){instance_destroy();}}
54
tambien puede ser que la particula tenga movimiento, por lo tanto ese movimiento es independiente del objeto.
55
que yo sepa no se puede en ningun lado hacer uan doble asignacion.
EDIT=no dije nada jaja...
56
mmm bueno si no tenes problema pasamelo y lo corrijo, tambien podes fijarte en otra maquina si pasa lo mismo.
57
entonces el problema lo tiene el objeto q no tiene movimiento.
58
es raro que se cierre por desbordamiento de memoria como dice fenris. Cuando me pasa algo asi normalmente se me cuelga el juego. Cualquier cosa podes probar bajando los FPS y correrlo en modo debug y fijate la cantidad de objetos q creas. sino mostra el codigo o los codigos involucrados en la accion para poder ver si hay algun error.
59
Preguntas y respuestas / Re: perseguir a varios
Enero 19, 2010, 10:10:15 PM
yo directamente no te recomiendo que para cambiar funciones y sprites de un personaje en particular crees otro objeto, si se trata de un mismo personaje simplemente ingeniatelas para que en ciertas circunstancias cambie el sprite y las acciones, no es nada complicado y te vas a ahorrar recursos y no vas a tener problemas tales como este.
60
en alarmas no te recomiendo, igual varia dependiendo de como lo quieras verificar, yo supongo que seria mejor en step con un if para que verifique todo el tiempo.