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.

Temas - knd144

1
Que onda, camaradas.  ;D

Tiempo sin pasarme por acá  y ahora vengo pidiendo ayuda.  :-[ Y es que por un proyecto en el que estoy (y algunas otras cuestiones más de ocio) me veo en la necesidad de buscar un programa que permita componer pequeñas melodías.
Creo que no busco algo sofisticado (Según yo), como del tema no manejo mucho, solo busco un programa en el cual elija un instrumento (o piano, si no hay opción), aparezca el pentagrama musical y pueda ir agregando las notas para crear la partitura. He encontrado en Internet propuestas pero todas son muy... abrumadoras para mí  :-[.
No sé si lo que pido resulte ser, de hecho, más complicado de conseguir de lo que considero. Como tal no tengo problema con que tenga que ser de costo, aunque realmente no busco nada ostentoso, así que en principio me da igual que sea una versión "lite" o una de paga.

¿Tienen alguna recomendación?
2
Hola de nuevo.

Me he estado volviendo loco al usar la función draw_healthbar, principalmente por que es una función sencilla.  :-[

Tengo el siguiente código, todo en el evento "draw_gui":


    var largo_vista = view_wport[0] ;
    var alto_vista = view_hport[0];
   
    var inicio_gui_coordenada_y = alto_vista - global.altura_gui_estadisticas;
    var espacio_entre_texto = 20;
    var tabulacion = 5;
    var longitud_columna = 400;
    var espacio_antes_de_barra_recarga = 200;
    var altura_barra_recarga = 5;
    var multiplicador_longitud_barra_recarga = 5;


draw_healthbar(
        (tabulacion+(longitud_columna*2)+espacio_antes_de_barra_recarga), //Coordenada x1
        (inicio_gui_coordenada_y+espacio_entre_texto*1), //coordenada y1
        (tabulacion+(longitud_columna*2)+espacio_antes_de_barra_recarga)+(tiempo_ataque), //coordenada x2
        (inicio_gui_coordenada_y+espacio_entre_texto*1)+altura_barra_recarga,//coordenada y2
        (tiempo_recorrido), //variable que indica el valor de la "vida" (Aunque la use para otra cosa).
        c_white,c_blue,c_blue,0,true,true); //El fondo es blanco y se va llenando de azul



En este caso la variable "tiempo_ataque" tiene un valor de 30 y "tiempo_recorrido" va de 0 a 30 (se le suma 1 cada "step"); en fin que en lugar de llenarse por completo la barra, se queda como a una cuarta parte (Es más, me parece que la barra blanca es la que es más larga de lo que debería). La imagen es la siguiente (La barra es la que está en el centro):



Los otros números son, de hecho, debugs que he estado haciendo para saber el valor de x1, x2, x1 + tiempo_recorrido, tiempo recorrido y tiempo ataque; el código es el siguiente:


//debug de la barra de vida
    draw_text(tabulacion+longitud_columna*2, inicio_gui_coordenada_y+espacio_entre_texto*2, string(tabulacion+
       (longitud_columna*2)+espacio_antes_de_barra_recarga)); //Valor de x1

    draw_text(tabulacion+longitud_columna*2, inicio_gui_coordenada_y+espacio_entre_texto*3, string((tabulacion+
       (longitud_columna*2)+espacio_antes_de_barra_recarga)+(tiempo_ataque))); //valor de x2

    draw_text(tabulacion+longitud_columna*2, inicio_gui_coordenada_y+espacio_entre_texto*4, string((tabulacion+
       (longitud_columna*2)+espacio_antes_de_barra_recarga)+(tiempo_recorrido))); //valor de x1 + tiempo_recorrido
   
    draw_text(tabulacion+longitud_columna*3, inicio_gui_coordenada_y+espacio_entre_texto*1, string(tiempo_ataque));
    draw_text(tabulacion+longitud_columna*3, inicio_gui_coordenada_y+espacio_entre_texto*2, string(tiempo_recorrido));


Como ven en las últimas 2 línea, los valores de "tiempo_ataque" y "tiempo_recorrido" es el mismo; y las coordenadas de x2 y de x1 + tiempo recarga es la misma... sin embargo la barra no se muestra llena.

¿Alguien sabe qué está sucediendo antes de que termine de volverme loco?  :-[
3
Esta es más bien una consulta de ideas.  :-[
Creo que mas o menos han respondido esto pero no encuentro los temas; lo que quiero es poner un contenedor para poner información del personaje: vida, nivel, experiencia, estadísticas de daño y defensa... pero hasta donde sé no se puede poner algo fuera de las vistas (Y lograr que se vea), aunque claro, yo me quedé en la versión 8 y ahora estoy en el GM Studio 1.4.

Quisiera hacer algo así:



Pero aclaro, estoy haciendo un juego de plataformas.

Cualquier sugerencia es bienvenida.  :)
4
Perdón si no supe cómo poner el título.  ???

Lo que quiero es tener un catálogo de varios objetos con la misma estructura:

{
  id: 1,
  ataque: 0,
  defensa: +10,
  vida: +10,
  velocidad: +20,
  ...
}


En fin que quiero tener la lista de estos objetos en memoria; y mi personaje tendrá un inventario de estos objetos para poder equiparlos (Creería que solo es necesario tener una lista con los "id" de los items que tiene) por lo que tendré que estar consultando el catálogo de objetos a cada momento para calcular las estadísticas finales, para mostrar el inventario al jugador y que él pueda interactuar con esos items para equiparlos.
Mi pregunta es ¿Tienen alguna forma eficiente de mantener ese catálogo de objetos en memoria? Lo que no quisiera es tener ese catálogo en un archivo externo y estar consultando a cada momento la información de todos los posibles items que el personaje tenga en el inventario.  ???
¿Crear una DLL con C/C++ me serviría para eso?
5
Pues tengo esa duda existencial, tanto tiempo entregando trabajos "formales" en la escuela me han enseñado que la letra arial o New Times Roman es la que hay que elegir, pero en un vídeo-juego no se ve muy bien...
Intenté jugar con las fonts pero luego se ven borrosas, opacas o parece muy formal  :'(

Sólo les pregunto ¿Qué tipo de fuente recomiendan? ¿Cuál acostumbran usar para diálogos y mensajes al jugador? :P
6
Hola camaradas.
Ahora la escuela me tiene ocupado, pero me las arreglé para que en una materia me acepten de trabajo final un videojuego; bueno, en fin.
Lo que ahora quiero hacer es que un objeto busque en las 4 direcciones posibles si hay camino por donde él pueda pasar lo escoja al azar, para ello uso la función "collision_rectangle"; mi script es éste:


var i,direccion;
direccion=0;
i=0;
for(i=0;i<4;i+=1)
{
    direcciones[i]=-1;
}
i=0;
for(i=0;i<4;i+=1)
{
    while(true)
    {
        if(direccion>=360)
        {
            direccion-=360;
        }
        switch(direccion)
        {
            case 0:
                {
                    if(!collision_rectangle(x,y+(sprite_height/2),x+50,y-(sprite_height/2),obj_colision_calles_parent,false,true))
                    {
                        direcciones[i]=0;
                    }
                    break;
                }
            case 90:
                {
                    if(!collision_rectangle(x-(sprite_width/2),y,x+(sprite_width/2),y-50,obj_colision_calles_parent,false,true))
                    {
                        direcciones[i]=90;
                    }
                    break;
                }
            case 180:
                {
                    if(!collision_rectangle(x,y+(sprite_height/2),x-50,y-(sprite_height/2),obj_colision_calles_parent,false,true))
                    {
                        direcciones[i]=180;
                    }
                    break;
                }
                case 270:
                {
                    if(!collision_rectangle(x-(sprite_width/2),y,x+(sprite_width/2),y+50,obj_colision_calles_parent,false,true))
                    {
                        direcciones[i]=270;
                    }
                    break;
                }
        }
        direccion+=90;
        if(direcciones[i]!=-1)
        {
            break;
        }
    }
}
direction=direcciones[floor(random(4))]
speed=3;

Pero ocurre que se buclea el programa.  ???
¿Alguien que me pueda ayudar?  :-[
7
hola
Tengo la necesidad de mostrar el inventario de mi personaje en la pantalla miestras se juega, as? como algunas otras estad?sticas. El problema es que no quiero que se sobreponga con la vista del juego (la view), as? que quisiera saber si puedo poner un objeto (que se vea, claro  :-[) dentro de la pantalla de juego pero que no est? en la vista del juego, para que no tape nada de la acci?n  :P.

Pregunto, se puede ???
o hay alguna forma de hacer algo que lo reemplace?

SALUDOS
8
Pues ese el mi problema, no puedo manejar un arreglo y enviarlo aun script (ni returnarlo desde el script). Se supone que basta con poner algo as?:
script(array) y se mandar?a todo el arreglo, pero no  :-\.
O bien, he intentato tambi?n en script(array[]) pero es lo mismo, solo hace referencia a la primera posici?n del arreglo  ???.
inclusive lo he hecho de esta manera:
array[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19] pero me toma como si quisiera usar un array de 20 dimensiones, cosa rara para como he trabajado en C/C++ y Java  :-[
Al parecer el Game Maker trabaja un tanto diferente con estos recursos, me podr?an hechar la mano  ;D

Gracias de antemano
9
Hola.
Pues cree un script para el desplazamiento de un enemigo, que se dirija a un punto que le quede m?s cerca (y libre) al personaje. Pero cuando est? el juego en marcha y el enemigo en esa room actual el juego se traba  :-\ .
Les explico lo que tengo:
en el create del personaje est?n estas variables:
Citarxx=x
yy=y

en el step:
Citarif(xx=x and yy=y)
{
  //scr_ia_mov_bot3();
}
else
{
......
}
y el script es este:

Citar
var dir,x1,y1;
dir=0
//25
while(direction<360)
{
  x1=x+25*(seno(dir))
  y1=y-25*(seno(dir))
  if(place_free(x1,y1))
  {
    if(point_distance(x1,y1,obj_personaje.x,obj_personaje.y)<point_distance(xx,yy,obj_personaje.x,obj_personaje.y))
    {
      xx=x1
      yy=y1
    }
  }
  dir+=10
}

speed=3
direction=point_direction(x,y,xx,yy)

La verdad no veo el por qu? se traba el juego, el script solo se llama 1 vez y luego el enemigo prosigue a moverse  :-\ despu?s lo mismo.
Incluso intent? que la variable "dir" aumente en 20 pero ni as?.
Ustedes que dicen?  :-[
10
Pues esa es mi pregunta:
tengo una aplicacion converter.bat que al ejecutarse acepta 2 argumentos, por lo que uso la funci?n:

execute_program("converter.bat",a,b,false);

siendo a y b 2 variables, pero me sale el error al ejecutar:
"Wrong number of arguments to function or script."
diciendo que me falla el n?mero de argumentos, pero necesito forzosamente 2 argumentos. Alguna manera de enviar 2 argumentos?  :-[


P.D.: Tambi?n he usado esta funci?n:
execute_shell("converter.bat",a,b)
Pero el mismo problema :(
11
Estoy casi seguro que hace tiempo vi en alg?n lugar de la comunidad c?mo hacer para que no se dibuje el cursor en la pantalla, pero ahora no lo encuentro  :-[
Me podr?an decir si en verdad se puede (o solo fu? producto de mi distorcionadamente) y c?mo? Se los agradecer?a mucho.

SALUDOS  :)
12
Pues esto programando un tanque, dividiendolo en 2 partes: el cuerpo y la torreta (de forma parecida a lo que viene en la secci?n de art?culos). Pero yo quiero que cuando la torreta no se este moviendo con las teclas que la hacen girar, no est? a la misma direcci?n que el tanque y este (el tanque) se empiece a mover, la torreta gire por si misma para que tome la misma direcci?n (vista) que el tanque. As? que hice una condicional (muuuy grande) para que la torreta tome la direcci?n de rotaci?n m?s corta para quedar igual que la del tanque; y funciona casi perfectamente, solo que cuando el tanque est? mirando a una direcci?n superior a 180 grados y la torreta a una direcci?n inferior a 180, cuando el tanque se empieza a desplazar y la torreta deviera rotar para mirar igual que el tanque, empieza a rotar al sentido contrario y cuando est? mirando de manera opusta al tanque (una diferencia de 180 grados) se queda trabada all? y no se mueve al menos que el tanque mire a una direccion inferior a 180 grados o se rote la torreta con las teclas.

El c?digo que tengo para que la torreta gire por si sola es este:

Citar
// direction= la direccion a la que mira la torreta
// obj_tanque = es el tanque, asi que indico a la direccion del tanque


if((direction<=180 && (instance_nearest(x,y,obj_tanque)).direction<=180 && direction>(instance_nearest(x,y,obj_tanque)).direction) or (direction>180 && (instance_nearest(x,y,obj_tanque)).direction>180 && direction>(instance_nearest(x,y,obj_tanque)).direction) or (direction>180 && (instance_nearest(x,y,obj_tanque)).direction<=180 && direction-180<=(instance_nearest(x,y,obj_tanque)).direction) or (direction<=180 && (instance_nearest(x,y,obj_tanque)).direction>180 && direction+180>=(instance_nearest(x,y,obj_tanque)).direction))
    {
      direction-=5
    }
    else
    {
      direction+=5
    }


Le he checado mil veces y no veo el problema; aun que como ven es un codigo grande, mas sin embargo es la misma condicion que use para la GIA 2 con mi nave para que mire siempre hacia el oponente y con ella no tuve el mismo problema  :'(
Espero que le encuentren el problema, o si necesitan una prueba con el juego, les paso la parte del programa que necesitan saber.
Ya que si tienen algun script u otro m?todo para lograrlo, se los agradecer?a. Pero tengo GM7 Lite

:(
13
En unas pruebas de juego, me encontr? con un problema que no entiendo por qu? ocurre y es el siguiente:
Tengo 2 sprites del personaje caminando: uno que mira a la derecha y otro a arriba, manejo los sprites correspondientes con image_xscale e image_yscale, tiene el sprite camiando a la derecha por defecto. Aqu? el problema es que se supone que puse que para cuando el mouse est? entre 45? y 135? o este entre 225? y 315? de direcci?n del personaje cambie de sprite al que camina hacia arriba, ya despu?s lo controlo con image_yscale, pero tal cambio no ocurre, o sea se mantiene siempre con el mismo sprite, lo que si ocurre es que realiza el image_yscale pero con el sprite de caminando a la derecha. Adem?s de que tiene por defecto la image_speed=0.3 pero no se realiza la animaci?n.
Aqu? les pongo los c?digos que puse en el step del personaje:
el sprite:  spr_personaje es el que mira a la derecha y el spr_personaje2 es el que mira a la izquierda.

Citarimage_speed=0.3

Citarif ((point_direction(x,y,mouse_x,mouse_y)>45 && point_direction(x,y,mouse_x,mouse_y)<135) or (point_direction(x,y,mouse_x,mouse_y)>225 && point_direction(x,y,mouse_x,mouse_y)<315))
{
  image_index=spr_personaje2
}
else
{
  image_index=spr_personaje
}

Citarif ((point_direction(x,y,mouse_x,mouse_y)>45 && point_direction(x,y,mouse_x,mouse_y)<135) or (point_direction(x,y,mouse_x,mouse_y)>225 && point_direction(x,y,mouse_x,mouse_y)<315))
{

  if (mouse_y<y)
  {
    image_yscale=1
    direction=90
  }
  if (mouse_y>y)
  {
    image_yscale=-1
    direction=270
  }
}
else
{

  if (mouse_x<x)
  {
    image_xscale=-1
    direction=180
  }

  if (mouse_x>x)
  {
    image_xscale=1
    direction=0
  }
}

Le he estado buscando el error pero no le encuentro  :-\
14
hola
Resulta que estoy intentando hacer un script que devuelva la direcci?n resultado de un objeto al rebotar contra otro (como un bloque, por ejemplo) considerando una variable que represente la resistencia que opone el objeto golpeado (en este caso la variable peso, aun que no refiere especificamente al peso real  :P ); la cosa es que ya tengo las cuentas hechas y el script listo, perooooo pasa que la direcci?n que toma despu?s de la colision es algo erronea si lo consideramos desde el punto de vista real.

Lo que fallan no creo que sean los calculos que los he repasado un par de veces, lo que veo es que al considerar la fuerza que ejerce el bloque hacia el objeto (en este caso un balon) se considera la direcci?n desde el centro del bloque en lugar de tomar encuenta la direcci?n desde el punto de colision con el balon, o sea que si el balon golpea a un bloque casi por la esquina izquierda por la parte superior, no se considera que el bloque ejerce una resistencia en direcci?n de 90 grados sino a un grado superior como de 140 grados, lo que nos d? un ?ngulo m?s agudo en lugar de uno obtuso como deberia ser  :'(

Para que vean el problema ustedes mismos, les pongo el programa con el script y todo.

El balob se ueve con las flechas y se puede reiniciar con la tecla R y con S se detiene

Adjunto una imagen que aclara mas mi problema, en el se ve al balon golpeando al bloque y la direcci?n que tiene (en este caso hacia abjo) se muestra con la flecha negra, y la flecha verda muestra la fuerza que ejerce el bloque con el rebote; la primera imagen muestra la direccion que ejerce el bloque desde el centro hacia el balon, y la segunda imagen muestra el como deberia ser la direccion de la fuerza  :'(
15
Estoy haciendo un trabajillo con el Game Maker y necesito utilizar las funciones de seno, coseno y tangente pero en el manual me encontr? con que devuelve (en caso del seno) el seno de x pero que x en radianes  ???
La verdad no entiendo a que se refiere con eso, yo lo que quiero es realizar calculos vectoriales, o sea tendiendo un vector, sacarle los componentes horizontales y verticales, y para eso necesito el seno y el coseno pero no entiendo eso de los radianes. Encontr? despues una funcion que me convierte los radianes en grados y los grados en radianes pero no se como me pueden ayudar.
Adem?s de que tengo otro prop?sito para la tangente que es sacar la inversa a la tangente, o sea tan-1 y de eso menos viene explicado en el manual  :'(
Toda via hay cosas que no entiendo de como funciona bien el GM por eso pido esta ayuda.

Desde ya gracias  ;)
16
Preguntas y respuestas / Marco en una View
Noviembre 24, 2009, 02:54:15 AM
Lo que tengo es una View grande que sirve como vista del juego, adem?s de una view muy peque?a ,pero que muestra una mayor area del room ya que la uso como un mapa, que se ve dentro de la View m?s grande. El problema es que quiero hacer que alrededor de la view peque?a haya alg?n marco para que no se llegue a confundir como parte de la view grande, o sea que sirva de separaci?n.
No se si me doy a explicar  :(
17
Pues mi intencion es la siguiente: si se cliquea en un espacio vacio se cree una instancia, pero si se cliquea en una ya creada, esta se "seleccione" ya para cada accion de cada objeto. Lo que no entiendo al 100% es como hacer referencia a la posicion en donde el mouse hace clic, se hacer referencia a las coordenadas d su posicion actual pero no a la posicion en donde se hiso el clic. Y por ovbia no se como "seleccionar" una instancia cuando se hace clic sobre ella.  :-[