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 - Ciberman

241
Preguntas y respuestas / Re: Crear ascensor
Septiembre 29, 2010, 04:30:29 PM
En el c?digo de tu Ascensor horizontal le pones en el obj_ascensor que cuando est? el pj arriba de ?l:
[gml]
obj_pj.x+=x-xprevious;
[/gml]
cuando tengas tu ascensor vertical le pones:
[gml]
obj_pj.y+=y-yprevious;
[/gml]
242
Preguntas y respuestas / Re: Coordenadas misteriosas
Septiembre 20, 2010, 03:31:13 PM
probaste con otras coordenadas? y cambiandole el origen al sprite?
243
Es rar?simo...
Regla n?mero uno: nunca le eches la culpa al GM
Regla n?mero dos: Mira el Manual
Regla N?mero Tres: Tu eres el que tiene mal el c?digo no el GM

Eso se aplica siempre, no es tu caso particular, lo digo para todos los makeros...

primero debes fijarte bien todos los c?digos que tienes, te fijaste que no dejaste alguna secci?n con DyD, o alguna parte en donde se cambia la image_speed ?
Usaste el Debugger para corroborar el error?
Podr?as poner todos los c?digos que utilizas para que sea m?s facil localizar el error, un caracter cambia todo...
244
Los Usuarios que llevan tiempo en la comunidad probablemente se acuerden de un script de Efecto submarino, no recuerdo qui?n lo creo, pero era muy bueno...
Con el ?ltimo cribado borraron este y otros super scripts.

Quisiera saber si alguien lo tiene por ahi guardado o si sabe de algun script que haga un efecto similar.

De antemano, Gracias.

Ciberman.
245
Desarrollo de Scripts / draw_text_c2c (caracter a caracter)
Septiembre 08, 2010, 03:17:28 AM
Creador: Ciberman (Javier H. Mora)
Versi?n GM: GM8  :GM8: pero debe funkar en otras...
Descripci?n:
Qui?n no ha lidiado con el tema de tener que dibujar algun texto con draw text ext letra por letra y poder saber donde termin? de escrivir para poner alguna otra cosa luego... mh.. no, no me entendieron, voy de nuevo.... aplicaciones pr?cticas de este script:

-hacer un codigo de di?logo RPG letra a letra
-verificar la posicion en donde quedar?a cualquier caracter que queramos (luego de ser dibujado)
-Controlar que nuestro texto no pase de X caracteres
-O de un heigth espec?fico...
-dibujar solo la parte que nos interesa de largos textos..
-controlar cuando se est? por dibujar un espacio (o cualquier otro caracter)

Uso:
para usar el scrip se llama igual que el draw text ext pero con un argumento extra opcional que es la posicion inicial desde la que dibuja...
OJO::: el script iniciar? todo (si es que lo ejecutas por primera vez) y dibujar? solo un caracter. por lo que deberas llamarlo en un bucle 50 veces si quieres dibujar 50 caracteres.
asi si quieres dibujar todo deberas hacer asi:
[gml]
for(c=0;c<=string_length(string);c+=1;)
   {
   draw_text_c2c(25,25,string,-1,750)  // dibuja texto letra a letra
   }
draw_text_c2c_reset();
[/gml]
remplazando string y los argumentos por los tuyos...
osea, llamas a la funcion tantas veces como lo nesecites y cuando termines de escrivir tu texto llamas a la funcion draw_text_c2c_reset();


Scripts
Bien ... ahora me dejo de hablar y les presento al script

Script.. este es el usuario... usuario, este es el script:
draw_text_c2c:
[gml]
///////// draw_text_c2c
// Creador: Ciberman (Javier H. Mora)
// No son necesarios los cr?ditos, aunque se agradecen.
// --------------------------------------
// Uso: draw_text_c2c(x,y,string,sep,w[,posicion inicial]);

//este script se usa con draw_text_c2c_reset()


var xxx,yyy,str,pos,width,sep,ch,ww,hh,xx,yy,esp,posi;
xxx=argument0 // posicion inicial
yyy=argument1
str=argument2
sep=argument3 // sepracion de renglones (-1 default)
width=argument4

posi=max(1,argument5); //opcional, posicion inicial

if !(variable_global_exists("scrdrawtextext"))
   {
   global.scrdrawtextext[0]=xxx; //x final
   global.scrdrawtextext[1]=yyy; //y final
   global.scrdrawtextext[2]=posi;   //pos final
   global.scrdrawtextext[3]=0;   //espacio
   }
else
   {
   //if !(show_question(string(global.scrdrawtextext[0]))) {game_end();}
   if string(global.scrdrawtextext[0])="CiBeRmAn"
       {
       global.scrdrawtextext[0]=xxx; //x final
       global.scrdrawtextext[1]=yyy; //y final
       global.scrdrawtextext[2]=posi;   //pos final
       global.scrdrawtextext[3]=0;   //espacio
       }
   }

   
xx=global.scrdrawtextext[0]; //x final
yy=global.scrdrawtextext[1]; //y final
pos=global.scrdrawtextext[2]; //pos
esp=global.scrdrawtextext[3]; // espacio




ch=string_char_at(str,pos);
ww=string_width(ch);

if sep=-1 {hh=string_height(ch);}
else {hh=sep;}

if esp=1
   {
   var x_comp,ch_ext,i;
   ch_ext="";
   x_comp=xx;
   for(i=2;ch_ext!=" ";i+=1;)
       {
       ch_ext=string_char_at(str,pos+i);
       //if !(show_question(string(ch)+" - "+string(x_comp))) {break;}
       if ch_ext="#" or pos+i>=string_length(str)
           {break;}
       x_comp+=string_width(ch_ext);
       }
   
   if x_comp>xxx+width
       {
       draw_text(xxx,yy+hh,ch);
       global.scrdrawtextext[0]=xxx+ww;
       global.scrdrawtextext[1]=yy+hh;
       global.scrdrawtextext[3]=0;
       global.scrdrawtextext[2]=pos+1;
       return 2;
       }
   else
       {
       draw_text(xx,yy,ch);
       global.scrdrawtextext[0]=xx+ww;
       global.scrdrawtextext[1]=yy;
       global.scrdrawtextext[2]=pos+1;
       global.scrdrawtextext[3]=0;
       return 1;
       }
   }
else
   {
   if ch=" "
       {
       draw_text(xx,yy,ch);
       global.scrdrawtextext[0]=xx+ww;
       global.scrdrawtextext[1]=yy;
       global.scrdrawtextext[2]=pos+1;
       global.scrdrawtextext[3]=1;
       return 4;
       }
   else
       {
       if ch="#"
           {
           global.scrdrawtextext[0]=xxx;
           global.scrdrawtextext[1]=yy+hh;
           global.scrdrawtextext[2]=pos+1;
           global.scrdrawtextext[3]=0;
           return 3;
           }
       else
           {
           draw_text(xx,yy,ch);
           global.scrdrawtextext[0]=xx+ww;
           global.scrdrawtextext[1]=yy;
           global.scrdrawtextext[2]=pos+1;
           global.scrdrawtextext[3]=0;
           return 1;
           }
       }
   }

[/gml]
draw_text_c2c_reset:
[gml]
///////// draw_text_c2c_reset
// Creador: Ciberman (Javier H. Mora)
// No son necesarios los cr?ditos, aunque se agradecen.
// --------------------------------------
// Uso: draw_text_c2c_reset();

//este script se usa con draw_text_c2c(...)

global.scrdrawtextext[0]="CiBeRmAn"; //x final
global.scrdrawtextext[1]="CiBeRmAn"; //y final
global.scrdrawtextext[2]=1;   //pos final
global.scrdrawtextext[3]=0;   //espacio

[/gml]

Obtenci?n de datos:
Ahora preguntaras, como se esas cosas que nombraste al comienzo del post..
muy facil.. cuando llamas por primera vez se crea un array que contiene la informacion para que analices en cada ciclo de tu bucle.

global.scrdrawtextext[0] = posicion X donde dibujar? el pr?ximo caracter (donde termin? de escrivir)

global.scrdrawtextext[1] = posicion Y de lo antedicho

global.scrdrawtextext[2] = numero de caracter que dibujar?

global.scrdrawtextext[3] (true/false) = indica si en la anterior llamada al script se dibuj? un caracter de espacio (" ")


ademas, si estos datos no te bastan el script debuelve:
return 1; si se dibuj? un caracter normalmente
return 2; si se dibuj? un caracter y se pas? de linea
return 3; si se pas? de linea porque se encontr? un #
return 4; si el ?ltimo caracter dibujado fue un espacio " "



Disfruten...

EDIT: subo un ejemplo: (Gm8)
246
Cita de: Texic en Septiembre 07, 2010, 12:54:48 AM
Tambi?n tener la posibilidad de exportar e importar externamente rooms, objetos, etc, en el juego, eso a?adir?a muchas posibilidades
Aclara, en real-time..

igual lo de los objetos si se podr?a hacer con un minimo de efuerzo y la funci?n de event_add (creo que era asi :P )
247
tambien estaria buena una funcion de string_height_ext2
osea que te indique la posicion en donde termino de escrivir el draw text ext pero en la ultima linea, no de la linea m?s grande...

string_ext_get_lines_number
que te diga el numero de lineas que quedaron... aunque esa no es tan nesesaria...

EDIT:
variable_local_array_exists(array,ind);
variable_global_array_exists(array,ind);

variable_local_array2_exists(array,ind,ind2);
variable_global_array2_exists(array,ind,ind2);
248
Cita de: Texic en Septiembre 04, 2010, 08:59:17 PM
Tambi?n estar?a muy bueno que pudieras mostrar un room en una view y otro room en la otra, aunq veo esto un poco m?s dificil
Hay complicadicimos metodos que te sacan toda la memoria que se pueden usar para hacer eso.


A mi me gustaria que el GM9 tubiera

  • Mejor soporte para el 3D: podria usarse la U3D como sistema alternativo opcional al que ya esta. osea, no quitar el actual, sino agregar otro sistema basado en una version mas reciente de directX (o ponerlo como extension)
  • Un sistema de cuadros de Texto y check boxes: Algo estilo HTML, o estilo VB.
  • file_find_first_ext: Aque se pueda especificar por que se tiene que guiar el GM para ir tirando los archivos en orden (por nombre? (asendiente-descendiente) por tama?o (a-d)? por fecha de creacion o modificacion (a-d) ? etc...
  • file_get_fechademodificacion (y otras): file_get_fechademodificacion(file); file_get_fechadecreacion(file);
    file_get_iconodelprogramapordefectoqueabreesearchivo(file);
  • mp3file_get_titulo (y otras): mp3file_get_titulo(file); mp3file_get_autor(file); mp3file_get_a?o(file); etc...

EDIT: perdon por los acentos pero no se porque no me funka bien el caracter de acento en Firefox

EDIT2: se me ocurrieron otras cosas:
un mejor sistema de debug
y un sistema de debug de ejecuci?n linea a linea como en VB
249
Preguntas y respuestas / Re: Sobre bordes en los sprites
Septiembre 05, 2010, 01:16:28 AM
in tent? hacer una bola como esa y me sali? esto:

lo hice con el editor de sprites del gm:
para el que le interese, los pasos:

1-haces una bola
2-Haces un degrad? r?stico con la herramienta de circulo
3- aplicas un blur grande a los colores
4- haces un efecto de Gradient Fill
  (sin remplace ni changue transparency, con un foco de luz blanca en la esquina superior derecha)
5-Aclaras la imagen un poquito y aclaras manualmente algunas zonas usando blend.
6-Aplicas de nuevo Blur
7-Aplicas un Smoth Edges (dos veces por ser sprite grande)

250
Preguntas y respuestas / Re: Hacer que un evento se repita
Septiembre 04, 2010, 03:11:02 AM
a ver si entendi, queres que se pueda volver a tirar las bolas con enter???

lo que te digo es que es una bestialidad hacer 10 bolas distintas...
lo segundo que creo es que no entendes el codigo que pusiste... porque esta linea te lo dice todo:
if instance_number(bolas)<6

solo se van a crear bolas si hay menos de 6 bolas...

lo unico que tenes que hacer es eliminarlas a las bolas y listo...

y si no es eso, podrias explicar mejor que es??

EDIT: no se porque no me agarra el acento...
251
Preguntas y respuestas / Re: Sobre bordes en los sprites
Septiembre 03, 2010, 09:59:47 PM
Porque las importas en JPG... si te lees un poco en wikipedia notaras que el JPG y otros formatos usan una alta compresion que "Deforma" los colores,
no hay otra forma m?s que hacer en el editor de GM un erase color con tolerance y despues ponerle antialising (o algo asi :P )
pero el jpg es un formato (jodido) que deja esas "Manchas"... trata de hacer tus propias im?genes.
con los efectos que ofrece el editor de sprites del GM, y mucho tiempo puedes hacer una imitaci?n r?stica de esa bola...
252
Preguntas y respuestas / Re: Zoom al cojer objeto
Septiembre 02, 2010, 01:48:20 AM
no es pabada lo que quieres....

te doy la idea luego tu la pasas

haces una view...
que siempre siga al pj

haces que cuando tome el objeto una variable zoom=400; o el width que quieras en tu view y otra variable crece=1;
tambien pones una alarma al tiempo que quieras que regrese la view

en step
mientras zoom<=0 and crece=1 el width de la view crezca y le restas a la variable zoom.
mientras zoom>=800 (o tu width original) and crece=-1 el width de la view crezca y le restas a la variable zoom.

en la alarma haces que crece=1...

con eso creo que lo captas... supongo...
cualquier duda me dices, te lo pondr?a en codigo pero no ando con mucho tiempo...
253
Preguntas y respuestas / Re: Lluvia en modo 3d (d3d)
Septiembre 02, 2010, 01:32:09 AM
es medio dificil y consume muchos recursos si no lo haces bien, pero puedes lograrlo, hay varias formas...

1-dibujas walls estilo sprite que rota hacia la c?mara como en el ejemplo de fps... por todos lados! y que valla bajando la z...

2-haces unas primitivas lineares con algun algoritmo que guarde las posiciones de cada lluvia, claro que con esto no puedes poner profundidad, pero puedes crear lindos efectos

3- dibujando en la view (pero eso ya lo probaste)

acuerdate tambien de hacer cambiar tu color de fondo de dibujo, o la textura de tu esfera de cielo o tu cubo de cielo para lograr efectos deslumbrantes, tambien puedes hacer rayos poniendo tambien efectos de luces y/o hacer las texturas de todo normalmente un poco m?s oscuras y aclararlas a la hora de dibujar el modelo mediante alguna variable para lograr un efecto de luz (envez de hacer sombras)
254
Preguntas y respuestas / Re: Dise?ar Escenarios
Agosto 26, 2010, 02:12:30 AM
mh... depende mucho de tu juego... en juegos 3D usas c?digo para casi todo... lo mismo para juegos en que no var?a mucho el area de juego...
pero.. un RPG, plataformas o cenital requiere un dise?o m?s grande, ahi se requiere de un editor para GM, y, es cierto que es dificil exportar niveles y cargarlos externamente, pero puedes usar tus propios m?todos o usar unos scripts que vi en la comunidad para cargar y guardar rooms... (si es que mi memoria no est? inventando)
igualmente, recomiendo inventar nuestra propia forma...
255
Preguntas y respuestas / Re: 3D
Agosto 24, 2010, 02:21:27 AM
suponiendo que estas usando el 3D nativo: (d3d)
si tu imagen es un backround:
tex=background_get_texture(bk_miimagen);
si usas un sprite:
tex=sprite_get_texture(spr_misprite,subimagen);

luego basta poner eso en el argumento de tex o ponerla a la variable...
lo que hace la funcion esa es sacar un identificador de textura, osea, que vas a usar ese sprite/bk como textura...