Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: XxBL100xX en Enero 08, 2020, 12:30:55 AM

Título: Hola me podrian testear esto?
Publicado por: XxBL100xX en Enero 08, 2020, 12:30:55 AM
Bueno en si lo que necesito que me ayuden es como quito el bug de la colision, mi codigo de colision es este: :[gml]//Collision
move_contact_solid(270,1)
gravity=0;
vspeed=0;[/gml]
esto es cuando colisiona con el objeto solido

y aqui esta el juego en una version muuuy temprana estare subiendo las versiones conforme valla actualizando el proyecto por ahora solo el movimiento base aca lo descargan porfa notificame si encuentran otro bug
https://www.mediafire.com/file/on3rfp1ezbwzyed/Megaman_X_Elf_Wars_V0.01.rar/file
solo habren el que tiene el nombre del juego no el instalador Gracias :)
Título: Re:Hola me podrian testear esto?
Publicado por: dixon en Enero 09, 2020, 12:53:54 AM
Hola, buenas noches

(http://imgfz.com/i/e9X4m01.jpeg)

Puedes descargar un ejecutable y un editable para gm4 que tiene la solución Aquí (https://www.comunidadgm.org/preguntas-y-respuestas/hola-me-podrian-testear-esto/?action=dlattach;attach=18708)

(http://imgfz.com/i/ek6zjiD.jpeg)

La solución que propóngo cambia todo el código que estás usando por uno parecido al siguiente código:

///simulando el evento create con la variable score
if(score=0)
{
score=1
//botones
b2=0
d=1 //direccion
s=0// el salto
estado="parado"
v=0 //velocidad
time_eye=0//parpadeo
font_size=12
}

///botones
if(keyboard_check(vk_f2))game_restart()
b1=keyboard_check(vk_left)
b2p=(b2=0)*keyboard_check(ord("Z"))
b2=keyboard_check(ord("Z"))
b3=keyboard_check(vk_right)

//movimiento vertical
if((estado="parado" || estado="caminando")*b2p*(s=0))s=20
if(s)s-=1
while(!place_empty(x,y-s))s-=1
if(s<0)s=0
y+=5-s
while(!place_empty(x,y+2))y-=1

//movimiento horizontal
control=(b1+b3=1)
if(control)
{
d=1-2*(b1)
v+=d
}
else
{
if(abs(v))v-=sign(v)*2
if(abs(v)<2)v=0
}
if(abs(v)>5)v=5*sign(v)
while(!place_empty(x+v,y-5))v-=sign(v)
x+=v

//control de imagen
if(place_empty(x,y+10)){estado="aire"}else{estado="suelo"}
if(estado="aire"){if(s>5){estado="subiendo"}else{estado="bajando"}}
if(estado="suelo"){if(x=xprevious){estado="parado"}else{estado="caminando"}}
if(estado="subiendo"){if(sprite_index!=2+(d<0)*3){sprite_index=2+(d<0)*3;image_speed=0.2;image_index=0};if(image_index>2){image_index=2}}
if(estado="bajando"){if(sprite_index!=2+(d<0)*3){sprite_index=2+(d<0)*3;image_speed=0.1};if(image_index<3){image_index=3};if(image_index>4){image_index=4}}
if(estado="parado"){if(sprite_index!=0+(d<0)*3){sprite_index=0+(d<0)*3};if(time_eye=0){image_speed=0.2};if(floor(image_index)=2){image_speed=0;image_index=0};if(time_eye>100){time_eye=0}else{time_eye+=1}}
if(estado="caminando"){if(sprite_index!=1+(d<0)*3){sprite_index=1+(d<0)*3;image_speed=0.5}}
draw_sprite(sprite_index,image_index,x,y)

Título: Re:Hola me podrian testear esto?
Publicado por: XxBL100xX en Enero 09, 2020, 02:39:42 AM
Muchas gracias de verdad por tomarte el tiempo de hacer esto de verdad te lo agradezco mucho  :) reempalzare todos los codigos con las mecanicas que me dajaste aca arriba ya si si es un gran cambio en la hora de crear juegos ya que yo lo hacia con puro hspeed y vspeed gracias de verdad en unos dias subire otra version de mi ejecutable con el disparo y las colisiones arregladas gracias de verdad ;)