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

46
Cita de: J-Dek en Julio 13, 2010, 02:08:16 AM
---EDIT---

Tengo un problema con esto, pongo el CODE:


if global.pociones=0{show_message("No tienes ninguna Pocion")}
if global.pociones>=0{
seleccionapocion=get_string("?A qu? Pok?mon quieres darle la Pocion?","Inserta el nombre")
if seleccionapocion="Pikachu"{
pokemon1vida.ps+=20
show_message("?Pikachu ha recuperado 20 PS!")
global.pociones-=1
}
else{
show_message("No tienes ese Pok?mon.")
}
if seleccionapocion="Bagon"{
pokemon1vida.ps+=20
show_message("?Bagon ha recuperado 20 PS!")
global.pociones-=1
}
else{
show_message("No tienes ese Pok?mon.")
}
if seleccionapocion="Bulbasaur"{
pokemon1vida.ps+=20
show_message("?Bulbasaur ha recuperado 20 PS!")
global.pociones-=1
}
else{
show_message("No tienes ese Pok?mon.")
}
if seleccionapocion="Squirtle"{
pokemon1vida.ps+=20
show_message("?Squirtle ha recuperado 20 PS!")
global.pociones-=1
}
else{
show_message("No tienes ese Pok?mon.")
}
}


Ahora mismo no sabr?a decir que tengo mal, si intrduzco un nombre incorrecto, funciona, no recuperas PS, pero el mensaje de ''No tienes ese Pok?mon'' se repite varias veces y si pongo el nombre correcto funciona porque recuperas PS pero despu?s el mensaje de ''no tienes ese pok?mon'' se repite.

y luego

Si el primer pokemon es Bagon, osea: global.pokemon1="Bagon" y pongo en el cuadro Pikachu, este tambi?n recupera los PS en vez de salir como ''no tienes ese Pok?mon''

help please :-[


Es cuesti?n de reordenar un poco el c?digo:
(Perdona si lo pongo a mi manera, pero es que yo lo veo como 800 veces m?s claro as?)


if (global.pociones == 0)
{
  show_message("No tienes ninguna Poci?n");
}
else if (global.pociones >= 0)
{
  seleccionapocion = get_string("?A qu? Pokemon quieres darle la Poci?n?", "Inserta el nombre");
  if (seleccionapocion == "Pikachu")
  {
    pokemon1vida.ps += 20;
    show_message("?Pikachu ha recuperado 20 PS!");
    global.pociones -= 1;
  }
  else if (seleccionapocion== "Bagon")
  {
    pokemon1vida.ps += 20;
    show_message("?Bagon ha recuperado 20 PS!");
    global.pociones -= 1;
  }
  else if (seleccionapocion == "Bulbasaur")
  {
    pokemon1vida.ps += 20;
    show_message("?Bulbasaur ha recuperado 20 PS!");
    global.pociones -= 1;
  }
  else if (seleccionapocion == "Squirtle")
  {
    pokemon1vida.ps += 20;
    show_message("?Squirtle ha recuperado 20 PS!");
    global.pociones -= 1;
  }
  else
  {
    show_message("No tienes ese Pokemon");
  }
}


El c?digo se puede simplificar much?simo, pero lo he dejado as? para que lo veas claro respecto al tuyo original, si luego quieres un simplificado avisa XD

Con esto arreglar?as el problema de que se repita el mensaje de "No tienes ese Pokemon".


Y por lo que dices de que asigna mal la poci?n si el primer pokemon es Bagon (global.pokemon1 = "Bagon") y pones en el cuadro Pikachu, este tambi?n recupera los PS en vez de salir como "no tienes ese Pok?mon", yo dir?a que con ese c?digo da igual que nombre pongas mientras exista, porque siempre pones "pokemon1vida", as? que siempre le asignar? los Puntos de Salud al pokemon que tengas en la "ranura 1".

Tendr?as que hacer una comprobaci?n inicial para saber si ese pokemon est? en alguna de las ranuras, y si est? que sea a esa ranura (por ejemplo "ranura3") pues que llame a la variable de esa ranura (en mi ejemplo ser?a "pokemon3vida.ps")

En principio ser?a igual de f?cil de implementar y quedar?a pr?cticamente igual de simplificado.

?Qu? variables guardas para cada uno de los Pokemon?


Un saludo,
- Herni
47
Preguntas y respuestas / Re: que es un objeto parent
Julio 13, 2010, 03:42:52 AM
Cita de: Wadk en Julio 13, 2010, 03:31:11 AM
No copi? y pegu? nada XD.

event_inherited s?lo hereda el evento en el que es llamada (si la llam?s en create, ejecuta el c?digo create del parent, etc). No hay m?s funciones que conozca, pero no creo que sean necesarias.
No creo que se puedan heredar m?s cosas, pero tampoco lo veo muy necesario...

No entiendo, si es como dices y event_inherited s?lo hereda el evento en el que es llamada (si la llamas en create, ejecuta el c?digo create del parent, etc.) ?no habr?a que hacer lo mismo en todas las colisiones para que heredase las instrucciones a hacer en cada colisi?n?


Gracias, otro saludo XD
- Herni
48
Preguntas y respuestas / Re: que es un objeto parent
Julio 13, 2010, 03:04:39 AM
Me ha venido muy bien, no sab?a nada acerca de la funci?n event_inherited()

Aunque por el nombre dir?a que lo que hereda son los eventos.

?Qu? m?s cosas se pueden heredar desde un objeto Parent? ?Hay m?s funciones similares a la de event_inherited() o esta ya hace que el segundo objeto herede todo?


Gracias, un saludo,
- Herni
49
Preguntas y respuestas / Re: que es un objeto parent
Julio 13, 2010, 02:16:04 AM
Cita de: 15689 en Julio 13, 2010, 01:37:50 AM
bueno otra de mis pregunta curiosa, que es un objeto parent y de que manera puedo utilizarlo ???

Es un objeto que puedes vincular a cualquier otro, de forma que el segundo coger? las propiedades del primero.

Con este ejemplo lo ver?s m?s claro:

* Imagina que eres un friki acojonante y quieres que tu juego tenga 300 tipos de monstruos
* Ahora a?ade que has puesto 200 tipos de armas cada una con su tipo de bala.

Hasta ah? el ejemplo, ahora imagina que para cada monstruo tienes que crear en sus eventos un total de 200 colisiones (una por cada tipo de bala), con eso tendr?as que crear la friolera de 300*200 = 60000 eventos de colisiones XD

Pues en lugar de hacer eso para cada monstruo (objMonstruo1, objMonstruo2, objMonstruo3... objMonstruo300) creas un objeto llamado ObjEnemigo en el que declaras los 200 tipos de colisiones, m?s todo lo que sea com?n a los enemigos, como por ejemplo qu? pasa si se caen por un agujero.

Luego a cada uno de tus monstruos les dices que tomen como objeto Parent el objEnemigo, ahora cada uno de tus monstruos tendr? inclu?dos en sus eventos todas las colisiones posibles.


Postdata: No seas tan friki, menos monstruos, menos armas... bahh es co?a :)


Un saludo,
- Herni
50
Cita de: Killer en Julio 12, 2010, 08:35:39 AM
Ten en cuenta que no basta con aumentar la velocidad de la room para hacer los movimientos de los sprites m?s suaves, tambi?n debe modificarse el sprite, agregar los frames "intermedios" a los ya existentes para que la animaci?n sea realmente m?s suave y no solo m?s r?pida.

La manera en que se usa el sleep en el c?digo es para que la animaci?n se vea igual a como se ver?a fuera del bucle, si quieres que la animaci?n sea m?s suave la debes mejorar a medida que aumentas la room_speed.

En ese caso estoy de acuerdo, pero yo al responder me basaba en los sprites ya existentes de Mario y que mucha gente reutiliza, si se los hace ?l (o se los hace alguien) y puede meter m?s frames al sprite ser?a cojonudo XD


Un saludo,
- Herni
51
Cita de: Hackware en Julio 12, 2010, 06:46:01 AM
Que va... el m?todo de Killer es mejor por la sencilla raz?n de que 30 frames (room_speed est?ndar) no siempre son iguales a 1000 milisegundos (1 segundo). La f?rmula de Killer corrige eso, de modo que si la room_speed es de 60 frames (el doble a lo usual) la animaci?n s?lo deber? durar 500 milisegundos (la mitad del tiempo), es decir ?se ajusta solita! XD

Por cierto, jam?s se me hubiera ocurrido hacerlo as?. Killer nunca deja de fascinarme con sus respuestas tan claras y acertadas.

Lo siento debo de ser alto tonto, pero sigo sin entenderlo :-[

Pongamos un ejemplo un tanto raro, partiendo de que los creadores originales del Mario hubiesen utilizado GameMaker y una room_speed de 30 steps por segundo.
Ahora utilizamos la funci?n sleep que dice killer => Sleep(1000/room_speed) => Sleep(1000/30) => Sleep(33,333)

Si el sprite de transformar a Mario de normal (no peque?o) a fuego, tiene 5 frames, tardar? 33 milisegundos en avanzar al siguiente frame del sprite, lo que nos da un tiempo total de transformaci?n de 33,333*5 = 166 milisegundos.

Ahora supongamos que los del Mario deciden hacer que los movimientos sean m?s suaves incrementando la room_speed a 60 steps por segundo,
Utilizamos de nuevo la funci?n sleep que dice killer => Sleep(1000/room_speed) => Sleep(1000/60) => Sleep(16,666)

Como nuestro sprite de transformaci?n tiene 5 frames, a un ritmo de 16 milisegundos entre frames del sprite, nos da un tiempo total de transformaci?n 16,666*5 = 83 milisegundos.


Vamos, que si deciden cambiar la velocidad de la room adaptando la velocidad de movimiento de los objetos a la nueva room_speed, los objetos se mover?an la misma distancia en el mismo tiempo pero de una manera m?s suave, pero la transformaci?n en lugar de tardar 166 milisegundos tardar?a la mitad, 83 milisegundos.


Otro suponer que, de alg?n modo, nos dieran la posibilidad de elegir la room_speed (en concepto de calidad, y siempre que los movimientos de los objetos est?n como digo bien adaptados a la room_speed) y tengo un equipo de la leche y pongo room_speed a 120, las transformaci?n de Mario ser?an de Sleep(1000/120) => Sleep(8,333), as? que Mario tardar?a en convertirse 41 milisegundos, vamos que ni lo apreciar?a, ver?a pr?cticamente un cambio instant?neo.


?Por eso pregunto si no ser?a m?s l?gico directamente poner Sleep(30), por ejemplo, y as? independientemente de la room_speed la transformaci?n de Mario siempre durar?a lo mismo?


Puede que est? equivocado, muy probable, pero por c?mo funciona la funci?n Sleep no lo veo l?gico :-\


Por favor s?quenme de dudas.


Muchas gracias a tod@s, un saludo,
- Herni
52
Cita de: Killer en Julio 12, 2010, 03:10:40 AM
Cambia al sprite al de la animaci?n, usa un bucle que termine cuando se completa la animaci?n, en su interior redibuja la pantalla, coloca una peque?a pausa y luego aumenta la posici?n de la animaci?n.


sprite_index = spr_AniMario;
image_index = 0;
while (image_index < image_number){
screen_redraw();
sleep(1000/room_speed);
image_index += 1;
}


No est? nada mal, creo que no quedar?a 100% inm?vil los objetos, pero s? pr?cticamente al 99'9%, ser?a practicamente inapreciable.

Lo que no s? es por qu? usas el sleep como (1000/room_speed), ?no ser?a m?s sencillo dar el tiempo directamente en plan sleed(25)? Lo digo pensando en los posibles valores que puede tener la speed de una room.

Vamos... si no me equivoco sleep pide un par?metro que son el n?mero de milisegundos, entonces dependiendo de los posibles valores de room_speed:
room_speed = 15; el sleep ser?a de 66 milisegundos.
room_speed = 30; el sleep ser?a de 33 milisegundos.
room_speed = 45; el sleep ser?a de 22 milisegundos.
room_speed = 60; el sleep ser?a de 16 milisegundos.

Y as? a menos milisegundos si aumenta la room_speed, por eso digo lo de poner los milisegundos directamente, no s?... es s?lo una alternativa.


Un saludo,
- Herni
53
Cita de: Genesis en Julio 11, 2010, 07:43:43 PM
Les explico lo k el trata de hacer...
lo k kiere es k ningun objeto del juego se mueva, ni mario, solo k mario se este convirtiendo(con el sprite  k este animado) y los demas objetos paren sus subimagenes y sus velocidad verticales o horizontales, ya, entienden?

S?, s?, es lo que he puesto yo en mi ?ltimo post.

La ?nica idea que se me ocurre es que cualquier enemigo y objeto del escenario est? asociado a un objeto parent que tenga un evento encargado de hacer las siguientes operaciones:

* Guardar en una variable la speed actual del objeto
* Poner la variable speed a 0
* Y activar una alarma de duraci?n x steps (n?mero de steps estimados de la transformaci?n) que reestablezca la speed al valor almacenado en la variable.


Un saludo,
- Herni
54
Cita de: DEADOFALL en Julio 11, 2010, 06:09:05 AM
Cita de: Herni en Julio 11, 2010, 12:48:30 AM
Cita de: DEADOFALL en Julio 11, 2010, 12:08:33 AM
Cita de: J.E.A en Julio 10, 2010, 05:04:58 PM
Como podria hacer para que Mario al convertirse se haga una especie de pausa?
Con la accion SLEEP (D&D)

Pero eso paraliza todo, no? Incluyendo al propio Mario o no?

Supongo que lo que querr? es que todo, menos mario, se quede paralizado, mientras mario se est? transformando en grande, o en fuego, o lo que sea.


Un saludo,
- Herni
?Has jugado mario bros? Por si no te has dado cuenta, se paraliza TODO, hasta el mario ;)

Pues claro que he jugado.

Mario se queda quieto en el sitio, pero su sprite sigue cambiando hasta la forma del power-up que haya cogido, mientras que el resto realmente queda 100% inm?vil, incluso los martillos que lanzan los hermanos martillo, que en s? (los martillos) no son enemigos propiamente dicho, son objetos que te pueden matar.

Y lo que quiero decir es que con el Sleep, si no me equivoco, dejas todo el juego paralizado, incluso los sprites animados, y no creo que sea lo que est? buscando, el querr? que se vaya transformando mientras el resto del mundo queda paralizado.

Si luego resulta que me equivoco y el Sleep mantiene los Sprites animados "anim?ndose" valga la redundancia... pues entonces que use el Sleep del D&D.


Un saludo,
- Herni
55
Preguntas y respuestas / Re: Problema con views!
Julio 11, 2010, 05:55:39 AM
Cita de: ledillman en Julio 11, 2010, 05:43:22 AM
Holas! ps estoy continuando con mi juego "Dawn of the Zombies" y pues quiero que al escoger la escopeta me dibuje la variable "global.ammo" que seria mas o menos los bullets de el arma, pero no pasa nada! ni siquiera sigue a la view! es mas, ni siquiera aparece la variable dibujada!.

Esto tengo en el evento Draw:

draw_set_color(c_green)
draw_set_font(Ammo)
draw_text(view_xview[0]+25,view_yview[0]+20,global.ammo)

que estara mal? porfavor ayudenme!

Est?s utilizando realmente views?
No tengo mucha idea, pero supongo que si no tienes activada la view[0], no puede calcular la posici?n de una view que no existe.

Yo probar?a con:
draw_text(view_xview+25,view_yview+20,global.ammo)

Incluso de primeras probar?a directamente posiciones "no relativas" para ver si al principio de la room te lo pinta:
draw_text(25,20,global.ammo)


Un saludo,
- Herni
56
Cita de: DEADOFALL en Julio 11, 2010, 12:08:33 AM
Cita de: J.E.A en Julio 10, 2010, 05:04:58 PM
Como podria hacer para que Mario al convertirse se haga una especie de pausa?
Con la accion SLEEP (D&D)

Pero eso paraliza todo, no? Incluyendo al propio Mario o no?

Supongo que lo que querr? es que todo, menos mario, se quede paralizado, mientras mario se est? transformando en grande, o en fuego, o lo que sea.


Un saludo,
- Herni
57
Cita de: J.E.A en Julio 09, 2010, 07:38:51 PM
Gracias pero podrias explicarme como tendria que ponerlo? porque si le creo la variable hspeed = -5 sobre la variable hspeed = -1 empieza rapido y baja la velocidad cuando choca con las paredes, me sale cualquier cosa. Algun tuto o algo para guiarme?

Puedes ponerle a tu bicho una variable llamada aplastado=0, inicialmente ser? igual a 0, lo que es lo mismo que "false", vamos "no aplastado".

Cuando lo aplasten le dices que la variable aplastado=1, lo mismo que "true", lo que viene a ser que el pobre bicho fue "aplastado".

Luego para estimar la velocidad seg?n si est? cabreado o no le pones:

if (aplastado == 0)  // Si no ha sido aplastado
{
  if (la forma que tengas de saber que iba a la izquierda)  // Si el bicho iba hacia la izquierda
  {
    hspeed = -1;
  }
  else if (la forma que tengas de saber que iba a la derecha)  // Si el bicho iba hacia la derecha
  {
    hspeed = 1;
  }
}
else if (aplastado == 1)  // Si ha sido aplastado
{
  if (la forma que tengas de saber que iba a la izquierda)  // Si el bicho iba hacia la izquierda
  {
    hspeed = -5;
  }
  else if (la forma que tengas de saber que iba a la derecha)  // Si el bicho iba hacia la derecha
  {
    hspeed = 5;
  }
}



Un saludo,
- Herni
58
Cita de: Texic en Julio 09, 2010, 05:38:05 PM
Es interesante la idea de darle a elegir al jugador, ahi los limitantes podr?an ser 10 y 120 como extremos. 10 por si el juego le anda mal debido a una mala pc y 120 si tiene una pc muy buena y quiere aprovechar un monitor con muchos hz

Ser?a casi como dar a elegir la calidad gr?fica.

A la que pueda probarlo en el GameMaker har? una prueba a 120 steps por segundo por probar a ver qu? tal tira, aunque por poner esa opci?n no creo que pase nada, el que quiera que la active, al igual que cuando coges un juego de primeras lo pones a tope de gr?ficos para luego ir quitando pijaditas en plan "sombras del agua" y cosas as?.


Una duda, si pongo 120 steps por segundo a la room, y acorde a mi f?rmula de velocidad (5*30/velocidadroom) me saldr?an 1,25 p?xeles por step (5*30/120), lo que ser?a superflu?do, pero c?mo gestiona el GameMaker ese 0,25 p?xeles de exceso?

Supongo que cada 4 p?xeles me mover? el exceso de 1 (0,25*4), pero si alguien lo sabe a ciencia cierta ser?a perfecto :)


Gracias a todos, Un saludo,
- Herni
59
Preguntas y respuestas / Re: Problema con gm 8
Julio 09, 2010, 07:35:58 PM
Cita de: MatuX en Julio 09, 2010, 05:43:45 PM
una cosa mas vos sabes donde puedo descargar el  :GM8: con tiempo ilimitado o ea free por que yo me descargue uno que es free y ahora me pone que se termino el tiempo de prueva

No s?... yo me lo baj? de la web oficial y no me ha saltado ning?n aviso raro.

Este es el link donde yo me lo baj?:
http://www.yoyogames.com/gamemaker/download


Un saludo,
- Herni
60
Cita de: J-Dek en Julio 09, 2010, 04:09:36 PM
?C?mo podr?a indicarse dibujandose como texto?

Puedes llevar una variable con el tiempo y luego dibujarla con la funci?n draw_text.

draw_text(posicionX, posicionY, varTiempo)

Tambi?n puedes personalizar el color del texto, si antes de la funci?n "draw_text" utilizas la funci?n "draw_set_color".


Un saludo,
- Herni