Mayo 10, 2011, 01:32:34 PM Ultima modificación: Mayo 12, 2011, 11:28:52 PM por kuadmair
Bueno como algunos sabr?n, yo soy un nubatazo en esto asi que como es l?gico me vereis por aqu? preguntanto amenudo (mejor para los admins, m?s visitas xd)

y bueno.. hoy tengo un par de problemas, uno que pregunt? en otro post pero como no venia a cuento en ese, pues simplemente pasaron jeje aber si me pueden ayudar porque sin eso no puedo continuar mi juego...

Bueno el caso es que, quiero hacer enemigos con su propia vida... yo como soy algo retra xd pues se me ocurri? la super genial idea de meterle al enemigo entidades como set health (que listo soy xd)... y luego al probarlo fue cuando me di cuenta realmente del EPIC FAIL que hice... digamos que le met?a tres balazos al enemigo y me mor?a yo xD asi me di cuenta de para qu? servia exactamente esas entidades (acciones) xD... luego busque info, y me salieron tutos usando condiciones y tal, declarando una variable "vida" dandole un entero de lo que quer?a (ej: 3) y luego a las colisiones de las balas con el enemigo meterle que vida=vida-1 (esto fue un invento uno ya que el codigo me es familiar xd) y luego le meti un if que dijera que si vida es igual a 0 {pues que desaparece} xD pero testeo el juego y me sale un error en la declaracion de la variable, no se muy bien pero he hasta en otras cosas seguito tutoriales al pie de la letra viendo en videos que les salia bien una cosa donde usaba variables o algun codigo y tal, y a mi me da siempre el mismo error... influye en eso que mi GM sea lite? (en el error no dice nada de que necesite PRO, pone solo fatal error tal tal y me da la linea donde el codigo o accion)... el caso es... c?mo le meto vida a un enemigo y luego como se la quito a balazos (ya se crear los balazos trankis no os esforceis m?s de lo necesario xd)

y mi segundo problema es...
en otro juego chustero que estoy haciendo de plataformas, el personaje va recolectando moneditas que le suman +1 al score, hasta ahi todo bien.. luego INTENTO hacer que cuando tenga X puntos en el score... cambie a la siguiente room... el caso es.. tengo todas las rooms hechas con sus respectivos objects (TODOS), tengo el sistema de score a punto, pero para hacer lo que quiero probe hacer esto y me da error en el next room:

-prob? tanto en la moneda como en el personaje, tanto en create como en steps... le meti las entidades de: If score is equal to 10, y debajo: Go to next room

-testeo y simplemente no hace nada... bueno pues probe otra manera....

If score is larger than 9
Go to next room


y me salta el error siguiente:

___________________________________________
FATAL ERROR in
action number 8
of  Step Event
for object o_pl1:

Moving to next room after the last room.


ayudenme si pueden, a ser posible... usando las acciones que ya hay (en lite, logicamente xd) pk no creo que sea algo tan dificil de hacer :S y asi evitar tanto codigo, que yo soy solamente un iniciado y si empiezo aprendiendo directamente con codegueo... prefiero aprender primero las acciones que no son codigo :)

EDITO: bueno pero eso no significa que rechace codegueo jeje solo quiero seguir mi juego para terminar y sacar una beta T_T





Muchas gracias al que conteste jeje :-[
Mis juegos y mini-juegos completos:
[Mini-Juego] Apple vs Banana

#1 Mayo 10, 2011, 03:58:57 PM Ultima modificación: Mayo 10, 2011, 04:00:44 PM por Tyranus
1. El problema de la variable vida:
Te dice eso porque en ningun momento le asignaste un valor a la variable vida, y esa variable no existe para ese objeto. Lo que tenes que hacer es poner en el evento create:

[gml]vida = 100;[/gml]

Y en lugar de usar If vida==0, usa If vida<=0, porque a veces puede darte negativo.

2. El problema con el room.

El objeto que dice
"if score is larger than 9
Go to next room"

?Lo tenes en todas las rooms igual no? Lo que esta pasando es que estas en el nivel 1, haces 10 puntos, pasas al nivel 2 (todav?a tenes 10 puntos) y como ve que tenes nuevamente mas que 9 pasa al siguiente nivel, hasta que se queda sin niveles.

Lo que podes hacer son 2 cosas:
"if score is larger than 9
      set score 0
      Go to next room
end if"

Con lo cual el score se pone a 0 al pasar de pantalla, y fin del problema.

Sino, si queres conservar el puntaje, lo que tenes que hacer es asignar un valor distinto como objetivo para cada nivel. Osea en el nivel 1 tenes que hacer que el objetivo sean 10 o mas puntos, en el nivel 2 tenes que hacer 40 o m?s puntos, etc....

Eso lo podes hacer de muchas formas, la m?s f?cil de hacer si reci?n empezas es crear un objeto por cada room que haga ese chequeo.
Ose el objeto obj_chequearNivel1, obj_chequearNivel 2, donde cambias el c?digo en cada uno con el puntaje que queres que se supere.

Otra forma m?s elegante de hacerlo es tener un solo objeto y poner una pieza de c?digo en el evento create y poner:
[gml]
puntajeASuperar = 0;//el puntaje a superar en el nivel
switch (room) {// seg?n que nivel este
    case rm_nivel1:// si esta en el nivel llamado rm_nivel1
        puntajeASuperar = 10; // el puntaje a superar es 10
    break;
    case rm_nivel2:// si esta en el nivel llamado rm_nive2
        puntajeASuperar = 40;// el puntaje a superar es 40
    break;
    case rm_nivel3://si esta en el nivel llamado rm_nivel3
        puntajeASuperar = 60;// el puntaje a superar es 60
    break;
}
[/gml]

Y despues en el evento step de ese objeto
[gml]
if (score>=puntajeASuperar) {// si superaste el puntaje
    if (room_exists(room_next(room))) {// y hay un siguiente nivel.
         room_goto_next(); // pasar al siguiente nivel;
    } else {// Sino hay m?s niveles quiere decir que terminaste el juego.
         // Si queres hacer que termine el juego y muestre un mensaje pone
         show_message("Fin del juego! blablabla");// mostrar mensaje
         game_end(); // terminar el juego.
         // o sino podes hacer que se reinicie el juego
         game_restart();
    }
}
[/gml]

NO te olvide de poner ese objeto en todas las room que sean niveles del juego.

Saludos.

P.d: Ahora que me acuerdo, ten?s que hacer una pregunta por cada tema si no est?n relacionadas, creo que a mi me van a retar por contestar, pero ya que escribi esto lo voy a mandar :P

#2 Mayo 10, 2011, 04:08:41 PM Ultima modificación: Mayo 10, 2011, 04:17:40 PM por kuadmair
no me sale lode la vida T_T ya con el codigo me lio :S

y lo de la pregunta tuya de las room, en el mismo lugar donde pongo go to next room... ANTES pongo set score 0 eso lo pense..

EDITO: he seguido el paso simple en lo de las rooms,, y tema solucionado ^^ graciasss ahora solo keda lo de la vida jeje PD: pero juraria que asi es como lo hice antes en lo de la room :S no se, se me escaparia algun detalle....
Mis juegos y mini-juegos completos:
[Mini-Juego] Apple vs Banana

Capaz que tenias marcado el "relative"( ue lo que hace es sumarle el valor que tenas a la variable, en este caso 0, y siempre se segu?a cumpliendo)

Con lo de la vida:
Vos tenes el objeto, por ejemplo, obj_enemigo

En el evento create del obj_enemigo pones
Set variable vida = 100;

Y en el lugar donde pusiste vida = vida -1, en lugar de poner "if vida equal to 0.", poner "if vida smaller than 0".

Tambi?n f?jate de haber escrito de la misma manera vida las dos veces, porque las may?sculas importan.

uf... ostia no me empano de nada xDD

haber paso a paso plis ke soy un inepto xD


empezando de nuevo, pk ya no se ni lo que hago, hice y dejo de hacer :S
en el obj_enemigo, en create, he creado la var vida con el value a 0 y el relative NO lo marco.
luego, un if (set variable, verdad?) y puse la variable vida, value 0 y lo dej? en equal to (que supongo que significa igual a...) asi ke me queda algo asi..

-Set variable vida to 3
-If vida is equal to 0

(esto con acciones, nada de codigo.. ahora supongo que dentro de ese if iran las acciones que quiero que haga al morir, lo meteria entre bloques supongo (corrigeme si no) luego... aun no me he enterado de como la bala al colisionar con el enemigo le reste -1 a su vida para asi matar al enemigo de 10 balazos...

Disculpa por ser tan tontuko jeje pero necesito cosas asi paso a paso =(
Mis juegos y mini-juegos completos:
[Mini-Juego] Apple vs Banana

YA NADA, encontre la soluci?n, pueden cerrar el tema ^^ mi fallo en las variables es que ten?a que ponerlas como global (ej: global.variable  para el que no lo sepa como yo no sab?a xD)


cieeren ^^
Mis juegos y mini-juegos completos:
[Mini-Juego] Apple vs Banana