Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: chetuu16 en Julio 29, 2015, 04:44:33 PM

Título: de valor X a valor X
Publicado por: chetuu16 en Julio 29, 2015, 04:44:33 PM
Hola, estoy haciendo un juego rapidito, i me gustaria saber como puedo hacer un if que vaya del global.puntos = 0 hasta el global.puntos = 9.

Me explico, el juego empieza en 0 puntos ( obiamente), entonces quiero que cuando llege a diez, la velocidad del juego aumente, igual que cuando llege a 20 y a 30.

El juego es muy simple, trata de pulsar unos circulos que salen en pantalla,y contra mas putnos mas deprisa salen, entonces me gustaria saber el codigo, yo tenia algo asi:


if (global.puntos <=9){
"haz algo"}

if (global.puntos <=19){
"haz algo"}


if (global.puntos <=29){
"haz algo"}


if (global.puntos <=39){
"haz algo"}


Pero el problema de este codigo, es que cuando tienes 15 por ejemplo, se aplica el primer y el segundo if.

Si alguien me ayudara le estaria agradecido!


Título: Re:de valor X a valor X
Publicado por: Yoo en Julio 29, 2015, 05:08:48 PM
Solo cambie el codigo por este:

[gml]
if (global.puntos >=30){
"haz algo"}
else
if (global.puntos >=20){
"haz algo"}
else
if (global.puntos >=10){
"haz algo"}
else
if (global.puntos >=1){
"haz algo"}
[/gml]
Título: Re:de valor X a valor X
Publicado por: jodidox en Julio 29, 2015, 05:31:40 PM
Llegue tarde  XD

PSD: Lo que dice Yoo debería de funcionar,  :D
Título: Re:de valor X a valor X
Publicado por: eams1986 en Julio 29, 2015, 05:51:38 PM
Hay alguna forma de hacerlo automaticamente  y no copiar tanto codigo ??

Que vaya en aumento la velocidad si los codigos anteriores.
imaginen que tienen un juego de 1000 puntos cuantos codigos tenes que poner  :'( :'( :'( :'( :'(

Gracias
Título: Re:de valor X a valor X
Publicado por: fasst007 en Julio 29, 2015, 06:04:10 PM
En el caso de que cada 10 puntos se ejecute la misma acción, este código sería como preguntar:
¿la cantidad de puntos es divisible por 10 y no es cero ? en caso afirmativo hacer algo.
Para que haga algo a los 10, 20, 30, 40, 50, 60, etc puntos. Si queremos poner un límite se podría poner otro "and" agregando si es menor a "x".


if (((frac(global.puntos / 10)) == 0) and (global.puntos != 0)) {
  "haz algo" }


y en este código cuando supera los 100 puntos ya no ejecuta más nada:

if (((frac(global.puntos / 10)) == 0) and (global.puntos != 0) and (global.puntos <= 100)) {
  "haz algo" }


Para saber en que decena se haya:

decena = floor(global.puntos / 10);

si decena es 0 -> va de 0..9
si decena es 1 -> va de 10..19

supongamos que en cada decena la velocidad aumente en "2", entonces:

decena = floor(global.puntos / 10);
velocidad_personaje = velocidad_inicial + (decena * 2);





Título: Re:de valor X a valor X
Publicado por: Yoo en Julio 29, 2015, 07:38:50 PM
Tambien para reducir codigo podrias poner una variable que controle la velocidad en todos lo objetos y cada diez puntos le aumentas a esta variable...
TE DEJO UN EXAMPLE A LO QUE ME REFIERO...(yo uso room_speed)
Título: Re:de valor X a valor X
Publicado por: eams1986 en Julio 30, 2015, 05:39:10 AM
el ejemplo es muy bueno ,pero usar room_speed el algo letal  :-[ :-[ :-[ :-[
Título: Re:de valor X a valor X
Publicado por: Yoo en Julio 30, 2015, 03:38:42 PM
Cita de: eams1986 en Julio 30, 2015, 05:39:10 AM
el ejemplo es muy bueno ,pero usar room_speed el algo letal  :-[ :-[ :-[ :-[

BUENO, por eso es un ejemplo...  :D  :-[  :D