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

181
Pues si se puede, para ello existen algoritmos de pathfiend (creo asi se llaman  :-[) como el A* (A star o A estrella), mas o menos conosco el algoritmo pero nunca lo he implementado y se me es algo... aburrido XD. Pero creo que por all? alguna vez KrakenHimoto dej? un ejemplo no se donde, de por s? el algoritmo se encuentra en internet; para cosas as? se necesita el manejar Listas (que vienen definidas en la versi?n PRO del GM)  :-X; pero s? se puede  :D
182
Puedes no reiniciar todo el juego, solo una Room, y el score ser?a una variable global por lo que no se reiniciar?a.

O bien (si es necesario reiniciar el juego) una vez que termines la carrera guardes el valor del score en un archivo.ini, reinicies el juego y cargues el valor que acabas de guardar en el archivo.  ;)
183
Si entend? bien lo que pider, el mismo Game Maker te ofrece la tabla; aqu? tienes toda la informaci?n necesaria en el manual del juego:

http://www.comunidadgm.org/manual_GM/Tablas_de_records_htm.htm
184
Preguntas y respuestas / Re: Sobre ?capas? una duda
Diciembre 31, 2010, 09:12:25 PM
pues est? algo complicada la situaci?n, pero qu? tal si cuando cliqueas sobre una celda del mapa checas si no existe un bot?n del men? a menos de 1 de distancia, algo as? como

Al clickear sobre la celca
[gml]
if(instance_exist(obj_boton) && distance_to_object(instance_nearest(x,y,obj_boton))>1)
{
  //que haga lo que tiene que hacer normalmente la celda al clickear
}
[/gml]

Deber?a funcionar  :-[
185
Juegos completos / Re: CGM: The Game
Diciembre 27, 2010, 01:31:50 AM
Wow, seeee, la siguiente entrega se ver? brutal !!!  :-*

Pues a?n puedo poner mi personaje, verdad?

el nombre sera... knd144 :P
186
Algo que me gustaria para todas las nuevas versiones: las mismas funciones con misma sintaxis que las versiones anteriores, pero con funciones nuevas que sean como el mejoramiento de las anteriores (o que sea como java que pueden aceptar diferentes tipos de parametros una sola funcion). Esto permitiria transportar facilmente un juego de una version a otra; mejorarlo y retocarlo.

187
pues guarda la id de esta casa en una variable que inicialmente est? en false.
As?, si la variable casa=false empieza a buscar una casa hasta que la encuentra, y la id de esa casa se deposita en la variable casa del habitante... y pues supongo que poniendo una variable m?s en la casa que indique si est? ocupada o disponible se arregla de que solo escogan una casa desocupada. :-[
188
Yo lo que hago es precisamente eso de usar una variable, pero en el enemigo:
algo as?:
enemigo:
create:
CitarpAtacar=true //una variable que permita atacar y da?ar, empieza en true
luego en la colisi?n con el personaje:
Citarif(pAtacar==true)
{
  //realizar el da?o al personaje
  pAtacar=false; //hago que la variable que permita da?ar se desactive
  alarm[0]=15 // llamo una alarma con el tiempo en el que el enemigo espera para volver a da?ar
}

y en el evento de la alarma[0]:
CitarpAtacar=true;

Y as? aun que el enemigo est? pegado al personaje solo le causar? un da?o cada cierto tiempo,  :D
189
Bueno, gracias por responder; Eduardo, no me sab?a eso de las listas, son muy interesantes pero por ahor alo que necesito es lo de Texic  :-[.

Por cierto christian, la cosa no sirve por que si env?o el array as?: script(miarrai), el argument0 tendr? el valor de la posicion 0 del array  :(

SALUDOS  ;)
190
ammm... hackware, pide que el xstart y ystart del objeto recien creado sean las mismas que el xstart y ystart del objeto que lo crea, cosa diferente (te?ricamente) de la posici?n X y Y  :-[

La cosa quedar?a as?

Citarinstance_create(xstart,ystart,enemigo)
Para que las coordenadas iniciales del nuevo enemigo sean iguales a las coordenadas iniciales del objeto que lo cre?.
En todo lo dem?s est?s bien  XD
191
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
192
A bueno, eso resulta sencillo, la uesti?n es que cada "habilidad" ser? definida por una variable, si la variable est? activa o tiene un calor en espec?fico se puede realizar lo de dicha habilidad.

Por ejemplo queremos el estado tirafuego, inicialmente la variable tirafuego= false, o sea que no est? activada; pero al tomar una flor se activa la variable tirafuego=true.
Ahora, en el bot?n con el que se tira el fuego:
Citarif(tirafuego=true)
{
  instance_create(x,y,obj_fuego);
}

Igual puede ser cuando mario acaba de agarrar la estrellita que lo hace inmune, vamos a crearle la habilidad inmune. Inicialmente inmune=false, al tomar la estrella inmune=true; ahora al colisionar con los enemimos hacemos esto:
Citarif(inmune=true)
{
  with(other)
  {
    instance_destroy() //destruimos el enemigo
  }
}
else
{
  instance_destroy() //si no est? activa la habilidad inmune, se muere mario, por as? decirlo  XD
}

T?cnicamente creo que a esto te refieres, no?

SALUDOS  ;)
193
ammm... vale, no usaremos alarmas para el salto, me acabo de acordar una forma de darle salto autom?tico (y con complicaciones m?nimas) a un enemigo. Bueno, ya tienes el enemigo con las indiaciones que te d? arriba, ok? ahora haces lo siguiente:

lo que haremos es que el salto sea un "estado" del enemigo, de la siguiente manera.

En el create pones la variable salto con valor en false

Citarsalto=false // por que en circunstancias normales no saltar? :P

ahora, en primera queremos que el enemigo salte cuando est? abajo del personaje, adem?s de que le daremos la opci?n de que salte cuando est? cerca de este (digamos a unos 30 pixeles de distancia con respecto a la coordenada x) ponemos este c?digo en el step:

Citar
if(obj_personaje.y<y && distance_to_point(obj_personaje.x,y)<=30) // aqu? indicamos si en personaje est? a una altura superior a la del enemigo y que est? a 30 o menos pixeles de distancia con respecto al eje x
{
salto=true // Le cambiamos el valor a la variable salto
}

ahora, esto es lo que har? el enemigo cuando se le cambie el valor a la variable salto a true, en el step tambi?n ponemos:

Citar
if salto==true

{
  if not place_free(x,y+1) //si no hay piso abajo.
  {
    vspeed=-8 //indicas cuanto va a saltar salto
  }
salto=false
};

Y pues con esto (en teor?a) el enemigo saltar? cuando est? cerca del personaje; a m? me ha funcionado en pruebas y cosas sencillas, no veo por qu? no te ir? a funcionar  ;D

SALUDOS  ;)
194
Me imagino que usas la funci?n move_towards_point(), pues ese es el problema: Move_towards no le importa la gravedad  XD

Mira, solo en vez de unsar esa funci?n usa ifs, as?

Citar
if(obj_personaje.x>x)
{
  hspeed=+4// suponiendo que la velocidad del enemigo es 4, si el personaje est? a la derecha, el enemigo se desplazar? a la derecha
}
else if(obj_personaje.x<x)
{
  hspeed=-4// aqu? es el caso contrario para que se desplaze a la izquierda si el personaje est? a la izquierda
}
else
{
  speed=0// caso en que no se cumpla ninguna de las condiciones anteriores, o sea que est? en el mismo eje x
}

sobre el salto, hazlo con alarmas  :P
195
pues es casi igual: Abres el archivo.ini, depositas en una variable el texto en el archivo, y cierras el archivo.ini; ya luego usas el draw_text...

por ejemplo:
tiene la variable nombre, entonces

Citarini_open("NomPerso.ini");
nombre= ini_read_string("Text1","NombrePer","")// lafunci?n es ini_read_string(section,key,default), nombre de la seccion, la clave y el default por si tal clave o seccion no existe.
ini_close();
Ya solo tienes que mostrar el valor dentro de la variable Nombre.

Citardraw_text(x,y,nombre)

:D