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

76
Primero que todo, gracias por seguir respondiendo.

En todo caso me interesaba conocer los requerimientos m?nimos para los juegos hechos con  :GM8: y a partir de ahi voy probando cuanta memoria RAM me usando mis proyectos.
77
Gracias Ge, eso es exactamente lo que buscaba, no se por qu? no se me ocurri? fijarme ah? xD
78
Bueno, mi consulta es si alguno de ustedes sabe cu?les son los requisitos del sistema para que puedan correr los juegos hecho con  :GM8: (pongo 8 porque es la versi?n que compr?  :) ). Es para saber los requisitos m?nimos que tendr?an los juegos que haga en el futuro.
79
Preguntas y respuestas / Re: ?Segundo asalto!
Abril 18, 2011, 06:33:04 PM
Y si reinicias en room?? Para esto tendrias que almacenar los datos en variables globales o en un objeto persistente. De este modo volver?an a aparecer en las mismas posiciones los tankes.
80
Preguntas y respuestas / Re: turnos a 24 players
Diciembre 13, 2010, 04:17:08 PM
Una forma es la siguiente:
1. Almacenar a los 24 objetos en una lista.
2. Elegir un objeto de la lista (al azar, por ejemplo) y ejecutar su turno.
3. Una vez terminado el turno, eliminarlo de la lista y elegir otro.
4. Cuando ya no quede nadie en la lista, comenzar de nuevo por el paso 1.

Nos leemos.
81
Preguntas y respuestas / Re: Pathfinding isometrico
Febrero 22, 2010, 12:49:53 AM
Krakenhimoto hizo un pathfinding isom?trico y ten?a un proyecto de juego en el blog. Puedes ped?rselo a ?l (creo que incluso subi? el engine completo).

Si quieres una idea por mientras, te digo que debes crear un objeto en el origen del camino (la posici?n del personaje que se va a mover) y ?ste debe replicarse a si mismo en las direcciones en las que se puede mover ( 4 o 8 ) y estas r?plicas hacen lo mismo hasta llenar el escenario (o hasta que una llegue al destino). La instancia que se encuentra en el punto de destino se convierte en el final del camino y se comienza a formar el path desde el final hasta la instancia inicial, en donde cada r?plica almacena su posici?n y despu?s le pasa el turno a la replica que lo cre?, hasta llegar a la primera instancia. Es un m?todo eficiente, pero no el ?ptimo, por lo que se recomienda no sean muchas las instancias que lo ocupen.

Nos leemos.
82
Lo de las views te puede servir, ya que puedes dividir el room en dos partes, una el escenario y otra el men?, por lo que una view se ve limitada al escenario y la otra view al men?.

Pero te recomiendo mejor usar un mapa para almacenar los datos del men? y despu?s mostrarlos a partir de ?ste.

Nos leemos
83
Cita de: Wadk en Diciembre 04, 2009, 08:09:30 PM
...Si quer?s que una variable se refiera a un objeto, pero que comienze sin referirse a ninguno, se hace simplemente as?:
variable=-1;
Eso es porque ning?n objeto tiene ID menor a 0.

Aportando a lo que dijo Wadk, puedes si tu variable hace referencia a un objeto, puedes colocarle:
Citarvariable=noone;
ya que noone tiene valor de -4 y se ve m?s interesante xD
84
Hay un script que produce el efecto que deseas, pero con los backgrounds: http://www.comunidadgm.org/index.php?topic=3891.0

Lo puedes aplicar a un sprite, cambiando "draw_background_part(..." por "draw_sprite_part(..." y ordenando los argumentos.
85
Preguntas y respuestas / Re: sombra juego etrategia T.R.
Noviembre 28, 2009, 07:52:05 PM
Aquella sombra he visto que le llaman "Niebla de Guerra" (Fog of War).
Hace bastante tiempo encontr? un engine en la comunidad GM en Ingl?s para lograr esta niebla.

Adventus Fog of War
86
Preguntas y respuestas / Re: Composici?n de variables
Noviembre 25, 2009, 11:00:59 PM
?No has intentado usar mapas??
87
Desarrollo de Scripts / Regular Ángulo
Noviembre 23, 2009, 09:49:14 PM

  • Nombre del Creador: Markus
  • Version:  :GM6:
  • Descripción: Muchas veces se tienen variables que contienen ángulos para diferentes cálculos, pero cuando los valores que nos devuelven son mayores a 360 o menores a 0, a veces traen ciertos problemas a la hora de usarlos, por lo que se tienen que regular de alguna forma. Lo más común es usar este procedimiento:

    Citar
    while (angulo < 0)
       angulo += 360;
    while (angulo > 360)
       angulo -= 360;

    Es efectivo, pero no lo más eficiente.


  • Código:

Citar
//set_angulo(angulo);
var angulo;
angulo = argument0;
return (angulo mod 360 + 360) mod 360;

88
Desarrollo de Scripts / Funciones Trigonométricas
Noviembre 23, 2009, 01:21:24 AM

  • Nombre del Creador: Markus
  • Version:  :GM6:
  • Descripción: Más que una utilidad es un consejo práctico. En general, los ángulos usados, a la hora de desarrollar código, están en grados, pero las funciones trigonométricas del Game Maker piden sus argumentos en radianes y, como ya sabemos, el eje Y está de cabeza.

    Debido a todo esto, es de bastante utilidad tener scripts que hagan las conversiones pertinentes donde sea necesario. Por ejemplo, en vez de tener un código así:

    Citarx += cos(degtorad(direccion)) * velocidad;
    y += sin(degtorad(-direccion)) * velocidad;

    se puede tener así:

    Citarx += coseno(direccion) * velocidad;
    y += seno(direccion) * velocidad;

  • Códigos:


Citar//seno(angulo);
return sin(degtorad(-argument0));

Citar//coseno(angulo);
return cos(degtorad(argument0));

Citar//tangente(angulo);
return tan(degtorad(-argument0));

Citar//arcoSeno(valor);
return -radtodeg(arcsin(argument0));

Citar//arcoCoseno(angulo);
return radtodeg(arccos(argument0));

Citar//arcoTangente(angulo);
return -radtodeg(arctan(argument0));

89
Desarrollo de Scripts / N direcciones con 1 solo Sprite
Noviembre 23, 2009, 12:45:11 AM

  • Nombre del Creador: Markus
  • Version:  :GM6:
  • Descripción: Este script nos entrega la facilidad de usar tan solo un sprite para cada acción de un personaje (caminar, atacar, morir, etc) conteniendo todas las direcciones en las que se moverá.

    Se recomienda su uso en el evento Draw, ya que el script dibuja de paso el sprite actual.

  • Código:


Citar//draw_sprite_dir(direcciones);

var dir, num, minimo, maximo, direcciones;
direcciones = argument0;
dir = floor(direction / (360 / direcciones));
num = image_number / direcciones;
minimo = dir * num;
maximo = dir * num + num - 0.5;
if ((image_index < minimo) || (image_index >= maximo))
    image_index = minimo;


draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);

90

  • Nombre del Creador: Markus
  • Versión: :GM6:
  • Descripción: El script que desarrollé lo llamo move_snap_iso(hsep, vsep), ya que cumple un rol similar a move_snap(hsep, vsep) con la diferencia que alinea a la instancia a una cuadrilla isométrica, en donde cada rombo tiene un ancho de hsep y un alto de vsep y posicionando la coordenada (x,y) en el centro del rombo.
  • Código:

Citar
//move_snap_iso(hsnap, vsnap);
var W, H;
W = argument0 / 2;
H = argument1 / 2;
I = round(x / W);
J = round(y / H);

if ((I mod 2 = 0 && J mod 2 = 0) || (I mod 2 == 1 && J mod 2 == 1))
{
    x = W * I;
    y = H * J;
}
else if (I mod 2 = 0 && J mod 2 == 1)
{
    if (x > W * I)
        x = W * (I + 1);
    else
        x = W * (I - 1);
    y = H * J;
}
else if (I mod 2 == 1 && J mod 2 = 0)
{
    x = W * I;
    if (y > H * J)
        y = H * (J + 1);
    else
        y = H * (J - 1);
}

A petición de Kakashigna:

Para saber si la instancia está ya posicionada en la cuadrilla:

Citar
//place_snapped_iso(hsnap, vsnap);
var X, Y, B;
X = x;
Y = y;
move_snap_iso(argument0, argument1);
B = (X == x && Y == y);
x = X;
y = Y;
return B;