Como Empurrar um Objeto

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Como Empurrar um Objeto

Mensagem por thalesaraujo em Sex 09 Out 2009, 22:05

Ola pessoal

Meu personagem tem que empurrar um objeto (pedra) nos 2 eixos x e y. É estilo sokoban o jogo. Gostaria de ajudas de como proceder

achei esse codigo aqui no forum mesmo

Código:
if (bbox_bottom > other.bbox_top) {
    if (bbox_left > other.bbox_right) {
        other.x -= 1; // mude pela velocidade do objeto que empurra;
    }
    else {
        other.x += 1; // idem;
    }
}
else {
    vspeed = 0;
    move_contact_solid(direction,16);


porem eu so consigo mexer a rocha da esquerda pra direita e vice versa. no eixo Y nao consigo mexer.

Alguma ideia?

thalesaraujo

Número de Mensagens : 26
Data de inscrição : 22/08/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por Convidad em Dom 11 Out 2009, 11:16

Amigo, já tentou mudar as condições desse jeito? [:¬)]

Código:
if (bbox_top < other.bbox_bottom) {
    if (bbox_left < other.bbox_right) {
        other.y -= 1; // mude pela velocidade do objeto que empurra;
    }
    else {
        other.y += 1; // idem;
    }
}
else {
    vspeed = 0;
    move_contact_solid(direction,16);
}

Particularmente, eu achei esse jeito um pouco estranho. Se não funcionar, poderia postar uma imagem de como é o jogo? Olhando alguém poderia fazer um engine pra você. [:¬D]

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por thalesaraujo em Dom 11 Out 2009, 13:25

agora a pedra passou a ser empurrada diagonalmente.

tou mandando uma screenshot

e obrigado pela ajuda!



Código:
Information about object: obj_personagem

Sprite: Personagem
Solid: true
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>

Collision Event with object obj_rocha:
execute code:

if (bbox_bottom > other.bbox_top) {
    if (bbox_left > other.bbox_right) {
        other.x -= 1; // mude pela velocidade do objeto que empurra;
    }
    else {
        other.x += 1; // idem;
    }
}
else {
    vspeed = 0;
    move_contact_solid(direction,16);
}

if (bbox_top < other.bbox_bottom) {
    if (bbox_left < other.bbox_right) {
        other.y -= 1; // mude pela velocidade do objeto que empurra;
    }
    else {
        other.y += 1; // idem;
    }
}
else {
    vspeed = 0;
    move_contact_solid(direction,16);
}

Keyboard Event for <Left> Key:
move relative to position (-4,0)

Keyboard Event for <Up> Key:
move relative to position (0,-4)

Keyboard Event for <Right> Key:
move relative to position (4,0)

Keyboard Event for <Down> Key:
move relative to position (,4)


Código:

Information about object: obj_rocha

Sprite: Rocha
Solid: true
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>

thalesaraujo

Número de Mensagens : 26
Data de inscrição : 22/08/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por Kevin em Dom 11 Out 2009, 17:36

coloca assim... no lugar daquele antigo código que você tentou para por para empurrar (ou seja XD... quando o personagem Colidir com a rocha XD)

Código:
if y < other.y{
other.y+=4
}
if y > other.y{
other.y-=4
}
if x < other.x{
other.x+=4
}
if x > other.x{
other.x-=4
}

Bem Funciona Muito Bem Very Happy

Aconselho a Tirar o SOLID do obj_rocha para dar um efeito melhor Very Happy

bem... tente colocar Grade no seu Personagem Principal Pois... se nesse Código você encostar no canto da rocha... o player irá levala em diagonal mesmo Very Happy

tente empurra-la (a rocha) exactamente em baixo

Bem é issu

FLWs Very Happy

Keké Games©

PS:. Se não entendeu ou deu erro ou algo parecido Pode Falar aki Happy

Kevin

Ranking : Nota C
Número de Mensagens : 1166
Idade : 22
Data de inscrição : 14/11/2008
Notas recebidas : C - C
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.programaCODM.webs.com/

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por thalesaraujo em Seg 12 Out 2009, 00:23

continua movendo na diagonal...

thalesaraujo

Número de Mensagens : 26
Data de inscrição : 22/08/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por Alex FC em Seg 12 Out 2009, 01:22

Tem essa minha engine que acabei de fazer:

http://gmbr.forumeiros.com/engines-f12/engine-empurrar-objeto-t4215.htm#32892

Os códigos estão bem organizados no step do objeto pedra. Vlw?

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por vinians em Seg 12 Out 2009, 02:39

E ae amigão tudo blz???
Criei uma engine/exemplo que mostra como fazer isso e algumas outras coisas, veja:
http://gmbr.forumeiros.com/engines-f12/engine-de-empurrar-esteira-hud-t4216.htm#32894

Qualquer coisa é só perguntar.

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por thalesaraujo em Seg 12 Out 2009, 14:57

Alex FC escreveu:Tem essa minha engine que acabei de fazer:

http://gmbr.forumeiros.com/engines-f12/engine-empurrar-objeto-t4215.htm#32892

Os códigos estão bem organizados no step do objeto pedra. Vlw?

FLWS!

Esta realmente funcionando muito bem alex. Gostei de ter que pressionar a barra de espaço para mover o objeto. Muito bom!

Será que teria como vc me explicar a parte matemática do código? Vou dar um exemplo:

Código:

if place_meeting(x,y+10,obj_personagem) && keyboard_check(vk_down) && keyboard_check(vk_space)
{
if place_free(x,y+5){y+=5}
}
else if place_meeting(x,y+10,obj_personagem) && keyboard_check(vk_up) && keyboard_check(vk_space)
{
if place_free(x,y-5){y-=5}
}

eu gostaria que vc me explicasse o porque desses valores nas coordenadas x e y...

valeu abraços

thalesaraujo

Número de Mensagens : 26
Data de inscrição : 22/08/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por thalesaraujo em Seg 12 Out 2009, 14:58

vinians escreveu:E ae amigão tudo blz???
Criei uma engine/exemplo que mostra como fazer isso e algumas outras coisas, veja:
http://gmbr.forumeiros.com/engines-f12/engine-de-empurrar-esteira-hud-t4216.htm#32894

Qualquer coisa é só perguntar.

obrigado pela ajuda vinians! eu vou utilizar seu codigo na parte da esteira, caso permita!

abraços!

thalesaraujo

Número de Mensagens : 26
Data de inscrição : 22/08/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por vinians em Seg 12 Out 2009, 15:02

thalesaraujo escreveu:

obrigado pela ajuda vinians! eu vou utilizar seu codigo na parte da esteira, caso permita!

abraços!
Fique a vontade amigo, e boa programação!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por thalesaraujo em Sab 17 Out 2009, 14:01

como o jogo é estilo sokoban, eu precisava de um movimento em blocos constantes. e nao desse tipo de movimento sensível...

alguma ajuda?

thalesaraujo

Número de Mensagens : 26
Data de inscrição : 22/08/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por mayck em Qua 13 Jan 2010, 22:33

Vlw gente
brigado mesmo Tava presizando

Editado por CPinheiro: Flood. Tenha mais atenção para não reviver tópicos.
Usuário avisado e tópico trancado para evitar mais posts desnecessários.

mayck

Número de Mensagens : 370
Idade : 20
Data de inscrição : 11/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Como Empurrar um Objeto

Mensagem por Conteúdo patrocinado Hoje à(s) 22:15


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum