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

1
¿A qué te refieres con "Crear un editor propio"?
Este es mi script de detección de colisiones:

for(var v=0;v<sprite_width;v++){
    for(var h=0;h<sprite_height;h++){
        if(collision_point(x+v,y+h,objCursor,1,0)){
            if(!collision_point(x+v,y+h,objSurphase,1,1)){
                scr_lose()
                }
            }
        }
    }

La razón por la que reviso pixel por pixel, es que si simplemente uso algo como !place_meeting(x,y,objSurface), scr_lose() se activaría solo cuando ningún pixel está tocando objSurface. En cualquier caso ¿Podría explicarme lo de las físicas 2D? ¿Hablas de activar el motor de físicas?
2
Me gustaría ayudarte con este problema, ya que también he tenido problemas con las físicas y coliciones, es una marca distintiva de GameMaker. Mira, la forma de lograr las "colosiones perfectas" (como se le suela llamar) mas viable que he intentado, consiste en checar si en el siguiente step el objeto estará colicionando, para esto albergas los valores de velosidad en variables, y haces el chequeo antes de aplicarlo directamente en X y Y. Si SI hay una colisión en el siguiente step, puedes, por ejemplo, usar un while para colocar el objet6o justo un pixel al lado del objeto en la dirección a la que se dirigía, por ejemplo:


speed= 6
jump=7
grav=2
hspd+=(keyboard_chek(vk_left)-keyboard_check(vk_right))*speed
vspd-=(keyboard_check(vk_space)&&!place_free(x,y+1))*jump
vspd+=grav

if(!place_free(x+hspd,y+vspd)){
    while!(place_free(x+sign(hspd),y)||place_free(x,y+sign(vspd))){
        var dir=point_direction(x,y,x+hspd,y+vspd)
        x+=dcos(dir)
        y+=dsin(dir)
        }
    hspd=0
    vspd=0
    }

x+=hspd
y+=vspd


Este código hace justo lo que te dige anteriormente, el problema es que aún así, es muy específico y no comprender coliciones en movimiento. Te lo digo así, si en tu juego hay mucha interacción entre sólidos y contantemente colisionarás con mas de un sólido a la vez, te recomendaría usar el motor de físicas; este es un consejo un poco delicado, y por eso te digo, que no uses las físicas si no las necesitas, pero si es el caso, creo que sería lo mejor.
3
Hola! Bueno, el jugador es un cursor que tiene que atravezar el nivel manteniéndose siempre sobre las superficies blancas. Estoy en etapa de pre-producción, escribiendo el GDD, y estoy por definir como funcionarán las superficies en si. Cada objeto que actue como superficie será hijo de objSurface, y en el cursor, un script recorre cada pixel del sprite con un collision_point() para revisar si todos los pixeles del cursor están colisionando con objSurface, si uno solo de los pixeles está fuera de la superficie, se pierde y se ejecuta el script scr_lose(). Algunas superficies están en movimiento, otras tienen peso, otras se mueven con switches, otras son de distintos colores, otras son gripables (agarrables y movibles con el mismo cursor), otras se mueven con el scroll de la rueda del mouse, otras jiran, y muchas variables para distintos niveles.










Así que, una vez contextualizado, mi pregunta es ¿Cómo manejarían ustedes la construcción de estos niveles? No diseño los niveles aún, es decir en el GDD, pero creo que definir como se van a construir me puede ahorrar bastantes problemas en el futuro. Entonces, ¿Ustedes mantendrían las superficies como piezas pequeñas como sprites en objetos, círculos, cuadrados, agunos polígonos... para luego hacer una construcción en el editor de rooms (estos talvés limite la diversidad de los niveles); o quizá dibujarían todo el nivel aparte, para luego importarlo como un sprite separado para cada nivel (esto sería una confución, porque tendría que gestionar por aparte las zonas del nivel, las que se nueven, las que no...)? ¿Qué dicen?

Este es mi primer verdadero videojuego formal, y quiero que quede lo mejor posible, por eso les pido ayuda. No he manejado antes muchos rooms y objetos en un solo proyecto, y no sé cual es la mejor forma de llevar a cabo, por ejemplo, este tipo de niveles, que no constan de bloques simples que todos los niveles comparten de acuerdo a un tema.

Como sea, muchas gracias de antemano!