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

61
todo  depende de tu pc generalmente cuando los sprites o archivos del juego desaparecen por arte de magia, es algun problema con los archivos de guardado y como los maneja tu pc
62
hola a todos!

de nuevo ando por aquí suplicando pidiendo su ayuda..

eh estado trabajando en algunas cosas últimamente pero no logro lo que realmente quiero, agregando que soy un poco tonto para escribir código decente (gastar 75 lineas de código en una sola tarea me dice que algo no esta bien)

me gustaría hacer que cuando el jugador le de a una tecla 2 veces algo rápido el personaje cambie de caminar a correr, si el jugador no lo hace a tiempo el "combo" se reinicie

espero puedan ayudarme de antemano agradezco sus respuestas <3
63
Preguntas y respuestas / Re:una duda
Enero 18, 2018, 05:39:10 AM
gracias por responder  :)

lo probé y funciona pero no como yo esperaba lo que quiero lograr es que el personaje se quede quieto mientras lanzas puñetazos justo como en los beat em up que estas picando el boton de ataque y el personaje no se mueve ni un pixel hasta que deja de atacar y no presionas el boton
64
Preguntas y respuestas / Re:una duda
Enero 15, 2018, 10:12:04 PM
digamos que presiono izquierda y derecha para que el personaje se mueva lo que quiero es que al pulsar por ejemplo la X el personaje se frene en seco hasta que no dejes de presionar esa tecla el personaje no se moverá

gracias por la respuesta  :)
65
Preguntas y respuestas / Re:No colisiona
Enero 15, 2018, 07:23:21 AM
es una variable del código de shaun spalding la razón por la que no colisiona es porque el código de colisiones esta incompleto te dejo este enlace donde hay un código ya hecho para un juego de plataformas incluye wall jump y slopes.

revisa que te sale mal y ve como puedes armarte tu propio código de colisiones

http://www.comunidadgm.org/desarrollo-de-scripts/platformer-'engine'-source-code/

suerte  :)
66
Preguntas y respuestas / una duda
Enero 15, 2018, 04:24:40 AM
como puedo hacer que cuando el personaje presione una tecla repetidas veces deje de moverse por completo hasta que dejes de estarla presionando y me refiero al usar el keyboard_check_pressed  event eh tratado de hacer esto pero cuando termina de hacer la acción se mueve poquito y se queda quieto de nuevo

alguna forma de hacerlo bien?

gracias por sus respuestas  :)
68
image_speed=2 creo que es un poco alto para que se mueva lento podrias usar en su lugar numeros en decimal entre mas alto el decimal mas lento o estable se movera prueba por ejemplo

image_speed=0.25 eso talvez lo haga moverse lento, reemplaza todos los 2 que tengas en este codigo por el 0.25
69
bueno veo que la estructura es parecida al código de shaun spalding eso es bueno te invito veas este vídeo contiene todo lo que necesitas para empezar con las colisiones:

https://www.youtube.com/watch?v=IysShLIaosk&t

si quieres un codigo ya hecho te invito veas el code source para un juego de plataformas que ya viene equipado con todo lo que nesecitas:

http://www.comunidadgm.org/desarrollo-de-scripts/platformer-'engine'-source-code/


suerte en eso!
70
Desarrollo de Scripts / Pushable Box Code
Enero 07, 2018, 12:01:10 AM
Autor original: CRISTOPHER2545
Versión de GM utilizada: :GM8: :GMS:
Descripción: este script sirve para crear una caja que el jugador pueda empujar. el código esta optimizado para evitar bajas en la memoria.
Código:



CREATE EVENT

//movimiento
hsp = 0;
vsp = 0;

//gravedad
grav = 0.5;
m=1
//salto y movimiento
jumpspeed = 11

//friccion maxima
groundAccel = 1//puedes modificar esto para tener friccion en el piso
groundFric  =1 //puedes modificar esto para tener friccion en el piso
airAccel    = 0.4 //0.4 valores recomendados
airFric     = 0.1// valores recomendados
onGround=false
// velocidad maxima
maxH        = 5
maxV        = 0.1

jumps=0
jumpsmax=2
move_lock = false;
grounded = false;


STEP EVENT
var tempAccel, tempFric;

//Get the player's input
key_right = keyboard_check(vk_right);
key_left = keyboard_check(vk_left);
key_down = keyboard_check(vk_down);
key_jump = keyboard_check_pressed(vk_space);
key_jump_held = keyboard_check(vk_space)
//React to inputs

if (onGround) {
    tempAccel = groundAccel;
    tempFric  = groundFric;
} else {
    tempAccel = airAccel;
    tempFric  = airFric;
}

if (vsp < 10) vsp += grav;

move_lock = false;
{
// Moving right
if  place_meeting(x+2,y,obj_player)
{
    if (hsp > 0)
        hsp = Approach(hsp, 0, tempFric);   
    hsp = Approach(hsp, -maxH, tempAccel);


if  place_meeting(x-2,y,obj_player)
{
     if (hsp < 0)
        hsp = Approach(hsp, 0, tempFric);   
    hsp = Approach(hsp, maxH, tempAccel);

}

if  !place_meeting(x-1,y,obj_player) && !place_meeting(x+1,y,obj_player)
{
hsp=0
}

//Horizontal Collision
if place_meeting(x+hsp,y,obj_wall)
{
    yplus = 0;
    //subir las cuestas
    while (place_meeting(x+hsp,y-yplus,obj_wall) && yplus <= abs(1*hsp)) yplus += 1;
    if place_meeting(x+hsp,y-yplus,obj_wall)
    {
        while (!place_meeting(x+sign(hsp),y,obj_wall)) x+=sign(hsp);
        hsp = 0;
    }
    else
    {
        y -= yplus
    }
}
x += hsp;
//bajar las cuestas
if !place_meeting(x,y,obj_wall) && vsp >= 0 && place_meeting(x,y+2+abs(hsp),obj_wall)
{while(!place_meeting(x,y+1,obj_wall)) {y += 1;}}

//Vertical Collision
if (place_meeting(x,y+vsp,obj_wall))
{
    while(!place_meeting(x,y+sign(vsp),obj_wall))
    {
        y += sign(vsp);
    }
    vsp= 0;
}
y += vsp;


if (!place_meeting(x,y+1,obj_wall))
{
onGround=false
}
else
{
onGround=true
airAccel    = 0.4
}




if (vsp < 0) && (!key_jump_held)
{
    vsp += grav;//+
}





71
Preguntas y respuestas / Re:Mostrar animacion una sola vez
Diciembre 24, 2017, 10:55:15 AM
para detener una animacion o "sprite" en concreto puedes usar el evento ANIMATION END y poner  este código


if sprite_index="tu animación que quieres ver una sola vez"
{
image_index="el ultimo frame de tu animacion para que se congele ahi
}


o


if sprite_index="tu animación que quieres ver una sola vez"
{
sprite_index="la siguente animacion que quieres reproducir"
}
72
Preguntas y respuestas / Re:empujar una caja
Diciembre 22, 2017, 07:15:43 AM
Cita de: sebastianfragapane en Diciembre 22, 2017, 07:04:45 AM
Hola!!! yo te diría que el que se fija si lo están moviendo sea la caja. es decir en el evento step de la caja pones
if keyboard_check(vk_left) && place_meeting(x+1,y,personaje_obj)
{
x -= 3

}

if keyboard_check(vk_right) && place_meeting(x-1,y,personaje_obj)
{
x +=3

}


yo en lo personal me manejo con cooredenadas y no con velocidades, pero en este caso no creo que te resulte un problema.
espero haber sido de ayuda!!!!

le doy a este código  2HIPOTECAS/10 no  pero hablando enserio funciona perfectamente no se me ocurrió al principio <3 gracias colega me salvaste!

feliz navidad!  :)
73
Preguntas y respuestas / empujar una caja [resuelto]
Diciembre 22, 2017, 06:03:58 AM
Eh vuelto de nuevo, realmente no quiero pero me frustre muchísimo

estoy tratando de hacer que mi personaje empuje una caja en un juego de plataformas use este codigo


if keyboard_check(vk_left) && place_meeting(x-2,y,obj_box)
{
hsp=-3
}
else
hsp=0


este código funciona correctamente el personaje empuja la caja a lo largo del nivel, pero cuando pongo ese mismo código invertido para que el personaje la empuje hacia el otro lado el código deja de funcionar por completo.

no se que estoy haciendo mal al invertir el código pero al ponerlo todo deja de funcionar alguna idea de que pueda ser?

de antemano gracias y feliz casi navidad  :)
74
Desarrollo de Scripts / Platformer "ENGINE" source code
Diciembre 21, 2017, 10:57:47 AM
Autor original: Shaun spalding
Modificación por: CRISTOPHER2545
Versión de GM utilizada:  :GM8: :GMS:
Descripción: este script es una modificación al código de SHAUN SPALDING que agrega algunas mejoras técnicas a los controles conservando toda la funcionalidad del original.
Código:
"puedes usar este código en un script o en un objeto jugador."
"este código ah sido comprimido para mejor eficiencia y mas rendimiento"
Create event

//movimiento
hsp = 0;
vsp = 0;

//gravedad
grav = 0.5;
m=1
//salto y movimiento
jumpspeed = 11

//friccion maxima
groundAccel = 1 //puedes modificar esto para tener friccion en el piso
groundFric  =1 //puedes modificar esto para tener friccion en el piso
airAccel    = 0.4 //0.4 valores recomendados
airFric     = 0.1// valores recomendados
onGround=false
// velocidad maxima
maxH        = 5
maxV        = 0.1

jumps=0
jumpsmax=2
move_lock = false;
grounded = false;


Alarm 0 event
move_lock = false;

Step event
var tempAccel, tempFric;

//Get the player's input
key_right = keyboard_check(vk_right);
key_left = keyboard_check(vk_left);
key_down = keyboard_check(vk_down);
key_jump = keyboard_check_pressed(vk_space);
key_jump_held = keyboard_check(vk_space)
//React to inputs

if (onGround) {
    tempAccel = groundAccel;
    tempFric  = groundFric;
} else {
    tempAccel = airAccel;
    tempFric  = airFric;
}

if (vsp < 10) vsp += grav;

move_lock = false;
{
// Moving right
if (key_left) && (!key_right)
{
    if (hsp > 0)
        hsp = Approach(hsp, 0, tempFric);   
    hsp = Approach(hsp, -maxH, tempAccel);


if (key_right) && (!key_left)
{
     if (hsp < 0)
        hsp = Approach(hsp, 0, tempFric);   
    hsp = Approach(hsp, maxH, tempAccel);

}


if (!key_left) && (!key_right) && !onGround
    hsp = Approach(hsp, 0, tempFric);
else if (!key_left) && (!key_right)
{
hsp=0
}

//Horizontal Collision
if place_meeting(x+hsp,y,obj_wall)
{
    yplus = 0;
    //subir las cuestas
    while (place_meeting(x+hsp,y-yplus,obj_wall) && yplus <= abs(1*hsp)) yplus += 1;
    if place_meeting(x+hsp,y-yplus,obj_wall)
    {
        while (!place_meeting(x+sign(hsp),y,obj_wall)) x+=sign(hsp);
        hsp = 0;
    }
    else
    {
        y -= yplus
    }
}
x += hsp;
//bajar las cuestas
if !place_meeting(x,y,obj_wall) && vsp >= 0 && place_meeting(x,y+2+abs(hsp),obj_wall)
{while(!place_meeting(x,y+1,obj_wall)) {y += 1;}}

//Vertical Collision
if (place_meeting(x,y+vsp,obj_wall))
{
    while(!place_meeting(x,y+sign(vsp),obj_wall))
    {
        y += sign(vsp);
    }
    vsp= 0;
}
y += vsp;


if (!place_meeting(x,y+1,obj_wall))
{
onGround=false
}
else
{
onGround=true
airAccel    = 0.4
}

if (place_meeting(x,y+1,obj_wall))
{
    jumps = jumpsmax; 
}

if (key_jump) && (jumps > 0)
{
    jumps -= 1;
    vsp = -jumpspeed;
}




if (vsp < 0) && (!key_jump_held)
{
    vsp += grav;//+
}


//wall jump system
if key_jump and place_meeting(x + 1, y, obj_wall) and grounded=false
{
    vsp = -12;
    move_lock = true;
     hsp=-6
     jumps=1
     alarm[0]=5
   
}
else

if place_meeting(x + 1, y, obj_wall) && vsp>0
{
vsp=1
}


if key_jump and place_meeting(x - 1, y, obj_wall) and  grounded=false 
{
    vsp = - 12;
       move_lock = true;
       alarm[0]=5

   hsp=6
   jumps=1
}
else

if place_meeting(x- 1, y, obj_wall) && vsp>0
{
vsp=1
}



"debes de crear un script con el nombre "Approach" para que el código anterior funcione"
"este código sirve para detectar las colisiones con las paredes"


if (argument0 < argument1)
    return min(argument0 + argument2, argument1);
else
    return max(argument0 - argument2, argument1);



"el código funciona perfectamente ya trae el doble salto y el wall jump al igual que los "slopes" si deseas agregar mas cosas puedes ver los vídeos de shaun spalding ya que este código sigue siendo compatible con sus códigos aunque tambien puedes integrar códigos externos para mejorar este codigo"

se recomienda correr el juego a 60 FPS ya que el código esta adaptado para esa velocidad si deseas usar 30 FPS recomiendo cambiar todos los valores en el evento CREATE para que se adapten a la velocidad del juego.

para usar las colisiones es necesario crear un objeto llamado "obj_wall" este puede ser cambiado tomando en cuenta que se debe cambiar el nombre en todo el código, al tener este objeto todas las funciones operaran correctamente incluso el wall jump, la versión del wall jump es antigua y es la misma que utilizaba en mis juegos de prueba.

DATO CURIOSO: a todo esto me costo exactamente 3 semanas en re-crear y testear el código las partes mas difíciles de añadir fue la fricción aérea y en el piso al igual que el wall jump, el código es totalmente amigable y puedes DESACTIVAR todas las habilidades extras que el código ofrece.

cualquier problema con este código puedes mandarme un correo a cagamesco@gmail.com o en la mensajería de este foro y responderé a la brevedad, si encuentras algún bug favor de notificarlo para poder postear un parche en el código
75
Preguntas y respuestas / Re:impulso en el salto
Diciembre 21, 2017, 10:35:45 AM
Gracias por las respuestas! en vez de tomar y copiar y pegar el código decidí usar el código de shaun spalding y modificar lo sin perder la flexibilidad que este ofrece, cambie el sistema de movimiento por uno nuevo que cree sin perder la funcionalidad del código original obtuve lo que deseaba y añadí mas funciones al código como la fricción y la aceleración en el suelo lo provee todo y funciono muy bien tal vez suba el código para que todos disfruten de el.

funciona para un plataformero
-doble salto
-wall jump
- colisiones perfectas
- y controles funcionales

gracias por darme ánimos :)