Tengo un problea con slopes, ademas si busco un codigo, y lo reemplazo x el que tengo para los solidos, ocurren errores raros y el personaje no llega al piso y se queda en el aire quieto, asi son mis codigos base:
Create:
[gml]velocidad=3
doble_salto=2
vel_salto=-6[/gml]
Step:
[gml]if place_free(x,y+1) {gravity=0.5}
else {gravity=0}
if mouse_x>x image_xscale=-1
if mouse_x<x image_xscale=1
if place_free(x,y+2){sprite_index=spr_soldierjump}[/gml]
Collision With obj_block
[gml]{
if other.solid=true {
if (vspeed > 0 && !place_free(x, y + vspeed))
{
move_contact_solid(270, 4);
vspeed = 0;
}
sprite_index=spr_soldier
doble_salto=2;
}
}[/gml]
A-key:
[gml]if mouse_x<x
{
if place_free(x-velocidad,y) {x-=velocidad}
else {move_contact_solid(180,velocidad)}
//if place_free(x,y+1) {sprite_index=spr_genesissalta}
/*else*/ {if place_free(x-1,y) {sprite_index=spr_soldierrun} else {sprite_index=spr_soldier}}
image_xscale=-1
}
if mouse_x>x
{
if place_free(x-velocidad,y) {x-=velocidad}
else {move_contact_solid(180,velocidad)}
//if place_free(x,y+1) {sprite_index=spr_genesissalta}
/*else*/ {if place_free(x-1,y) {sprite_index=spr_soldierrunreverse} else {sprite_index=spr_soldier}}
image_xscale=-1
}
[/gml]
D-Key:
[gml]if mouse_x>x
{
if place_free(x+velocidad,y) {x+=velocidad}
else {move_contact_solid(0,velocidad)}
//if place_free(x,y+1) {sprite_index=spr_soldierjump}
/*else*/ {if place_free(x+1,y) {sprite_index=spr_soldierrun} else {sprite_index=spr_soldier}}
image_xscale=1
}
if mouse_x<x
{
if place_free(x+velocidad,y) {x+=velocidad}
else {move_contact_solid(0,velocidad)}
//if place_free(x,y+1) {sprite_index=spr_soldierjump}
/*else*/ {if place_free(x+1,y) {sprite_index=spr_soldierrunreverse} else {sprite_index=spr_soldier}}
image_xscale=1
}
[/gml]
W-key:
[gml]if doble_salto>0
{
if gravity!=0 {doble_salto=0}
else {doble_salto-=1}
vspeed=vel_salto
sprite_index=spr_soldierjump
}[/gml]
Gracias por su ayuda
/|
/ |
/__|
Te dejo un ejemplo.
Excelente ejemplo!!!
Ahora, intentare adaptarlo a mi jjuego.
Muchas Gracias! :P