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 - Mega G

286
Preguntas y respuestas / Re:PRECARGA DE DATOS
Diciembre 14, 2013, 11:14:24 PM
Buenas francordoba,

Supongo que te refieres a cargar recursos que estén fuera del juego.

Por ejemplo para cargar backgrounds puedes poner el siguiente código:

global.fondo=background_add(filename,transparent,smooth,preload)

Y luego en la room donde quieras que se vea ese fondo pones en algún objeto:

background_index[0]=global.fondo


Para sprites está el sprite_add,  y también tienes sound_add.

Saludos!
287
Preguntas y respuestas / Re:cómo escribo esta orden?
Diciembre 14, 2013, 10:44:55 PM
Es un póquer lo que estas haciendo, no?

Creo que en este caso te sería igual de largo usar "if" que usar "switch" (que alguien me corrija si me equivoco).

Lo que sí que puede reducir tu código es lo siguiente:

En vez de usar una variable para cada tipo de carta, es más fácil plantearlo de otra manera:

global.carta[1]="Reina"
global.carta[2]="Reina"
global.carta[3]="Reina"
global.carta[4]="5"
global.carta[5]="5"


Entonces haces un código que cuente cuantas cartas iguales hay:

if global.carta[1]=global.carta[2] and global.carta[1]=global.carta[3] and global.carta[1]=global.carta[4] and global.carta[1]=global.carta[5] { global.repoquer=true; }

y etc con los demás


(Al menos ahora no tienes que ver si todos son "Tres", todos son "Cuatro", "Cinco",  o lo que sea, solo tienes que contar cuantas variables tienen el mismo valor).

He estado intentando hacer uno y me está costando un poco, así que animo y no te rindas!
288
Preguntas y respuestas / Re:cómo escribo esta orden?
Diciembre 14, 2013, 08:14:45 PM
Hola kaliman,

prueba con esto:


if image_index=5 { global.estrella+=1; } else
if image_index=10 { global.nube+=1; }


Si no te funciona puede que sea porque el valor de la image_index que le has puesto al principio contenga decimales ya que usas un random.  Para evitar que te dé decimales (en el caso de que los dé) pon este código en vez de el que tienes:

image_index=floor(random(10));

La función floor redondea a la baja (también puedes usar ceil para redondear a la alta o round para el redondeo normal de "toda la vida").


Espero que te haya servido.
Saludos!
289
Buenas, hace mucho que no comento nada pero creo que este tema es importante así que aquí estoy.

Antes de decir mis ideas quiero decir que estoy de acuerdo con lo que se ha dicho sobre la Store.
Si hubiera una Store la gente se interesaría más por la comunidad, y luego seguro que muchos se preguntarían: "¿Si ellos han conseguido hacer estos juegos yo también podría hacerlo?" y entonces se registrarían nuevos usuarios y se pondrían a programar. Aunque serían novatos y no harían buenos juegos hasta al cabo de un tiempo, pero al menos llega gente nueva con ganas de hacer juegos.

El tema de los trofeos y la consola GM (muy bien lograda, por cierto) también me atrae y si se realiza yo pondría trofeos en mis proyectos. Estaría bien "oficializarla" para que fuera LA consola de la comunidad.


Ahora a lo que iba:

En mi caso por ejemplo llevo bastante tiempo programando un juego pero no tengo demo ni beta disponibles, por lo que no puedo abrir un tema para él, así que en la comunidad puede parecer que no esté haciendo nada, pero en realidad sí que estoy activo aunque "a escondidas".
Seguramente haya más gente en mi situación, que está trabajando en proyectos largos en los que se tarda más en sacar una demo, y a lo mejor es en parte por esto que la comunidad tiene menos actividad.

>Una solución sería que hubiera un tema para poner screens y videos, por ejemplo.

>Otra solución que se me ocurre es la siguiente:
Después de ver el E3 he pensado que se podría hacer un tema que fuera como un evento anual (o mensual) donde cada usuario pudiera publicar imágenes y vídeos de los avances en sus proyectos, y al cabo de una semana por ejemplo, se cierre el tema y luego se pueda votar quien es el ganador de este "pseudo E3".
Además de que estos "usuarios que trabajan a escondidas" como yo pudieran mostrarse al público y aumentar la actividad de la comunidad, este evento también crearía una competitividad que haría que todo el mundo se esforzara para mejorar su juego y ganar en las votaciones.



Pues eso, esta es mi opinión, espero que sirva o al menos ayude a que a alguien se le ocurra una idea mejor.

Saludos!
290
Prueba con esto:

var quit;
quit=show_question("do you want to exit")
switch(quit)
{
case 0:
  //do nothing, simply return to the game
break;
case 1:
  game_end();
break;
}


Primero tienes que decirle al juego que estás creando una variable temporal (quit), y una vez creada
entonces ya puedes asignarle un valor.


Saludos!
291
Prueba algo así:

En el create añadele una variable más para el tiempo:

global.subtiempo=0;

Y otra variable para que deje de contar:

flag=0;

Y en el draw cambiaría lo que has puesto y haría lo siguiente:


draw_text(x,y,global.time)  //este no cambia

if flag=0 { global.subtiempo+=1; }
if global.subtiempo>30 { global.subtiempo=0; global.time-=1; }

if global.time<0.5 { flag=1; }



Edit:

Sino simplemente añade lo de global.subtiempo pero en la alarm[0] siguiendo la manera que estabas usando, así de esta forma:

Código del alarm[0] :


global.subtiempo+=1;
if global.subtiempo>30 { global.subtiempo=0; global.time-=1; }


Espero que te sirva, saludos!
292
EDIT: Me refer?a al codigo de JRX7500 y luego te confund? por ?l cuando me respondiste (MaanuRP).


Cita de: MaanuRP en Octubre 23, 2011, 08:54:08 PM
No no, no tienes que agregar nada:

Con el ejemplo que yo te di, no se aplica a todos los objetos. El objeto "Draws" utilizalo solo para lo que quieres que tengan ese efecto de alpha.

Mira, aca modifique el ejemplo para que lo veas, lo unico que hice fue crear un sprite (Un cuadrado rojo de 32x32), un objeto, que le asigne ese sprite y lo puse en la room.


Pero draw_set_alpha() se aplica a todo el juego, por lo que todos los objetos se ver?n afectados, no solo el objeto en cuesti?n. A lo mejor me equivoco, pero insisto en que creo que es necesario a?adir un draw_set_alpha(1) al final para que los dem?s objetos no se vean afectados.
293
Para que no cambie la transparencia de los dem?s objetos, a?ade al final:

[gml]draw_set_alpha(1)[/gml]

As? todo lo que venga despu?s ser? opaco.

Espero que te haya servido.
294
Cita de: aggro en Junio 29, 2011, 10:32:53 PM
Utilice el c?digo en el evento "colisiona con la bala" del objeto enemigo:

vida_malo-=5+(5*global.ataque);

(global.ataque: es la variable que representa al nivel)

con el nivel 1 no hay problema pero cuando sube el personaje a nivel 2 las balas no hacen da?o a los enemigos. por favor ayuda GRACIAS!!

Lo ?nico que se me ocurre es que el ataque lo hayas puesto negativo, y como aqu? le estamos restando a vida_malo, entonces 2 negativos -> positivo, y por eso no le hace da?o: le cura.

(Si el ataque es -1 la operaci?n da 0. Y a partir de -2 y los dem?s va a?adiendo vida).

?Puede ser el caso?
295
Cita de: CrashKen en Junio 29, 2011, 10:02:56 PM
Cita de: Mega G en Junio 29, 2011, 09:51:02 PM
Podr?as probar algo as?:

[gml]vida_malo-=5+5*nivel[/gml]

Siguiendo esta f?rmula al nivel 1 pierde 10 vidas, al 2 pierde 15, etc.

Saludos!

?el game maker separa en terminos?
yo no me arriesgar?a xD mejor prueba con

[gml]vida_malo-=5+(5*nivel)[/gml]

S? s?, lo he comprobado y separa en t?rminos.
296
Podr?as probar algo as?:

[gml]vida_malo-=5+5*nivel[/gml]

Siguiendo esta f?rmula al nivel 1 pierde 10 vidas, al 2 pierde 15, etc.

Saludos!
297
Puedes hacerlo as?:
[gml]musica=sound_add(".\musica.mid",0,0)
sound_play(musica)[/gml]
Lo acabo de probar y funciona bien.

Saludos!
298
Aprovechando el c?digo de Wadk, pones en el evento <Step>:

[gml]if visible=0 { x=-100; y-=100; }[/gml]

O un instance_destroy(); o lo que te vaya mejor.

Saludos!
299
Una soluci?n simple es que en el objeto del lum, al tocar al personaje salga el c?digo:

[gml]instance_destroy();[/gml]

Pero para que funcione la room tiene que ser persistente.


Si no te va bien, hay m?s maneras: puedes declarar una variable para cada lum, en un objeto al principio de todo del juego. Entonces cada vez que toques un lum, haces que la variable de ese lum pase de 0 a 1 por ejemplo.

As? en el evento <Step> de los lums, pones:

[gml]if global.existe_lum_23=1 { instance_destroy(); }[/gml]


Aunque puede parecer un poco larga esta manera, sobretodo al declarar las variables de cada lum.
Pero hay una soluci?n, puedes usar arrays.

Declara las variables de esta forma:


[gml]for(i=1; i<=numero_maximo_de_lums; i=i+1)
{
global.existe_lum=0;
}[/gml]


As? trabajas con global.existe_lum[23] (o el n?mero que sea).
Y evitas hacer esto, que ocupa mucho tiempo... y espacio en el disco:

[gml]global.existe_lum_1=0;
global.existe_lum_2=0;
global.existe_lum_3=0;
global.existe_lum_4=0;
global.existe_lum_5=0;
global.existe_lum_6=0;
global.existe_lum_7=0;

Etc.
[/gml]



Espero que te haya sido de ayuda!
300
Preguntas y respuestas / Re: Problema con draw text
Junio 18, 2011, 12:07:30 AM
Primero de todo en el evento <Room start> hay que darle "permiso" para que dibuje:

[gml]dibujar=1[/gml]

Y dale un tiempo en el mismo evento:

[gml]alarm[0]=150[/gml]

Cuando pase el tiempo (150 = 5 segundos / 30 = 1 segundo*) se ejecutar? el evento <Alarm 0> que le quitar? el "permiso" de dibujar:

[gml]dibujar=0[/gml]


Entonces en el <Draw> pones:

[gml]if dibujar=1 { draw_text(x,y,str); }[/gml]


Espero que te sirva!
Saludos!



* 30 steps = 1 segundo ?nicamente si la room_speed es 30. (Si la room_speed es Pi (por poner un ejemplo) Pi steps = 1 segundo, aunque es mejor que no uses Pi...)