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

31
Todo depende de como hayas implementado los codigos para tu juego :P, ya que se puede hacer de todas formas, pero la programacion toma un rol importante ahi, te recomiendo que tengas una variable booleana (true o false), que identifique cuando el personaje vuela, o cuando no, ya que ahi separas el funcionamiento normal de tu personaje, con el modo en vuelo:


if (volar == false)
{
Todo lo que hace tu personaje en modo normal
}
else
{
Los codigos o acciones para que tu personaje vuele
}



Aprovechando eso, puedes accionar sólo la gravedad cuando "volar" sea falso, de lo contrario, en la parte en donde colocas los codigos para que tu personaje vuele, puedes disminuir la gravedad o dejarla en cero, y mover a tu personaje en las direcciones que tu quieras a una velocidad definida...

En lo del tiempo, casi siempre utilizo variables "temporizadoras", que las implemento asi:


if (accion = "volar")
{
   volar()
   if (t[0] < 30) {t[0] += 1}
   else
   {
       accion = "normal";
       t[0] = 0
   }
}


ocupe un t[0] ya que si se necesitan mas temporizadores, los declaro en el evento create como t[0], t[1], ...

pero ahi hay una idea que se me ocurrió :)... ojala que te haya ayudado !!

Saludos
32
Preguntas y respuestas / Re:Ayuda con trigonometría
Enero 27, 2014, 06:22:46 AM
has tomado el angulo absoluto menor entre los dos angulos, entonces esta condicion te sirve  :):


if (min(abs(ang1-ang2),360-abs(ang1-ang2)) < 30)
{... hacer ...}


ang1 y ang2 son los angulos involucrados.
debes tener los dos angulos siempre entre 0 y 360 grados, o si no, no te sirve :P
33
muchas gracias!! osea da lo mismo si hago muchos rooms, lo de 100 rooms es porque la cantidad de objetos y el tamaño del room son practicamente bajos, además, el juego de puzzle es super simple, se trata de romper todas las bolitas con una cantidad definida de toques, cada bolita, tiene un numero que indica su "vida", y tiene 8 direcciones posibles en la cual puede lanzar bolitas pequeñas que aparecen cuando la bolita tiene vida 0 (la bolita se destruye), los colores de las bolitas es para darle color al juego  :D... el juego es similar a otro que se llama bubble blast (para moviles), con la diferencia de que en mi proyecto hay mas direcciones y es mas dificil  :o, por eso preguntaba lo de la cantidad de rooms, ya que es un juego simple en donde solo necesito guardar la posicion de una bolita (en una matriz definida de 7 filas por 9 columnas), su vida y las direcciones posibles que tiene para lanzar...
34
Hola a todos! ultimamente he estado en un proyecto de un juego tipo puzzle, en donde debes romper unas pelotitas de colores... ya teniendo realizado la mayoria de los objetos, empecé a ver que necesitaba una forma de crear niveles de forma externa, pero igualmente me surge la duda... GM Studio tiene la capacidad para tener por ejemplo 100 rooms??? el juego no se coloca mas lento??  si existe una forma mas eficiente que tener todos los niveles en cada room del juego, asi como guardar un nivel codificado en un archivo, es mejor este método?

Muchas gracias por leer :)
Todas las respuestas serán de gran ayuda!
35
Yo fui viendo tutoriales, que de primera me enseñaron a como hacer juegos basicos, solo utilizando drag and drop, luego empecé de poco a poco a entender GML, tambien fui acudiendo a mas tutoriales, ejemplos, los fui analizando, hasta saber utilizar varias funciones del game maker, como estoy estudiando informatica, la programacion se pasa siempre, y he adquirido mas practica a la hora de crear algoritmos... bueno, esa es la manera en que aprendi a utilizar el game maker :)
36
si tienes el objeto que controla todo lo del clickear al payaso, coloca el codigo en el evento step de ese objeto :), y lo de la variable global, debes crearla al inicio del juego... eemm... yo siempre hago eso con un room inicial, que no tenga nada, nose si sera la forma mas eficiente de hacerlo, pero lo unico que te puedo decir es que debes crear esa variable al inicio del juego  :(
37
Una duda...  :-[ , a que te refieres exactamente con pasar de nivel?, es pasar a otro room, o todo esta en una room y pasar de nivel es aumentar la dificultad del juego??

Si ocupas la variable "score" incluida en el game maker, score es una variable global, por lo que una simple condicion no te serviría,
pero si creas una variable asi como global.nivel, puedes hacer esto:

- Primero creas una variable llamada global.nivel = 1.
- Luego, debes tener una condicion asi en un objeto (en el evento step):

if (score >= 100*global.nivel)
{
     if (room != room_last)
     {
          global.nivel += 1;
          room_goto_next();
     }
}


Y la haces ;D , si no te has familiarizado con GML, me lo dices.
38
para hacer eso solo debes escribir este codigo:


instance_create(view_xview+random(view_wview),0,obj_trueno)


asi te sale  ;D saludos.
39
Hola. Los codigos hechos en drag and drop se pueden pasar exactamente a GML. me parece que lo que estas pidiendo es utilizar la funcion place_meeting(x,y,objeto), pero, nose si eso hace que la colision sea precisa, hay un programa que te pasa el drag and drop a GML, lo encontré en las descargas.

http://www.comunidadgm.org/index.php?page=verdescargas&accion=descargaD&download_id=157
40
Preguntas y respuestas / Re:Como hacer buenas colisiones?
Septiembre 11, 2013, 10:54:32 PM
Muchas gracias por la pagina, algo pude sacar de eso, ya que salia una imagen que explicaba como hacer un slope, y me dio una idea, y si, es un buen consejo que no le haga slopes, pero seria igual un desafio :)...

Saludos
41
Preguntas y respuestas / Re:Como hacer buenas colisiones?
Septiembre 11, 2013, 07:08:26 PM
Acabo de rehacer el codigo, hasta ahora, me han dado muy buenos resultados :), pero lo unico malo es que no se como hacerle slopes  :-[.

Las colisiones estan precisas, y hay tres tipos de colisiones, solido, piso y techo, y funcionan bien. lo unico que me cuesta ahora es saber cual es un buen codigo para los slopes. que me recomiendan?

Dejo un ejemplo adjunto, el movimiento horizontal tambien es preciso, y al final de la parte del codigo, solo hago:
x += vel_xp

pero presiento que debo hacer un while o un for, para hacer los slopes, en unos ejemplos tambien vi que ocupaban la funcion move_contact_solid(), pero intenté agregarlas al codigo, y bajando un slope todo bien, pero no puede subirlo...

El otro dia se me habia ocurrido hacer los slopes calculando el angulo de colision con dos puntos, de forma que el personaje este como andando en una patineta, pero aún no me funciona al 100%  :P.
42
Preguntas y respuestas / Como hacer buenas colisiones?
Septiembre 11, 2013, 03:08:31 AM
Hola makeros, ultimamente, me he estado dando vueltas en las colisiones de mi juego, y en realidad que me cuestan, ya que quiero tratar de que sean precisas, pero aún asi, no me funciona bien cuando escojo diversos objetos de colision...

El codigo que tengo hasta ahora, no considera para nada el desarrollo de slopes (cuestas), me gustaría poder implementar slopes :).

El juego lo estoy haciendo con gravedad, pero, no depende de la variable gravity, implementada en el programa, ya que ocupo variables propias, mi idea es hacer que funcione tanto para una gravedad positiva
(hacia abajo), como una gravedad negativa (hacia arriba):


if (vel_y*sign(gravedad) < max_vel_y)
{
vel_y += gravedad;
}
else
{
vel_y = max_vel_y*sign(gravedad);
}


ahora lo que hago es lo siguiente:

if (gravedad > 0)
{
vel_y_pre = 0;
     
if (vel_y > 0)
{     
for (i = 0; i <= vel_y+1; i += 1)
{
if !place_meeting(x,y+i,obj_solido)
     vel_y_pre = i;
else
     break;
}
y += vel_y_pre;
if (vel_y_pre == 0)
{ground = true}
else
{ground = false}
}
else
{
for (i = 0; i >= vel_y-1; i -= 1)
{
if !place_meeting(x,y+i,obj_solido))
    vel_y_pre = i;
else
    break;
}
y += vel_y_pre;
if (vel_y_pre = 0)
{vel_y = 0}
}


Hasta ahora bien, el personaje baja a la velocidad que sea, y colisiona bien con el objeto, sin quedar 1 pixel arriba o 1 pixel abajo, tengo otro codigo para cuando la gravedad es menor que cero, y es casi igual, ahora, cuando en vez de escribir en el codigo "obj_solido", que es un objeto, escribo "colision", que es una variable
que depende de que objeto este topando, que en mi juego puede ser "obj_piso" u "obj_solido", en el cual "obj_piso" es una plataforma que no deja que el personaje la pase desde arriba hacia abajo, pero si de abajo hacia arriba, y lo unico que ocurre mal, es que la precision se va, en el sentido que aveces el personaje se cae,
como podría hacer colisiones sencillas, pero precisas? que el personaje no se quede volando 1 pixel?

gracias por leer. cualquier ayuda estaré muy agradecido  ;)

43
Tendrías que asignar en cada parte que dibujes un draw_set_alpha(Alpha), ya que si asignas uno solo, el game maker lo reconoce como si todos los dibujos que realiza el objeto tienen que tener sólo ese alpha, asi que por ejemplo:


// dibujas un rectangulo con un alpha dado por alpha1
draw_set_alpha(alpha1)
draw_rectangle(x1,y1,x1+ancho,y1+alto,0)

// dibujas otro rectangulo con un alpha dado por alpha2
draw_set_alpha(alpha2)
draw_rectangle(x2,y2,x2+ancho,y2+alto,0)


Asi sale :)... espero que te haya ayudado en algo XD
44
Preguntas y respuestas / Ocultar la pantalla
Septiembre 03, 2013, 01:16:54 AM
Hola comunidad, hoy estaba realizando una observación en un juego, el cual tiene un efecto muy particular para ocultar la pantalla, y yo me pregunté ¿ Se podrá hacer ocupando el GM ?, entonces, empecé a investigar un poco y me tinca que se puede hacer, con funciones avanzadas de dibujo, pero lo malo que no entiendo mucho de que se trata.

Bueno, el juego es un megaman al estilo 8 bit, y cuando oculta la pantalla, lo primero que se ocultan son los colores mas oscuros, o mas cercanos al negro  XD, ocultando por ultimo, los colores mas claros como el blanco, asi quedando toda la pantalla en negro, y luego para hacer aparecer la pantalla, hace aparecer primero los colores mas claros, quedando en ultimo lugar los mas oscuros, y al final todo se ve normal.

Se que existen formas de ocultar la pantalla, como dibujar un rectangulo negro, y aumentar o disminuir el alpha, pero me gustaría saber, si se puede hacer ese efecto que mencione anteriormente, ya que le da un toque retro al juego...

Si se puede hacer, podrían explicarme como se hace, ya que no he sido mucho de ocupar las funciones avanzadas de dibujo... pero me huele a ocupar draw_set_blend_mode_ext() , nose, ... Muchas gracias por leer :).
45
Preguntas y respuestas / Re:Fuentes con galera.
Febrero 05, 2013, 03:33:48 PM
No se si es realmente lo que quieres, pero, puedes hacer un sprite que contenga todos los caracteres de una fuente, lo haces con:

font_add_sprite(sprite_letras,ord('!'),prop,sep)

no se si va por ahí, yo siempre lo ocupo para fonts mas diferentes de las comunes :D