Citardraw_getpixel(x,y) Devuelve el color del píxel en la posición (x,y) del cuarto. Esta función no es muy rápida, así que úsala con cuidado.
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.
1996
Preguntas y respuestas / Re:¿como examinar un pixel?
Enero 15, 2014, 05:46:53 AM1997
Preguntas y respuestas / Re:Cómo trabajar con objetos de una Room.
Enero 14, 2014, 08:50:13 PM
nuevo = ds_stack_pop(pila_id)
"Saca" el valor que está en la parte más alta de la pila y lo elimina de la misma (y lo guarda en "nuevo"). O para guardar todos los valores en un arreglo
While (ds_stack_size(pila_id) > 0)
{
mi_arreglo[c] = ds_stack_pop(pila_id)
c += 1
}
No hace mucho que comencé a usar estructuturas de datos, son muy útiles.
"Saca" el valor que está en la parte más alta de la pila y lo elimina de la misma (y lo guarda en "nuevo"). O para guardar todos los valores en un arreglo
While (ds_stack_size(pila_id) > 0)
{
mi_arreglo[c] = ds_stack_pop(pila_id)
c += 1
}
No hace mucho que comencé a usar estructuturas de datos, son muy útiles.
1998
Preguntas y respuestas / Re:Cómo trabajar con objetos de una Room.
Enero 13, 2014, 11:03:28 PMLa variable arreglo puede o no ser global, se puede acceder a ella de todas maneras mediante el ".", también pude haber puesto "var i", pero esos detalles los puede manejar el makero Strod. De hecho no especifiqué que
n = instance_number(mi_objeto)
sería mejor ponerla dentro de un IF para que no se ejecute paso a paso
Al final cambié el código por algo más limpio y creo más eficiente
1999
Preguntas y respuestas / Re:Cómo trabajar con objetos de una Room.
Enero 13, 2014, 10:43:21 PM
pila_id = ds_stack_create();
with(mi_objeto)
{
ds_stack_push(pila_id, id);
}
with(mi_objeto)
{
ds_stack_push(pila_id, id);
}
2000
Preguntas y respuestas / Re:hacer desaparecer pared al ser tocada por el jugador
Enero 13, 2014, 01:51:27 AM
Creo que precísamente se refiere a no usar decenas de objetos rocas. Aunque creo que esa sería la manera más rápida y fácil. A lo mejor con partículas y destructores se podría lograr en GM8, pero creo que en GMS quitaron el soporte para atractores, destructores, etc. Quizas con el engine de física que trae GM:S, pero no sabría como, apenas me voy a meter a eso ;D .
2001
Preguntas y respuestas / Re:GMS CRAKEADO ?? SE PUEDE PUBLICAR APPS en google play , amazon ??
Enero 10, 2014, 06:28:10 AMCita de: ivn_eze en Enero 10, 2014, 02:46:57 AMCitarson muchos juegos para que YoYo verifique de a uno por uno, pero entre más popular sea tu juego, mayor probabilidad de que pueda ser "descubierto
pues no lo publicas en yoyo, y tampoco afirmas que lo hiciste con gm -.-
Puedes hacer eso, pero así no funcionan las cosas.
Independientemente de dónde lo publiques, GM:S Deja "huellas" en el ejecutable de tu juego, obviamente YoYo no dice mucho al respecto, pero sí han mencionado que tienen varias maneras de saber si un juego fue hecho en GMS, la versión, la licencia, si se hizo con una versión pirata, etc. Aunque no anuncies a los cuatro vientos que lo hiciste con GM.
2002
Preguntas y respuestas / Re:GMS CRAKEADO ?? SE PUEDE PUBLICAR APPS en google play , amazon ??
Enero 10, 2014, 02:12:51 AM
Se puede publicar? sí
Hay maneras de saber que fue compilado en una versión pirata de GMS: sí
Son muchos juegos para que YoYo verifique de a uno por uno, pero entre más popular sea tu juego, mayor probabilidad de que pueda ser "descubierto".
Hay maneras de saber que fue compilado en una versión pirata de GMS: sí
Son muchos juegos para que YoYo verifique de a uno por uno, pero entre más popular sea tu juego, mayor probabilidad de que pueda ser "descubierto".
2003
Preguntas y respuestas / Re:[Pregunta] Videos de youtube en game maker
Enero 09, 2014, 01:10:43 AMCita de: CrashKen en Enero 08, 2014, 06:39:21 PM
[size=78%]Lo de splash web me interesa, aun no lo probe pero con eso se vería todo el resto de la pagina de youtube como lo comentarios y demas, mi idea es que solo se vea el video.[/size]
Un video de Youtube no es igual a un video reproducido desde tu PC (almacenado en algun disco). Youtube usa tecnología streaming, es decir, el contenido se va reproduciendo conforme va llegando, eso es distinto a la manera en que funcionan los videos locales. Fíjate que para reproducir video local en GM, se necesita tener los codecs de video adecuados instalados en el eqipo, y para reproducir videos de youtube, se necesita el plug-in de flash instalado en el navegador.
ahora, no me imagino cómo se podría instalarle flash a GM.
Tengo entendido que hay dlls que pueden reproducir contenido diseñado para stream, pero tendrías que buscar por tu cuenta y ver qué tan efectivas son
2004
Preguntas y respuestas / Re:[Pregunta]Es posible mostrar la hora de la PC en Game Maker?
Enero 06, 2014, 11:36:56 PM2005
Preguntas y respuestas / Re:Combate con espada + Máscaras y colisiones
Enero 05, 2014, 09:54:14 PM
Hay que ser previsor. Es mejor empezar creando un sistema de variables que te indiquen el estado del personaje y que te permitan tomar decisiones basado en ese estado. por ejemplo. una variable "avanzar" que sea false cuando se esté atacando, o saltando, o haciendo otra cosa, menos caminar
if (avanzar == true)
{
// código para avanzar
}
Cuando se deba atacar, cambias el estado de la variable avanzar = false;
Para cambiar el sprite, usas sprite_index = sprite_de_ataque
No necesitas crear un objeto para izquierda y otro para derecha. Sólamente creas un objeto, y cuando quieres voltearlo o "espejear", usas image_xscale = -1.
if (avanzar == true)
{
// código para avanzar
}
Cuando se deba atacar, cambias el estado de la variable avanzar = false;
Para cambiar el sprite, usas sprite_index = sprite_de_ataque
Cita de: Roland2 en Enero 05, 2014, 07:52:52 PM
Create instance_espada izquierda.
No necesitas crear un objeto para izquierda y otro para derecha. Sólamente creas un objeto, y cuando quieres voltearlo o "espejear", usas image_xscale = -1.
2006
Preguntas y respuestas / Re:Pausa al iniciar round y al finalizar round
Enero 04, 2014, 07:53:10 AM
pControl debe ser una variable creada en CREATE del objeto jugador, me imagino que ahí es donde está. No sé cómo se llame tu objeto jugador, pero supongamos que se llama obj_Jugador. Al objeto Round le voy a llamar obj_Round
Método 1
//STEP de obj_Round lo modificaría así :
if (timer <= 0)
instance_destroy();
else
timer -= 1; //cuando sólo hay una instrucción después del IF o del ELSE no es necesario usar corchetes
//STEP del obj_Jugador:
if ( instance_exists(obj_Round) )
pControl = 0 // invalidar movimiento si existe el objeto Round
else
pControl = 1 // permitir movimiento si no existe objeto Round
Creo que así funcionaría. Pero si no...
Método 2
//CREATE de obj_Round:
timer = 60
alarm[0] = 61
//Alarm 0 (en obj_Round)
obj_Jugador.pControl = 1
STEP de obj_Round:
if (timer <= 0)
instance_destroy();
else
{
timer -= 1;
obj_Jugador.pControl = 0;
}
Cita de: yokaiworld en Enero 04, 2014, 06:50:34 AM
//step
if (timer <= 0) {
instance_destroy();
timer = 60;
} else {
timer -= 1;
}
Método 1
//STEP de obj_Round lo modificaría así :
if (timer <= 0)
instance_destroy();
else
timer -= 1; //cuando sólo hay una instrucción después del IF o del ELSE no es necesario usar corchetes
//STEP del obj_Jugador:
if ( instance_exists(obj_Round) )
pControl = 0 // invalidar movimiento si existe el objeto Round
else
pControl = 1 // permitir movimiento si no existe objeto Round
Creo que así funcionaría. Pero si no...
Método 2
//CREATE de obj_Round:
timer = 60
alarm[0] = 61
//Alarm 0 (en obj_Round)
obj_Jugador.pControl = 1
STEP de obj_Round:
if (timer <= 0)
instance_destroy();
else
{
timer -= 1;
obj_Jugador.pControl = 0;
}
2007
Preguntas y respuestas / Re:Pausa al iniciar round y al finalizar round
Enero 04, 2014, 01:17:20 AM
Prueba agregando un evento de alarma (es otro evento, junto a STEP, DRAW, etc)
Dentro de la alarma 0, agregas pControl = 1
En STEP, cuando el round se termine, debes hacer que
{pControl = 0; alarm[0] = 180}
Se mostraría el mensaje del round, la alarma comenzaría a correr, pControl= 0, y cuando la alarma llegue a cero, pControl = 1 y se vuelve a permitir mover al personaje o comenzar la pelea.
Dentro de la alarma 0, agregas pControl = 1
En STEP, cuando el round se termine, debes hacer que
{pControl = 0; alarm[0] = 180}
Se mostraría el mensaje del round, la alarma comenzaría a correr, pControl= 0, y cuando la alarma llegue a cero, pControl = 1 y se vuelve a permitir mover al personaje o comenzar la pelea.
2008
Books / Re:KID. Verdadero amor por la música de videojuegos.
Enero 03, 2014, 09:19:55 PM
Vaya, he hescuchado temas estilo 8 bits aquí y allá, pero tus temas son de verdad muy buenos. Todos tienen atmósfera y estilo, hasta me han regresado a los románticos días de juegos de 8 bits, los juegos en diskets de 5 1/2, etc. Esta música se extraña en los juegos 3D de ahora.
2009
Preguntas y respuestas / Re:¿Como quito la gravedad?
Enero 03, 2014, 02:49:11 AM
Mmm, si se mueve mucho por el aire, a mi me suena más a que casi no tiene gravedad. Si tuviera mucha gravedad, casi no duraría en el aire, por lo tanto no se movería mucho por el aire. Lo más común es usar una vspeed negativa para saltar, eso vence a una gravedad positiva (una gravedad que te "jala" hacia abajo)
La gravedad la elmininas cuando el personaje toca el suelo, lo mismo que vspeed, en ese momento generalmente no quieres fuerzas verticales actuando sobre el personaje. Dicho de otra manera, la gravedad sólo la activas cuando haces saltar al personaje.
respondiendo a el título del post
en STEP
si ya hice contacto con el piso, gravity = 0}
no sé qué método uses para detectar colisiones con el piso, por eso sólo puse una idea
La gravedad la elmininas cuando el personaje toca el suelo, lo mismo que vspeed, en ese momento generalmente no quieres fuerzas verticales actuando sobre el personaje. Dicho de otra manera, la gravedad sólo la activas cuando haces saltar al personaje.
respondiendo a el título del post
en STEP
si ya hice contacto con el piso, gravity = 0}
no sé qué método uses para detectar colisiones con el piso, por eso sólo puse una idea
2010
Preguntas y respuestas / Re:¿Dentro de un evento se puede meter otro?
Enero 02, 2014, 09:52:26 PMCita de: Jangse en Enero 02, 2014, 09:03:36 PMCódigo [Seleccionar]if (obj_A) ev_collision with (obj_B) then
draw_text ('lo que sea...');
Es que todavía no le cojo el truco a lo que se puede y no se puede con este lenguaje. Yo tiendo a scriptear con Pascal. Pero bueno, es lo menos. El problema, creo, que no me permite ejecutar ese código.
En el evento DRAW se puede meter código que generalmente usarías en STEP, por ejemplo, checar una variable, meter un ciclo for, ifs anidados , etc. Entre menos código "step" vaya en DRAW, mejor. Mucho código "step" en DRAW afectaría el dibujo en pantalla.
Lo que se hace es que usas 'banderas' o 'interruptores' para avisarle a DRAW cuando dibujar algo. Por ejemplo, en el evento de colisión de A contra B, la bandera sería una variable 'choque' la cual pondrías en 1.
en STEP vigilarías la bandera 'choque':
Código [Seleccionar]
if (choque ==1) { mensaje = 1; alarm[0] = 120}
En DRAW vigilarías la bandera 'mensaje'
Código [Seleccionar]
if (mensaje ==1) {draw_text ('lo que sea...');}
En ALARM[0] reseteas la bandera "mensaje" para detener el dibujado de DRAW
Código [Seleccionar]
mensaje = 0
Esto está a medias. Para completar, hay que usar STEP para revisar cuándo NO hay colisión de A contra B, para que choque = 0, de lo contrario, una vez que choquen A y B, la variable ' choque' siempre sería 1.