Necesito una forma de hacer que los objetos puedan subir o bajar por rampas estilo Sonic

Ni ami me respondieron bien acerca de este tema :'( :-[

#2 Junio 29, 2010, 07:36:43 AM Ultima modificación: Junio 29, 2010, 07:39:13 AM por brunoxzx
Cita de: DEADOFALL en Junio 29, 2010, 04:59:29 AM
Ni ami me respondieron bien acerca de este tema :'( :-[
Yo te respondi y me respondiste que te sirbio y que lo habias entendido.

MM aver usa este metodo.
en create pon
X=x
en begin step pon
X=x

cambia tus codigos de movimiento de izquierda y derecha por estos no deben usar place_free tus codigos de movimiento.
IZQUIERDA
X-=4
DERECHA
X+=4
y pon esto en end step
if place_free(X,y+4)
{
x=X
y=y+4
exit;
}
if place_free(X,y)
{
x=X
exit;
}
if place_free(X,y-4)
{
x=X
y=y-4
exit;
}

Ten cuidado las X mayusculas no significan lo mismo que las minusculas



O mejor pasame el editable de tu juego y te lo arreglo

Cita de: brunoxzx en Junio 29, 2010, 07:36:43 AM
y pon esto en end step
if place_free(X,y+4)
{
x=X
y=y+4
exit;
}
if place_free(X,y)
{
x=X
exit;
}
if place_free(X,y-4)
{
x=X
y=y-4
exit;
}


Muy bueno ese c?digo brunoxzx, no se me hab?a ocurrido a m? tampoco como plantear una rampa.


Un saludo,
- Herni
(Acepto todo tipo de cr?ticas, ya que soy novato total, usando GM desde el 12 de Junio de 2010)
(Me ofrezco como voluntario para cualquier proyecto en el que pueda echar una manilla)
HerniHost (Dise?o Web, Hosting y Registro de Dominios)

Cita de: Herni en Junio 29, 2010, 07:42:12 AM
Muy bueno ese c?digo brunoxzx, no se me hab?a ocurrido a m? tampoco como plantear una rampa.



Gracias pero la idea no es mia la vi en un ejeplo hace como un a?o y lo volvi a hacer lo mas parecido que pude

Cita de: brunoxzx en Junio 29, 2010, 07:36:43 AM
Cita de: DEADOFALL en Junio 29, 2010, 04:59:29 AM
Ni ami me respondieron bien acerca de este tema :'( :-[
Yo te respondi y me respondiste que te sirbio y que lo habias entendido.
Si, pero luego me hice bolas. XD

Hasta hace poco pude ver probar la rampa y esta buena
me servira...gracias :)

Denada que bueno que te sirvio  8)

Cita de: brunoxzx en Junio 29, 2010, 07:36:43 AM
Cita de: DEADOFALL en Junio 29, 2010, 04:59:29 AM
Ni ami me respondieron bien acerca de este tema :'( :-[
Yo te respondi y me respondiste que te sirbio y que lo habias entendido.

MM aver usa este metodo.
en create pon
X=x
en begin step pon
X=x

cambia tus codigos de movimiento de izquierda y derecha por estos no deben usar place_free tus codigos de movimiento.
IZQUIERDA
X-=4
DERECHA
X+=4
y pon esto en end step
if place_free(X,y+4)
{
x=X
y=y+4
exit;
}
if place_free(X,y)
{
x=X
exit;
}
if place_free(X,y-4)
{
x=X
y=y-4
exit;
}

Ten cuidado las X mayusculas no significan lo mismo que las minusculas



O mejor pasame el editable de tu juego y te lo arreglo
Soy nuevo en el foro, asi que si estoy haciendo mal en revivir este tema, solo diganmelo

Hey brunoxzx
he intentado este codigo, pero tengo problemas, talvez sepas como solucionarlo
El juego pues cabe decir que es plataforma, pero tengo opcion de saltar, el problema es, que a como tengo mi juego, no puedo hacer que funcione este codigo, por que? no se
quiero poder subir o bajar en caminos irregulares, pero no logro programarlo, no me da la cabeza XD

Si te sirve de algo, el objeto "montaña" es terreno irregular
Aqui esta lo que tengo de mi "personaje"
Citar
Information about object: character

Sprite: stand
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: stand

Create Event:
set variable move_speed to 4

Step Event:
execute code:

if place_free(x,y+1)
    {
    if sprite_index == right
        {
        sprite_index = jump_right;
        }

    if sprite_index == stand
        {
        sprite_index = jump_up;
        }

    if sprite_index == left
        {
        sprite_index = jump_left;
        }
    }
   
    else

    {
    if sprite_index == jump_right
        {
        sprite_index = stand;
        }

    if sprite_index == jump_up
        {
        sprite_index = stand;
        }

    if sprite_index == jump_left
        {
        sprite_index = stand;
        }
    }

if (sprite_index == jump_right)
    {
    image_index = 2;
    image_speed = 0;
    }

if (sprite_index == jump_left)
    {
    image_index = 2;
    image_speed = 0;
    }

if (sprite_index == jump_up)
    {
    image_index = 2;
    image_speed = 0;
    }

if keyboard_check_released(vk_left)
    {
    if sprite_index == left
        {sprite_index = stand}
    }

if keyboard_check_released(vk_right)
    {
    if sprite_index == right
        {sprite_index = stand}
    }



if relative position (0,1) is collision free for Only solid objects
      set the gravity to 0.5 in direction 270
else
      set the gravity to 0 in direction 270

Collision Event with object concreto:
move in direction direction at most 12 till a contact with solid objects
set the vertical speed to 0

Collision Event with object pared:
move in direction direction at most 12 till a contact with solid objects
set the vertical speed to 0

Collision Event with object montaña:
move in direction direction at most 12 till a contact with solid objects
set the vertical speed to 0

Keyboard Event for <Space> Key:
if relative position (0,1) is not collision free for Only solid objects
      set the vertical speed to -10

Keyboard Event for <Left> Key:
if relative position (-move_speed,0) is collision free for Only solid objects
      execute code:

x-=move_speed

set the sprite to left with subimage image_index and speed .5

Keyboard Event for <Right> Key:
if relative position (move_speed,0) is collision free for Only solid objects
      execute code:

x+=move_speed

set the sprite to right with subimage image_index and speed .5