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

1
Buenas tardes, uso este codigo para desactivar las instancias:
instance_deactivate_region(camera_get_view_x(0), camera_get_view_y(0), camera_get_view_width(0), camera_get_view_height(0), false, true);
instance_activate_region(camera_get_view_x(0), camera_get_view_y(0), camera_get_view_width(0), camera_get_view_height(0), true);

Pero el problema es que tambien se desactiva el suelo, y al cambiar los valores ya no se borra el suelo que esta debajo,  pero no se activan paredes, ni enemigos, este codigo lo probe en game maker 8 solamente cambiando el cmaera_get_view_x, por el view_xview Y yview respectivamente funciona perfecto pero aqui no
nota:
   -La vista es 400x224
   -En camera_get_view_y y en camera_get_view_height les puse + 192 y no se desactiva el suelo pero no ocurre lo mismo en x ni width.
gracias
Edito: solo tuve que agregar un view_camera[0]:
instance_deactivate_region(camera_get_view_x(view_camera[0]), camera_get_view_y(view_camera[0]), camera_get_view_width(view_camera[0]), camera_get_view_height(view_camera[0]), false, true);
instance_activate_region(camera_get_view_x(view_camera[0]), camera_get_view_y(view_camera[0]), camera_get_view_width(view_camera[0]), camera_get_view_height(view_camera[0]), true);
2
Lo que yo haria, seria poner un condicional por ejemplo:
En el evento step
if (place_meeting(x, y + 1, obj_Wall) && vspeed >= 10)
{
      Daño = true;
}
3
Preguntas y respuestas / Problema slopes (SOLUCIONADO)
Noviembre 06, 2018, 09:21:11 PM
Buenas Tardes, he estado probando varios codigos de colisiones perfectas(y uno me gusto mas que los demas) y quise juntarlo con un codigo de slopes que me funciono con otro, pero con este solamente funciona bajando los lopes y no subiendo el codigo es este:
//Bucle para colisiones perfectas en X
repeat(abs(xvel))
{
    slope = 0;
    while(!place_free(x, y - slope) && slope <= abs(1 * xvel)) { slope += 1; }
    if (!place_free(x + sign(xvel), y - slope)) { break; }
    else
    {
        y -= slope;
    }
    x += sign(xvel);
    //Bajar slopes
    if place_free(x, y) && yvel >= 0 && !place_free(x, y + 2 + abs(xvel))
    {
        while (place_free(x, y + 1))
        {
            y += 1;
        }
    }
}

//Bucle para colisiones perfectas en Y
repeat(abs(yvel))
{
    if (!place_free(x, y + sign(yvel)))
    {
        if (yvel >= 0) { saltos = 0; }
        break;
    }
    y += sign(yvel);
}

EDITO: Ya lo solucione, modifique esta parte:
slope = 0;
while(!place_free(x + xvel, y - slope) && slope <= abs(1 * xvel / 2)) { slope += 1; }
4
Muchas gracias ya quedo!
5
Cita de: BssString en Agosto 15, 2018, 09:28:03 PM
Hola ZELDA

Yo lo haría de la siguiente manera:

CREATE EVENT
DashLeft = false //revisa si debe ejecutar el dash hacia la izquierda
DashRight = false //revisa si debe ejecutar el dash hacia la derecha


ALARM 1 EVENT
DashLeft = false //revisa si debe ejecutar el dash hacia la izquierda
DashRight = false //revisa si debe ejecutar el dash hacia la derecha


STEP EVENT
if keyboard_check_pressed(vk_left) {
if DashLeft = false { //Revisa si no hemos apretado izquierda antes
DashRight = false //Cancela el intento de dashear a la derecha
DashLeft = true //Setea la variable para ver si debe hacer el dash
alarm[1] = 15 //Setea el timer para contar el dash
}
else { /*hacer el dash a la izquierda*/ } //Si ya habíamos izquierda antes y la volvemos a apretar dentro de los 15 steps, entonces efectua el dash
}
//El mismo código para la tecla derecha
if keyboard_check_pressed(vk_right) {
if DashRight = false {
DashLeft = false
DashRight = true
alarm[1] = 15
}
else { /*hacer el dash a la derecha*/ }
}


Por lo que veo de tu código, para decirle a donde hacer el dash basta con hacer:
canDash = true
dir = <1(izquierda) o 0(derecha)>

Tu código hará el resto

Saludos
Gracias por contestar, creo que no me entendiste, mira el dash se podia hacer, el codigo de dash no tiene el problema el problema es el codigo de apretar 2 veces la tecla mi codigo tiene un problema y es el que no es preciso y no siempre lo hace.
Y el codigo que pones lo hace infinitamente mientras tenga apretada la tecla de una direccion.
Saludos
EDITO: El codigo quedo asi:
if (Left)
{
    if (DashLeft == false)
    {
        DashRight = false;
        DashLeft = true;
        alarm[1] = 15;
    }
    else
    {
        canDash = true;
    }
   
}
else if (Right)
{
    if (DashRight == false)
    {
        DashRight = true;
        DashLeft = false;
        alarm[1] = 15;
    }
    else
    {
        canDash = true;
    }
}
6
Bueno en realidad ya tengo el Dash, con el que tengo el problema es con el codigo de apretar 2 veces una direccion para poder hacer el Dash, lo que pasa es que siento que no es muy preciso es decir no siempre lo hace y no se de que forma mejorarlo el codigo es este:
Evento step
//Apretar 2 veces una direccion para hacer el dash
tiempo += 1;
if (tiempo >= 20)
{
    if (!Left || !Right)
    {
        n_vecesL = 0;
        n_vecesR = 0;
    }
    tiempo = 0;
}
if (!LeftPress) { canDash = false; }
if (!RightPress) { canDash = false; }
if (LeftPress)
{
    n_vecesL += 1;
}
if (RightPress)
{
    n_vecesR += 1;
}
if (n_vecesL == 2 || n_vecesR == 2)
{
    canDash = true;
}

//Dash
if (!place_free(x, y + 1))
{
    if (canDash)
    {
        if (dash == 0)
        {
            if (canMove == 1)
            {
                dash = 1;
                if (dir = 1 && dash = 1) { hspd = -spd * 4.2 }
                if (dir = 0 && dash = 1) { hspd = spd * 4.2 }
                canMove = 0;
                alarm[0] = 15;
            }
        }
    }
}

Alarma 0
canMove = 1;
dash = 0;
canDash = false;

Les dejo el editable para que vean el codigo completo
Nota: el room esta en 60
Saludos
7
Preguntas y respuestas / Re:Error WallJump
Agosto 09, 2018, 06:30:00 AM
Muchas gracias era algo tan simple, XD llevaba una semana rompiendome la cabeza.
Saludos
8
Preguntas y respuestas / Error WallJump (SOLUCIONADO)
Agosto 09, 2018, 04:34:14 AM
Buenos dias CGm tengo un problema con mi codigo de wall jump el problema es que al regresar al bloque en el cual se le hizo el wallJump ya no hace mas el wall jump hasta que toca el suelo ya se puede y ese puede ser un problema cuando se esta jugando  XD el codigo que estoy usando para el wallJump es:
//WallJump
if(place_free(x, y + 1))
{
    if (Jump)
    {
        if (Right and !Left and !place_free(x + 1, y) and wallJump = 1)
        {
            canMove = 0;
            alarm[0] = 12;
            wallJump = -1
            dir = 1
            vspd = -velSalto * 1.1;
        }
        if (Left and !Right and !place_free(x - 1, y) and wallJump = -1)
        {
            canMove = 0;
            alarm[0] = 12;
            wallJump = 1;
            dir = 0
            vspd = -velSalto * 1.1;
        }
    }
}
if (canMove = 0)
{
    if (dir = 0) { hspd = spd * 2.2; }
    if (dir = 1) { hspd = -spd * 2.2; }
}

//Deslizamiento paredes
if (Right && !place_free(x + 1, y) && vspd > 0)
{
    vspd = 1;
}
else if (Left && !place_free(x - 1, y) && vspd > 0)
{
    vspd = 1;
}

Les dejo una imagen gif del error y el editable. [https://gifs.com/gif/4RZ0BJ
Saludos
9
Muchas gracias ya quedo, el salto gradual ya lo solucione, y si queda mejor a la velocidad a 30, en el codigo del salto lo modifique para que se pudiera hacer el doble salto quedando asi:
//Salto
if (!place_free(x, y + 1))
{
    canMove = 1
    if (saltos = 0)
    {
        if (Jump)
        {
            vspd = -velSalto;
            if (dir = 0)
            {
                wallJump = 1
            }
            else if (dir = 1)
            {
                wallJump = -1
            }
        }
    }
}
//Segundo salto
else
{
    if (saltos = 0) { saltos = 1; }
    if (saltos = 1)
    {
        if (Jump)
        {
            vspd = -velSalto;
            if (dir = 0)
            {
                wallJump = 1
            }
            else if (dir = 1)
            {
                wallJump = -1
            }
            saltos = 2;
        }
    }
}

Muchas gracias!
10
Cita de: Goganpis en Mayo 27, 2018, 11:09:16 PM
bueno tendria que checar todo tu codigo pero ya eso es tu decision por cierto la variable walljump no la uses ya que al tocar suelo a que pared vas a ir, pero si la quieres usar sincronizalo de esta forma antes de ese codigo que tienes
Gracias por contestar, claro puedes revisar el codigo, estoy dispuesto a recibir criticas constructivas y destructivas, el salto gradual ya quedo gracias ;), pero el wallJump no me sale, la velocidad del room esta en 60 si quieres cambiarlo para debuggear
11
Buenas dias/noches. bueno es que estoy haciendo un engine, no un juego de plataformas, pero me he atorado con el wallJump y el salto gradual, en mi engine uso unos codigos de colisiones perfectas tanto el movimiento como lo gravedad, pero el wallJump y el salto gradual simplemente no me salen.
El codigo que uso para el wallJump es:
//WallJump
if (Jump)
{
    if (Right and !Left and !place_free(x + 1, y) and wallJump = 1)
    {
        canMove = 0;
        alarm[0] = 10;
        wallJump = -1
        vspd = -velSalto;
    }
    if (Left and !Right and !place_free(x - 1, y) and wallJump = -1)
    {
        canMove = 0;
        alarm[0] = 10
        wallJump = 1;
        vspd = -velSalto;
    }
}

if (canMove = 0)
{
    if (dir = 0) { hspd = spd * 2; }
    if (dir = 1) { hspd = -spd * 2; }
}

y el codigo del salto gradual:
if (keyboard_check_released(ord('X')) and vspd > 0) { vspd += abs(vspd / 1.5); }
Dejo el engine para que vean como es el codigo, casi todo lo tengo en step menos las variables.
EDITO: uso el  :GM8: para poder editar sin tener que estar obligado a guardar como en el  :GMS:
12
Muchas gracias!  :) me funciono de maravilla.
13
Hola CGM, tengo una duda xD, resulta que estoy haciendo un infinite runner, y me gustaria que el contador use sprites de numeros, tengo el sprite de los numeros (spr_Numbers), no se que hacer, porque tengo los siguientes codigos:
En create de obj_Control:
global.Metros=0;
En step:
global.Metros+=1
En draw:
draw_sprite(spr_Numbers, 0, view_xview[0], view_yview[0])
pero al llegar a 10 sigue contando pero desde 0 y me gustaria que no tuviera fin ni que volviera a contar, si no es mucha molestia me podrian ayudar.
Saludos y gracias.
14
Cita de: elviskelley en Agosto 12, 2015, 12:22:15 AM
Colocando en el movimiento right y left y-=1 o segun los slopes, es un poco mas complicado pero es para darte la idea.
Pues si se mueve en slopes, pero resulta que cuando aprieto las teclas de movimiento se separa un poco del suelo y ahora no puede saltar(cuando estoy quieto salta bien pero en el aire aprieto las teclas de movimiento la gravedad cae mas rapido) y le puse un move_contact_solid(270,3) pero no funciona.
Saludos y gracias
15
Hola otra vez, mi problema es que con este codigo se atora con slopes y estuve buscando ejemplos y tutoriales pero no pude implementarlos, este es el codigo:
Left=keyboard_check(ord('A'))
Up=keyboard_check(ord('W'))
Right=keyboard_check(ord('D'))

repeat (abs(xvel)){
if place_meeting(x+sign(xvel),y,obj_Wall) break;
x+=sign(xvel)
}
repeat (abs(yvel)){
if place_meeting(x,y+sign(yvel),obj_Wall) break;
y+=sign(yvel)
}
if Left
{
    xvel=8
}
if Right
{
    xvel=-8
}
if !Left && !Right
{
    xvel=0
}
if Left && Right
{
    xvel=0
}
if place_meeting(x,y+1,obj_Wall)
{
    ground=1
    yvel=0
}
else
{
    ground=0
    yvel+=0.3
}
if up && ground
{
    yvel=-6
}
if (keyboard_check_released(ord("W")) and yvel<0)yvel+=(abs(yvel/1.5));

en otra ocacion me ayudaron con el salto gradual.
Saludos y gracias