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

1
Cita de: TLT96 en Mayo 12, 2016, 09:15:24 PM
Cita de: Jucarave en Mayo 12, 2016, 08:35:10 PM
Si estas usando draw_sprite con el sprite_index y image_index del objeto (sería lo mejor que lo hicieras así) entonces puedes utilizar el evento de "animation_end" para detectar cuando termina esa animación, si por el contrario no estas usando las variables de GM (image_speed, image_index) entonces tienes que validar manualmente cuando termina la animación.


Saludos.
O mas facil, como dice lo de draw_sprite, en caso de querer hacerlo alli mismo en draw event (Y este utilizando sprite_index e image_index)


Podria utilizar:
if image_index>=image_number-1 instance_destroy(), sin necesidad de el Animation End event :3

gracias a los dos   :) , usare las variables de gm por que lo de validar manual mente se ve complicado D:
2
  me refiero a como puedo detectar cuando un sprite dibujado con draw_sprite termina, solo eso es algo simple pero no tengo idea de como hacerlo, les agradeceré mucho su ayuda  :)
3
Cita de: NiuWeb en Abril 10, 2016, 11:29:29 PM
Creo que te estás haciendo una bola de código xD
Mi modificación sería esta:
[gml]
key_left = keyboard_check(vk_left);
key_right = keyboard_check(vk_right);

if key_right {
   if hsp < 4
      hsp += 0.4;
   else
      hsp = 4;
}
else {
   if hsp > 0
      hsp -= 0.2;
}
if !place_meeting(x + hsp, y, obj_block)
    x += hsp;
[/gml]
Esto suponiendo que tienes un hsp = 0 declarado en <create>

muchas gracias  :) :) , no creí que fuera por que hice el código inesesariamente complejo :-[, despues de todo era un extraño experimento de tratar de hacer un movimiento fluido, gracias de nuevo  :)
4
Cita de: NiuWeb en Abril 10, 2016, 10:57:54 PM
quizás la variable hsp nunca es mayor a 0, pero hay otro problema: Dices que quieres que si sea mayor a 0, restarle 0.2 hasta dejarlo en 0. Pero ¿Si, por ejemplo, el valor es de 0.1? Podrías tener negativos como resultado D:

En el peor de los casos, podrías usar variables predefinidas, como hspeed y friction

gracias por responder, pero el problema parese ser otro , aunque ponga que reste 0.01 a hsp no lo hace mas de una vez aunque hsp sea 1 o 4. aqui dejo el codigo por si vez algo que yo no:
///movimiento
key_right = keyboard_check(vk_right);
key_left = -keyboard_check(vk_left);

move = key_right + key_left;

if key_right dir = 1;
if key_left dir = -1;

if (move) && (dir = 1) && (fu < 4) {fu += 0.4};

hsp = fu;

if hsp > 0 {hsp -= 0.2}

if (place_meeting(x+hsp,y,obj_block))
{

    {
        while(!place_meeting(x+sign(hsp),y,obj_block))
            {
                x += sign(hsp);
            }
        hsp = 0;
    }
}
x += hsp;
5
hola, acabo de tener un problema un poco raro y es que en el evento step trate de hacer que cada vez que la variable hsp fuera mayor que 0 a esta se le restara 0.2 hasta dejarla en cero, pero en vez de eso simplemente le resta 0.2 una sola vez :'( :'( :'(.
coloque esto pero no entiendo por que no funciona esta vez:
if hsp > 0 {hsp -= 0.2}
pero por algún motivo no funciona, les agradecería mucho si me ayudaran.
6
hola, me gustaría saber como hago un enemigo que este compuesto de barios segmentos que sigan su recorrido algo haci como larrry jr de the binding of isaac, si me ayudaran estaría muy agradecido  :-[
7
hola, bueno lo que quería preguntar es básicamente lo que dise el titulo, como usan y cuales son los usos de las lengthdir, todabia soy un poco nuevo  :-[ en estas cosas haci que si alguien me lo explicara se lo agradeseria mucho
8
hola  ;D, tengo la duda de como colocar el pixel art en un juego, me refiero que si se debe simplemente poner zoom al juego o si hay que hacer otra cosa, también me gustaría que me explicaran como funciona el tema de ajustar la resolución (se agradecería mucho que mostraran un ejemplo   :-[) , para ser mas especifico me refiero a cuales son las mejores resoluciones (para un juego de pixel art), y como hacer que el jugador escoja la resolución, si me ayudaran se los agradecería mucho  ;)
9
Cita de: WalterSit02 en Octubre 04, 2015, 08:08:22 PM
Se me ocurre algo asi.
en el evento create del objeto B puedes poner algo como
Tocado = false;

le creas un evento de colision al objeto B cuando toca el objeto A.
el codigo de colision seria algo como esto:


if Tocado = false {
other.Variable+=1;}

Tocado = true;


Espero que te sirva

el problema es que si el objeto B colisiona con otro objeto A el objeto B ya no le sumaria a la variable de este objeto A nuevo
10
Cita de: Jaume en Octubre 04, 2015, 07:42:23 PM
Hola, se me ocurren un par de cosas aunque hace poco que estoy con GM.  Puedes convertir el objeto B en un objeto C con las mismas propiedades pero sin el evento colision con A.
O puedes poner una variable en el objeto B tipo Colisionado Si/No.  Y controlar que cuando colisione si es No sume 1 y si es Si no haga nada.

No se si me explico.  Aunque por aqui hay gente que seguro te da mejores respuestas.

el problema es que existen barios objetos A y B, asi que no creo que un sistema asi funcione, pero igual gracias
11
me gustaría saber como puedo hacer que un objeto detecte una colisión pero solo una vez con ese objeto.
básicamente esto:
si el objeto A colisiona con UN objeto B la variable (variable cualquiera) += 1, esto solo pasara una ves con este objeto B, pero si colisiona con otro objeto B que no sea el anterior a la variable cualquiera se le vuelve a sumar 1.
pero si el objeto B que ya colisiono con un objeto A buelve a colisionar con otro objeto A a la variable cualquiera de este objeto A se le suma 1
espero que se entienda lo que trato de explicar, les agradecería mucho si me ayudaran.
12
me gustaría que me alguien me explicar que tengo que hacer para que una objeto "a" sepa que el objeto "b" esta mas arriba(y) que el, si alguien me lo dijera seria de mucha ayuda
13
Preguntas y respuestas / Re:problema con "random"
Septiembre 06, 2015, 04:51:24 PM
gracias pero no me fusiona
el problema en realidad pareciese ser que no importa que valor coloque en spd, siempre dará 1 :(
14
Preguntas y respuestas / [resuelto] problema con "random"
Septiembre 06, 2015, 04:18:36 AM

(el problema que que coloque "sign" donde no debia   :-[ )
hola, hace poco he tenido un problema con un enemigo y la función "random"
el movimiento del enemigo debería ser algo haci: random(6), o sea debería variar
pero por algún problema de calculo en el código el enemigo siempre se mueve a la misma velocidad
si alguien me ayudara estaría muy agradesido

aqui el codigo del enemigo

create event
[spoiler]
h = 15;
i = 2;

grav = 0.2;
hsp = 0;
vsp = 0;
jumpspeed = 7;
spd = random(6);
nspeed = choose(2,-2);
dir = 0;
move = 0;
jump = 0;

alarm
  • = 5+random(20)[/spoiler]


    step event
    [spoiler]///IA
    //saber donde esta el player
    if distance_to_object(obj_player) > 270 && place_meeting(x,y+1,obj_block){
        move = 0;
        dir = 0;
    }
    if distance_to_object(obj_player) < 200 {
        move = 1;
        if obj_player.x != x {
            if obj_player.x > x { dir = 1 };
            if obj_player.x < x { dir = -1 };
        }else{
            dir = 0;
        }
    }
    if distance_to_object(obj_player) < 32 {
        dir = 0;
    }

    if (place_meeting(x,y+1,obj_block))
    {
        vsp = jump * -jumpspeed;
    }

    if (vsp < 10) { vsp += grav;}

    hsp = obj_player.movespeed * dir

    //movimiento 1
    if move = 0 {
        if !place_meeting(x+nspeed,y,obj_block){
            x += nspeed
        }
        if place_meeting(x,y+1,obj_block) && (place_meeting(x+nspeed,y,obj_block) or (!place_meeting(x+nspeed-16,y+16,obj_block)) or (!place_meeting(x+nspeed+16,y+16,obj_block))) {
            nspeed *= -1
        }
    }
    //movimiento 2

    if move = 1 {
        if !place_meeting(x+sign(hsp),y,obj_block){
                x += sign(hsp);
            }
        hsp = 0;   
    }

    //gravedad

    if (place_meeting(x,y+vsp,obj_block))
    {
        while(!place_meeting(x,y+sign(vsp),obj_block))
        {
            y += sign(vsp);
        }
        vsp = 0;
    }
    y += vsp;
    [/spoiler]
15
Cita de: gabyT en Agosto 16, 2015, 09:21:36 PM
hola, intenta esto:
pone en el evento step del jugador lo siguiente:
supongo que tenes alguna variable que indica cuando esta colgado o no... yo voy a suponer que es así y la voy a llamar colgado.
if colgado=true && place_meeting(x-16,y,obj_red) && keyboard_check("acá va la tecla de movimiento hacia la izquierda"){
   (acá pones el código para que se mueva)
}

luego haces lo mismo para la derecha, cambiando el - por un + y cambiando la tecla de movimiento.


no me funciono  ??? , párese que el problema es que tengo un sistema de movimiento algo enredado, ¿si tuvieras un poco de tiempo libre por favor podrías bajarte el archivo y decirme que estoy haciendo mal? porfa