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

16
Cita de: MRafX en Julio 19, 2010, 05:03:45 PM
no,no,no, creo que no me explico bien, que por ejemplo yo pongo las balas desde el inico de el room y que cuando empiece el juego las valas agarren un angulo hacia megaman pero nadie las disparo o que las cree con el enemigo, pero se crean lejos en alineacion de circulo.

Entonces directamente pon esto en el evento Create de cada bala:
direction = point_direction(x, y, objMegaman.x, objMegaman.y);
speed = 5;


Directamente al crearse la bala, ya apuntar? hacia Megaman, luego con el speed le dir?s a qu? velocidad ir? contra ?l.


Un saludo,
- Herni
17
Cita de: MRafX en Julio 19, 2010, 11:34:16 AM
primero hola soy nuevo en el foro

estoy haciendo un juego de megaman y touhou, lo que quiero saver es como hacer que un sprite (una bala enforma de cristal) al ser creada, tenga el angulo hacia el personaje, yo no se mucho de gml :-[, asi que casi todo lo ago con las herramientas que trae ?alguien podria decirme como le ago porfavor? :)

Buenas lo que necesitas es saber de primeras el nombre de los objetos que participan, que de momento ser?n s?lo 3, y yo los voy a llamar as?, luego ponlos t? como quieras:
* objMegaman
* objEnemigo
* objBalaCristal

Ahora s?lo necesitas utilizar este c?digo en la parte donde generes el disparo del Enemigo hacia Megaman:

idBala = instance_create(objEnemigo.x, objEnemigo.y, objBalaCristal);
idBala.direction = point_direction(objEnemigo.x, objEnemigo.y, objMegaman.x, objMegaman.y);
idBala.speed = 5;

// La primera crea la bala desde el Enemigo y asigna un identificador de objeto (ID)
// La segunda calcula ?l ?ngulo de disparo
// La tercera asigna la velocidad del disparo



Espero que te sirva.


Un saludo,
- Herni
18
Preguntas y respuestas / Re: terremoto
Julio 19, 2010, 05:57:15 AM
Cita de: Texic en Julio 19, 2010, 05:55:23 AM
Exacto, tambi?n se puede mover la view, y los objetos no se congelan, seg?n cu?l prefiera

Ahhh... eso no lo sab?a, es que soy un negado con las views, soy incapaz de poner bien los valores incluso usando el interface de views del GM, que si Port y cosas raras :)


Un saludo,
- Herni
19
Preguntas y respuestas / Re: terremoto
Julio 19, 2010, 05:44:40 AM
Cita de: akumav95 en Julio 19, 2010, 05:20:56 AM
es simple
o quiz?s no
es posible hacer un terremoto de 1 segundo (ya saben q mueva la pantalla levemente)
grax

La ?nica idea que se me ocurre es utilizar la funci?n del GM que crea un objeto utilizando como sprite el estado actual de la pantalla, luego sacurdir ese objeto para simular el terremoto y destruirlo para que vuelva al estado original.

La cosa, como dice Texic, es que el juego quedar?a "a la vista" congelado durante el tiempo que dure el terremoto, pero el resto de objetos no, as? que desactivar todas las instancias para luego reactivarlas.

Supongo que alguna idea as? ten?a Texic en mente.


Un saludo,
- Herni
20
Cita de: Wadk en Julio 19, 2010, 05:18:46 AM
?Aj?aa! ?Lo logr?!
Comprob? que el ID del juego se guarda en los bytes 4, 5, 6 y 7 de cada partida. As? cre? este script para comprobar si la partida corresponde al juego o no :)
Código (file_is_savegame) [Seleccionar]
//file_is_savegame(file);
//file: El archivo a comprobar.
//Devuelve: 1 Si el archivo es una partida guardada que corresponde al juego.
//          0 Si no lo es.

var f,i,byte,ret;
f=file_bin_open(argument0,0);

ret=0;
for(i=0;i<4;i+=1){
    file_bin_seek(f,4+i);
    byte=file_bin_read_byte(f);
    byte*=power(256,i);
    ret+=byte;
}

file_bin_close(f);
return ret==game_id;


Uuuuoooooo... mola :-*

Voy a ver si puedo apa?arlo con la funci?n est?ndar de Cargar saves del GM, para que haga un chequeo previo.


Muchas gracias Wadk, un saludo,
- Herni
21
Cita de: knd144 en Julio 19, 2010, 03:37:52 AM
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

Yo estaba haciendo algo parecido usando justo el move_towards_point(), pero adem?s de volar se atascaban.

El problema a?adido es que el c?digo que estoy intentando mejorar, me lo han dado de base con un c?digo de un sistema de plataformas y es una locura, casi prefiero parirme todo el c?digo por m? mismo desde cero, pero es lo que hay.

Al final hice otras pruebas con if's que respetan la posici?n X y la buscan, pero la gravedad se la pasan por el forro (de momento) y estoy viendo la forma de que se anticipen a las posibles ca?das y saltos que tengan que hacer, para subir o bajar correctamente de las plataformas.

Las alarmas me lo hac?an demasiado aleatorio, si se cumple la alarma en medio de una recta, quiz?s al caer, lo hace en un hoyo XD


Seguir? trasteando a ver si puedo decirle a los enemigos d?nde empiezan las plataformas para que seg?n su velocidad salte a tiempo para subir.


Un saludo,
- Herni
22
Cita de: slampdesign en Julio 18, 2010, 08:18:27 PM
no, mira quiero que se desactive esa tecla mientras mi variable este en "true"

Pues dir?a que con poner este c?digo en el evento de la tecla que quieres bloquear ser?a suficiente:

if (variable == false)  // Si la variable es true no se ejecutar?
{
  // C?digo que quieres que haga
}



Un saludo,
- Herni
23
Cita de: Gabriel Moreno en Julio 18, 2010, 05:25:32 PM
Lo compruevas porque es save casi siempre lleva un nombre ej: Si presionas en la herramienta Save Game en main2...te pregunta; Filename="aqui tu pones el nombre del savegame"
Puedes poner elnombre de tu juego o cosas asi.

El caso es que yo tengo configurados unos script m?os en los que:
* Salvo pulsando F5
* Cargo pulsando F6

En ambos casos le abro la ventana est?ndar de di?logo de "Abrir" y "Guardar c?mo" para que ?l pueda elegir la partida que quiere Abrir, o al salvar que le pueda poner el nombre que quiera.

Yo de base en los cuadros de di?logo s?lo muestro las extensiones ".sav" y adem?s cuando le da a guardar, le presento un nombre de archivo por defecto generado a partir de los siguientes datos:
* Nombre del Juego
* Fecha a la inversa (para que queden ordenados)
* Hora

De manera que un archivo save por defecto ser?a con estos formatos:
Juego-20100614-115143.sav
Juego-20100718-183121.sav

As? quedan bien ordenados en la carpeta.


El problema es que si alguien le da por abrir otro archivo .sav de vete a saber de d?nde lo ha sacado, me da este error:
"This is a save file for a different game!"


Y si abre otro archivo .sav que no tiene nada que ver con una partida de un juego hecho con GameMaker, me da este otro error:
"Cannot load game saved with other version."


Y es justo lo que me gustar?a controlar, para presentarle yo un mensaje de error personalizado y volver al juego.

?Alguna manera o idea?


Gracias, un saludo,
- Herni
24
Subo este post m?o que llevaba tiempo sin respuesta y es que me ha vuelto a suceder lo mismo :'(

Y no s? c?mo comprobarlo para que salte un error personalizado por m?, no ese mensaje tan feo que aparece :o


Gracias a tod@s, un saludo,
- Herni
25
Buenas,

Ya que no me es posible disponer del GM funcionando todo el tiempo que quisiera (ahora uso el de mi padre en remoto cuando lo tiene encendido), sigo programando todo a golpe de "Bloc de Notas" (notepad) para luego pasarlo al GM, por lo que estoy aprendiendo GML a marchas forzadas.

El caso es que s? que por D&D se puede asignar directamente un sprite como si fuera el cursor del rat?n y en la misma opci?n anular el cursor est?ndar del sistema para que no se vea.

El problema es que mirando manuales oficiales (y no tan oficiales) de GML he dado con la forma de asignar un sprite al cursor con la variable "cursor_sprite", pero lo que no he conseguido es encontrar la funci?n en GML que anule el cursor de la flecha de windows, para que no sea visible, todos los manuales hacen referencia al "Global Game Settings".

?Pero qu? pasa si en un momento del programa quiero hacer visible el cursos original de windows? No puede ser entonces s?lo mediante el "Global Game Settings".

Por eso supongo que habr? una funci?n o una variable que, a base de false o true, haga esto.

?Alguien sabe algo al respecto?


Citar
EDITO, QUE HE DADO CON LA SOLUCI?N:
Tras urgar un buen rato m?s, probando con las t?picas variables de cursores de "Visual Basic" (arrow, help, default...) he dado con la dichosa funci?n:
window_set_cursor(tipodecursor)

Si el par?metro es "cr_none" se ocultar? el cursor, y si es "cr_default" vuelve al est?ndar del Sistema.


Muchas gracias, un saludo,
- Herni
26
Cita de: Wadk en Julio 18, 2010, 04:16:42 AM
El problema con el if es que cambia el sprite_height al modificarse el aspecto del sprite usando variables (como image_xscale), supongo. Intent? con sprite_get_height(sprite_index) que verifica la imagen del sprite tal como fue colocada en memoria por primera vez y no toma en cuenta las propiedades del objeto.
Aunque tambi?n podr?as poner un instance_destroy en el evento Outside Room... ser?a m?s f?cil.

Buenas de nuevo Wadk,

Ya hab?a probado el Outside Room, pero por tener el eje del Sprite en el (16)(16), desaparec?a cuando estaba s?lo la mitad fuera.

He trasteado y he visto que s?lo fallaba cuando el cuadrado iba a salir de la room en direcci?n entre 90? y 180? (vamos... yendo a la izquierda)

Mi funci?n de controlar la salida de la pantalla era:
if (y < (0 - sprite_height))  // Si la posici?n Y es menor de -32, se ha salido completamente de la room

El caso es que yo rotaba el cuadro y lo reflejaba con la variable "image_yscale = -1" que sorprend?ntemente hac?a que la altura del sprite pasase a ser -32 pixeles XD

Entonces lo que he hecho ha sido rehacer el check del if para que tome el valor absoluto de la altura:
if (y < (0 - abs(sprite_height)))  // Si la posici?n Y es menor de -32, se ha salido completamente de la room


Cita de: Wadk en Julio 18, 2010, 04:16:42 AM
Yo no veo que no llegue a tocar las paredes, para mi lo hace bien.

Entonces el problema del bounce ser? entonces cosa de mis ojos, que no refrescan tan r?pido como el monitor y no veo la colisi?n forzada que hago con el "move_contact_solid()" XD



Gracias por las alternativas, un saludo,
- Herni
27
Cita de: slampdesign en Julio 17, 2010, 11:05:28 PM
bueno, algo mas facil seria (si existiera), la posibilidad de no agregar mas health o cantidad de una variable..entiendes???, esta seria mi solucion.

Necesito algo que me impida a?adirle mas valor o cantidad a una variable durante un determinado tiempo...

Creas una alarma que ser? (y cito tu propia pregunta) la que indique "un determinado tiempo" durante el cu?l no se podr? "a?adir m?s valor o cantidad a una variable"


En tu funci?n para "a?adir m?s valor o cantidad a una variable" pones este IF:

if (global.EventoBloqueado == false) // Si mi evento no est? bloqueado, lo ejecuto
{
 codigo_del_evento_a?adir_valor;
}



Y en la funci?n que quieres que "impida a?adirle m?s valor o cantidad a una variable durante un determinado tiempo" pones esto:

global.EventoBloqueado = true;
alarma[0] = "determinado_tiempo";



Luego en el evento de la alarma[0] pones este c?digo:

global.EventoBloqueado = false;  // Permite que se pueda volver a ejecutar el otro evento


Un saludo,
- Herni
28
Cita de: Wadk en Julio 17, 2010, 10:35:23 PM
Arregl? el ?cono del mensaje.

Hecho...

A ver si con este detalle, recibo alguna sugerencia para arreglar el problemilla XD


Un saludo,
- Herni
29
Cita de: corintiano75 en Julio 17, 2010, 10:37:07 PM
hola pe?a tengo una duda como es posible q mi personaje, por ejemplo mario al transformarse un mario_grande utilisando los mismos codigos tenga resultados diferentes. por ejemplo en una plataforma vertical mario me va perfecto y al transformarme en mario_grande este se queda pegado a la plataforma a que es debido y que tengo que tener en cuenta con esto?
gracias y salu2.

No puedo darte una respuesta probada, pero yo probar?a ajustando el centro del sprite de tu personaje.

Por ejemplo, si tu mario_peque?o es de 16x16 y tiene el centro del sprite en el (0)(0), si luego tu mario_grande es de 16x32, yo probar?a a ponerle el centro del sprite en la posici?n (0)(16), de manera que ambos a efectos de posici?n en pantalla tendr?an el punto de control del sprite en la misma posici?n en la pantalla.

As? ser?a m?s o menos el esquema de las posiciones en pantalla:

Código (No es c?digo, es para que se vea alineado) [Seleccionar]

   Mario_Peque?o     Mario_Grande

                          ##
                          ##
(0)(0) > ##      (0)(16) > ##
        ##                ##



Un saludo,
- Herni
30
Cita de: slampdesign en Julio 17, 2010, 10:31:06 PM
supongamos que tengo un alarm, de 30 steps (el tiempo que tarda para que mi health tenga 30%) y que durante esa alarma no se pueda hacer este evento...

Qu? elemento o c?mo lanzas el otro evento? No el de subir la vida, si no el otro.

Para poder enfocar mejor la respuesta. Porque si no, de base ser?a la respuesta que te di antes.


Un saludo,
- Herni