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

91
Preguntas y respuestas / Efectos de boton
Marzo 21, 2015, 04:19:10 PM
quiero que cuando el mouse entre al boton se achique y si lo clickeo se achique mas y cuando saque el mouse de allí se ponga como estaba  ;D
92
quiero hacer que mi player se deslize pero no logro hacerlo, he hecho esto:

//Left, Right and Slide movements.
if(skey && rkey && slide == false || skey && lkey && slide == false)
{
    slide = true;
}
if(slide == true)
{
    hsp = sign(hsp) * slidespeed;
    alarm[0] = 5;
    sprite_index = spr_player_slide;
}
if(rkey && slide == false)
{
    hsp = movespeed;
    image_xscale = 1;
}
if(rkey && place_meeting(x,y+1,oSolid) && slide == false)
{
    sprite_index = sPlayer_run;
    image_speed = .2
} else if(!place_meeting(x,y+1,oSolid))
{
    sprite_index = sPlayer_Jump;
} else if(!rkey && !lkey && place_meeting(x,y+1,oSolid)){
    sprite_index=sPlayer_idle
}
if(lkey && slide == false)
{
    hsp = -movespeed;
    image_xscale = -1;
}
if(lkey && place_meeting(x,y+1,oSolid) && slide == false)
{
    sprite_index = sPlayer_run;
    image_speed = .2
} else if(!place_meeting(x,y+1,oSolid))
{
    sprite_index = sPlayer_Jump;
} else if(!rkey && !lkey && place_meeting(x,y+1,oSolid)){
    sprite_index=sPlayer_idle
}
if(!rkey && !lkey && slide == false || rkey && lkey && slide == false)
{
    hsp= 0;
}


todo sirve bien, hasta que llega el momento donde ya el alarm toca darle slide a falso pero sigue moviendose hacia un lado y cuando aprietas una tecla como ASDW aunque este en falso daña la animacion de slide y quiero arreglar esas dos cosas y ya no encuentro mas como resolverlo

gracias de antemano.


EDITO:

ahora el codigo lo intente asi y es igual.

if(skey && rkey && sprite_index != spr_player_slide || skey && lkey && sprite_index != spr_player_slide)
{
    slide = true;
}
if(slide == true)
{
    hsp = sign(hsp) * slidespeed;
    alarm[0] = 5;
    sprite_index = spr_player_slide;
}
if(rkey && sprite_index != spr_player_slide)
{
    hsp = movespeed;
    image_xscale = 1;
}
if(rkey && place_meeting(x,y+1,oSolid) && sprite_index != spr_player_slide)
{
    sprite_index = sPlayer_run;
    image_speed = .2
} else if(!place_meeting(x,y+1,oSolid))
{
    sprite_index = sPlayer_Jump;
} else if(!rkey && !lkey && place_meeting(x,y+1,oSolid)){
    sprite_index=sPlayer_idle
}
if(lkey && sprite_index != spr_player_slide)
{
    hsp = -movespeed;
    image_xscale = -1;
}
if(lkey && place_meeting(x,y+1,oSolid) && sprite_index != spr_player_slide)
{
    sprite_index = sPlayer_run;
    image_speed = .2
} else if(!place_meeting(x,y+1,oSolid))
{
    sprite_index = sPlayer_Jump;
} else if(!rkey && !lkey && place_meeting(x,y+1,oSolid)){
    sprite_index=sPlayer_idle
}
if(!rkey && !lkey && slide == false || rkey && lkey && slide == false)
{
    hsp= 0;
}
93
Preguntas y respuestas / Re:sobre el if y las room
Marzo 20, 2015, 10:10:17 PM
si se puede es con

if(room == room_play) draw_text(x,y,"hola")

94
Cita de: 3dgeminis en Marzo 16, 2015, 05:49:29 AM
GMS ya no tiene las funciones de para crear transiciones asi que la tendras que hacer tu mismo. Que tipo de transicion queres hacer ?

cual sea, las que yo quiero hacer principalmene es una que se ponga pixelada y cambie de room y se despixele y otra de que se ponga negra la pantalla y despues denuevo se aclarece pero en la otra room, pero me gustaria hacer cual sea.
95
Cita de: jaimitoes en Marzo 18, 2015, 05:31:52 AM
Te aseguro que hay una manera mas chula de hacer colision perfecta...

Move contact solid no tiene misterio....

Moveras un objeto hacia otro  objeto marcado como "solido" en el editor hasta hacer colision. El segundo argumento es la distancia maxima en pixeles que se va a mover, en el ejemplo que tienes cuando hace contacto hacia la derecha, le restara en sentido contrario su velocidad actual para que retorne al borde de la pared...

osea que lo que hace es que cuando la velocidad horizontal o vertical sea mayor o menor a una y colisione con algo que este a su lado lo que hara es revertir su velocidad?
96
tambien quiero entender el script :c
97
lei esto en el glosario

Citarmove_contact_solid(dir,maxdist) Mover la instancia en la dirección dir hasta que haya contacto con un objeto sólido. Si no hay collision en la posición actual, la instancia es colocada justo antes de donde ocurre una colisión. Si ya hay una colisión en la posición actual, la instancia no se mueve. Puedes especificar la distancia máxima a mover la instancia maxdist (emplea un número negativo para indicar distancia arbitraria).

aca hay un script de colision top down perfecta pero para entenderlo necesito saber que es lo que pregunto, creo saber pero quiero asegurarme.

{
    var key_left = keyboard_check(vk_left);
    var key_right = keyboard_check(vk_right);
    var key_down = keyboard_check(vk_down);
    var key_up = keyboard_check(vk_up);
    ////////////////////////////////////////
    if(global.gamepause == false){
    //Movimientos y animaciones
        if(key_left )
        {
            hspeed = -5;
        } else if(key_right)
        {
            hspeed = 5
        } else hspeed = 0;
       
        if(key_up)
        {
            vspeed = -5;
        } else if(key_down)
        {
            vspeed = 5;
        } else vspeed = 0;
       
        if hspeed!=0
        if !place_free(x+hspeed,y)
        {
            if hspeed>0 move_contact_solid(0,hspeed)
            if hspeed<0 move_contact_solid(180,-hspeed)
            hspeed=0
        }

        if vspeed!=0
        if !place_free(x+hspeed,y+vspeed)
        {
            if vspeed>0 move_contact_solid(270,vspeed)
            if vspeed<0 move_contact_solid(90,-vspeed)
            vspeed=0
        }

    }
}
98
hola no se tanto de GML pero pregunto igual asi aprendo  :D como hago transiciones, utilizaria sleep pero ya no funciona 7_7
99
yo se para que sirve cada una pero me podrian ayudar para abrir mas mi mente  ;D
100
Cita de: vitail en Marzo 07, 2015, 02:32:37 AM
Hola quiero hacer lo que esta en el titulo ya que quiero hacer mi plataformero y que tenga un bloque que lo impulse hacia un lado, asi serviria para llegar a diferentes lugares o que si toca ese bloque lo mande hacia las trampas, etc...

CREATE de mi plataformero
vsp = 0;
hsp = 0;
movespeed = 7;
jumpspeed = 12;
impspeed = 15;
grav = 0.5


STEP de mi plataformero
///Player Input.
var key_right = keyboard_check(vk_right);
var key_left = keyboard_check(vk_left);
var key_jump = keyboard_check(vk_up);
/////////////////////////////////////////
if(place_meeting(x,y+1,obj_solid))
{
    vsp = 0;
    if(key_jump)
    {
        vsp = -jumpspeed;
    }
}
else
{
    if(vsp < 10)
    {
        vsp += grav;
    }
}

if(key_right)
{
    hsp = movespeed;
}
if(key_left)
{
    hsp = -movespeed;
}

if(!key_right && !key_left || key_right && key_left)
{
    hsp = 0;
}

if(place_meeting(x+hsp,y,obj_solid))
{
    while(!place_meeting(x+sign(hsp),y,obj_solid))
    {
        x += sign(hsp);
    }
    hsp = 0;
}
x += hsp;
if(place_meeting(x,y+vsp,obj_solid))
{
    while(!place_meeting(x,y+sign(vsp),obj_solid))
    {
        y += sign(vsp);
    }
    vsp = 0;
}
y += vsp;


intente con

if(place_meeting(x,y,obj_burst_right)){
   hsp = impspeed; // el burst de arriba y abajo son faciles pero no encuentro la forma de hacerlo con este
}

101
Hola quiero hacer lo que esta en el titulo ya que quiero hacer mi plataformero y que tenga un bloque que lo impulse hacia un lado, asi serviria para llegar a diferentes lugares o que si toca ese bloque lo mande hacia las trampas, etc...

CREATE de mi plataformero
vsp = 0;
hsp = 0;
movespeed = 7;
jumpspeed = 12;
impspeed = 15;
grav = 0.5


STEP de mi plataformero
///Player Input.
var key_right = keyboard_check(vk_right);
var key_left = keyboard_check(vk_left);
var key_jump = keyboard_check(vk_up);
/////////////////////////////////////////
if(place_meeting(x,y+1,obj_solid))
{
    vsp = 0;
    if(key_jump)
    {
        vsp = -jumpspeed;
    }
}
else
{
    if(vsp < 10)
    {
        vsp += grav;
    }
}

if(key_right)
{
    hsp = movespeed;
}
if(key_left)
{
    hsp = -movespeed;
}

if(!key_right && !key_left || key_right && key_left)
{
    hsp = 0;
}

if(place_meeting(x+hsp,y,obj_solid))
{
    while(!place_meeting(x+sign(hsp),y,obj_solid))
    {
        x += sign(hsp);
    }
    hsp = 0;
}
x += hsp;
if(place_meeting(x,y+vsp,obj_solid))
{
    while(!place_meeting(x,y+sign(vsp),obj_solid))
    {
        y += sign(vsp);
    }
    vsp = 0;
}
y += vsp;


intente con

if(place_meeting(x,y,obj_burst_right)){
   hsp = impspeed;
}
102
Quiero de que mientras el personaje salte, mueva el angulo de la imagen, como en the impossible game o geometry dash, pero quiero que siempre caiga bien, no importa si no hace la vuelta completa, todo vale :p

codigo de plataformas
///Player Input.
var key_right = keyboard_check(vk_right);
var key_left = keyboard_check(vk_left);
var key_jump = keyboard_check(vk_up);
/////////////////////////////////////////
if(place_meeting(x,y+1,obj_solid))
{
    vsp = 0;
    if(key_jump)
    {
        vsp = -jumpspeed;
    }
}
else
{
    if(vsp < 10)
    {
        vsp += grav;
    }
}

if(key_right)
{
    hsp = movespeed;
}
if(key_left)
{
    hsp = -movespeed;
}

if(!key_right && !key_left || key_right && key_left)
{
    hsp = 0;
}

if(place_meeting(x+hsp,y,obj_solid))
{
    while(!place_meeting(x+sign(hsp),y,obj_solid))
    {
        x += sign(hsp);
    }
    hsp = 0;
}
x += hsp;
if(place_meeting(x,y+vsp,obj_solid))
{
    while(!place_meeting(x,y+sign(vsp),obj_solid))
    {
        y += sign(vsp);
    }
    vsp = 0;
}
y += vsp;


si ponen cosas raritas enseñenme asi aprendo :v
103
quiero hacer un juego pero necesito hacer un movimiento que no se como hacer para hacer esto:

Para esquivar las plataformas tienes que moverte a los lados, si te mueves a los lados cuando pegues con la pared horizontalmente, porque si pegas verticalmente te mueres, devuelve la velocidad pero menor, todo bien todo eso lo se hacer pero quiero de que cuando la coordenada X sea la inicial se quede en hspeed = 0 pero que pueda moverse, aca esto es lo que tengo hasta ahora.

if(keyboard_check_pressed(vk_left) && moverse == true)
{
    hspeed = -spd;
    moverse = false
}
if(keyboard_check_pressed(vk_right) && moverse == true)
{
    hspeed = spd;
    moverse = false
}

if(place_meeting(x-4,y,obj_wall))
{
    hspeed = returnspd;
}
if(place_meeting(x+4,y,obj_wall))
{
    hspeed = -returnspd;
}


Solo me falta lo que dije de que si queda en su coordenada inicial que es como en el medio que alli debe parar y le das a un boton denuevo para ir a un lado y esquivarlo, ayudenme pls.
104
Cita de: Sockman en Marzo 04, 2015, 12:09:26 PM
Por aquí otro al que le costó comprenderlo también.  :'( Y los ejemplos que suele poner la gente no suelen ayudar, porque te meten las misma variable "i" en las acciones y puede confundir.

Piénsalo de esta forma:
Si tenemos for (variable=0; variable<10; variable+=1)'
Significa que cuando la variable sea 0, se le va a sumar 1 mientras sea menor que 10.

Pero tienes que tener en cuenta que todo esto se hace en un solo step. Osea, que en un sólo step, la variable habrá tenido los 10 valores (0,1,2...9), habrá llegado al 10 y habrá salido del bucle.

ah asi se le entiende bien :D
105
Cita de: 3dgeminis en Marzo 04, 2015, 03:34:27 AM
Podes crear una variable que te sirva de interruptor, por ejemplo activo=false y despues de 1 segundo o el tiempo (con una alarma) que quieras pase a activo=true
Luego en el codigo que tenes
if(x == previousx){hspeed = 0}   lo cambias a   if x == previousx and activo=true {hspeed = 0}

hice esto, que le cambio ahora, tiene un alarm puesto en 10 ya que hay un else que pone de que si no es igual a previousx que sea falso y si es falso hspeed es igual a cero, creo que hice una locura  XD

if(x == previousx && moverse == true)
{
    if(keyboard_check_pressed(vk_right))
    {
        hspeed = spd;
        moverse = false;
    }

    if(keyboard_check_pressed(vk_left))
    {
        hspeed = -spd;
        moverse = false;
    }
    alarm[0] = 10;
} else if (x != previousx && moverse == true) {
    moverse = false;
}

if(place_meeting(x-4,y,obj_wall))
{
    hspeed = returnspd;
}
if(place_meeting(x+4,y,obj_wall))
{
    hspeed = -returnspd;
}

if(moverse == false)
{
    hspeed = 0;
}