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

1
Preguntas y respuestas / Re:Problema con colisiones
Enero 23, 2019, 07:09:14 PM
Cita de: NiuWeb en Enero 23, 2019, 07:05:49 PM
Puedes reemplazar !place_meeting() por place_free() para incluir a todos los sólidos.
Lo intenté y ahora falla al andar, no está ni cerca de algún solido y no se mueve, cuando muevo a la derecha se queda como si hubiera un solido y no se mueve a menos mueva de arriba abajo mientras va hacia la derecha
2
Preguntas y respuestas / Re:Problema con colisiones
Enero 23, 2019, 02:37:37 PM
Cita de: 3dgeminis en Enero 22, 2019, 04:19:10 AM
Verifica primero si hay un obstaculo en cada eje antes de mover:
[gml]
if abs(Hor) or abs(Ver)
   {   
    repeat(4)
       {
        if !place_meeting(x+Hor, y, pared) {x += dcos(angle)};
        if !place_meeting(x, y+Ver, pared) {y -= dsin(angle)};
       }
   }
[/gml]
Lo probé cambiando lo de "pared" por otro objeto y funcionó, pero necesito que sea con cualquier objeto solido, como una caja o en este caso la mascara de colisión de los NPC's, y surgió otro problema al cambiar el objeto por la mascara se vuelve a quedar trabado el personaje
3
Preguntas y respuestas / Problema con colisiones
Enero 21, 2019, 09:40:30 PM
Hola, verán hace un tiempo pedí ayuda para hacer que mi personaje se moviera con un código especifico, ahora viene algo parecido
//sprites
sprite[0] = argument0; //Derecha
sprite[1] = argument1; //Arriba-Derecha
sprite[2] = argument2; //Arriba
sprite[3] = argument3; //Arriba-Izquierda
sprite[4] = argument4; //Izquierda
sprite[5] = argument5; //Abajo-Izquierda
sprite[6] = argument6; //Abajo
sprite[7] = argument7; //Abajo-Derecha

//Acciones
var up = keyboard_check(vk_up);
var down = keyboard_check(vk_down);
var left = keyboard_check(vk_left);
var right = keyboard_check(vk_right);

//Lados
var Hor = right - left;
var Ver = down  - up;

//Angulo
var angle = point_direction(0, 0, Hor, Ver);

//¿Está activo?
if global.player = 'enabled'{
    //Cambio de animacion y movimeinto
    if abs(Hor) or abs(Ver) {
        image_speed = 0.25;
        sprite_index = sprite[ (angle/ 45) % 8 ];
        x += dcos(angle)*4;
        y -= dsin(angle)*4;
    }else{
        image_speed = 0;
        image_index = 0;
    }
}

Todo ese código está dentro de un script para usar más de un personaje (uno a la vez) sin usar más objetos, mi problema ahora es que he estado intentando combinaciones para las colisiones y nada me funciona, cuando uno funcionó resultó que el personaje se pilla desde arriba de donde colisiona.
Los pongo más en situación, he hecho pruebas para hacer diálogos, pero ahora mi problema es que el personaje debe detenerse al estar cerca de un NPC o de algún objeto con el que va a interactuar. Pero sigue atravesándolo y en la ultima prueba que hice (que después borré el código) se trababa al colisionar desde arriba.

¿Alguien puede ayudarme? Gracias de antemano.
4
Ahora si, gracias XD
5
Niu, otro problema, ahora el personaje solo se mueve hacia derecha, abajo y abajo-derecha. Cuando pulso arriba o izquierda se queda quieto :(
6
Niu lo acabo de probar, pero el personaje se va hacia la derecha solo apenas inicia, ademas que la animación que no ocurre, mira hacia el lado que va pero no hay animación de pasos
7
Al sprite del personaje le tengo una animación de caminar para cada dirección, pero no sé como usar dichas animaciones en ese código, por mas que pienso para hallar una solución no la encentro
8
Verán mi problema es este: Tengo este código de movimiento para movimientos fluidos de forma vertical, horizontal y diagonal

//Movimiento
Up = keyboard_check(vk_up);
Down = keyboard_check(vk_down);
Left = keyboard_check(vk_left);
Right = keyboard_check(vk_right);

Total_lados = Up + Down + Left + Right;

if (Total_lados > 0 && Up + Down != 2 && Left + Right != 2) {
    Angulo = degtorad((Up*(90) + Left*(180) + Down*(270) + Right*(360)*Down)/Total_lados);
    x += cos(Angulo)*4;
    y -= sin(Angulo)*4;
}


pero no sé como manipular la animación de movimiento del personaje.

Gracias de ante mano para aquellos que me puedan ayudar.