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

1996
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.
1997
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.
1998



La 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
pila_id = ds_stack_create();     


with(mi_objeto)
{
    ds_stack_push(pila_id, id);
}
2000
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
Cita de: ivn_eze en Enero 10, 2014, 02:46:57 AM
Citarson 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
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".
2003
Cita 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
2005
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

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

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
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.
2008
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
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
2010
Cita de: Jangse en Enero 02, 2014, 09:03:36 PM

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':
if (choque ==1)   { mensaje = 1; alarm[0] = 120}

En DRAW vigilarías la bandera 'mensaje'
if (mensaje ==1) {draw_text ('lo que sea...');}

En ALARM[0] reseteas la bandera "mensaje" para detener el dibujado de DRAW
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.