Sprite, obj tremendo.

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

Sprite, obj tremendo.

Mensagem por Dark Holy Devil em Qua 07 Maio 2014, 17:25

Olha eu de novo aqui galerinha, bom to enfrentando mais um problema no meu projeto, acho que é um problema meio de inciante, mas tudo bem. Bom, eu estou tentando fazer uma colisão, só que quando o obj_player colide com o outro o sprite dele fica tremendo. Se alguém puder me ajudar, agradeço muito. Para fazer colidir eu estou usando o comando:
Código:
move_towards_point(obj_cm.x,obj_cm.y,5)

 Valeu pessoal, agradeço desde já!

Dark Holy Devil

Número de Mensagens : 59
Idade : 21
Data de inscrição : 13/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.geekhouse.xpg.com

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por Zero. em Qua 07 Maio 2014, 17:47

quando ele chega nesta posição x e y ele fica tremendo ?

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por Dark Holy Devil em Qua 07 Maio 2014, 17:58

Isso mesmo :v

Dark Holy Devil

Número de Mensagens : 59
Idade : 21
Data de inscrição : 13/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.geekhouse.xpg.com

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por Zero. em Qua 07 Maio 2014, 18:01

oque treme é o obj, quando ele chega no ponto ele ainda tem speed > 0 e tem um direction ou seja, ele irá ficar andando para a ultima direção qndo chegar nesses pontos e como ele vai sair desses pontos ele vai voltar e assim vai ficar "tremendo". Faça-o parar, em determinada ocasião ponha speed = 0 (qndo ele chegar no ponto por exemplo)

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por Carlos Eduardo em Qua 07 Maio 2014, 20:26

Olá amigo qualquer dúvida que tiver em relação a um código de programação vai uma dica interessante:
no game maker: entre em Help > Contents: e lá digita o código em que você tem a dúvida.

Carlos Eduardo

Número de Mensagens : 105
Idade : 34
Data de inscrição : 24/05/2013
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por Dark Holy Devil em Qui 08 Maio 2014, 11:34

Não resolveu meu problema, agora estou na facul, quando chegar em casa faço um video mostrando o que ta acontecendo ;D

Dark Holy Devil

Número de Mensagens : 59
Idade : 21
Data de inscrição : 13/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.geekhouse.xpg.com

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por willyruduit em Qui 08 Maio 2014, 11:54

Cara posta seu código do movimento ai !

Qual o fator para ele se movimentar? só com esse code fica difícil saber o que deseja  investigador

willyruduit

Ranking : Nota A
Número de Mensagens : 306
Idade : 28
Data de inscrição : 02/08/2013
Notas recebidas : B-B-B-A-A
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por Dark Holy Devil em Qui 08 Maio 2014, 16:51

Bom consegui resolver aquele problema, mas agora um sprite está "subindo", em cima do outro xD.
O carro verde é o do inimiga e o outro é o player.
Os códigos são:
Código:
//Player

//Direção

        if keyboard_check (vk_up) {speed+=0.5}
            if keyboard_check (vk_down) {speed-=0.5}
                if keyboard_check (vk_left) {if speed>1 or speed<-2 {direction+=5}}
                    if keyboard_check (vk_right) {if speed>1 or speed<-2 {direction-=5}}
                        if keyboard_check (vk_space) {speed-=1.5 {if speed<=0  {speed=0}}}
                            if keyboard_check (vk_space) && speed>0 { effect_create_above(ef_smoke,x,y,0,c_gray)}

           
//sprite
image_angle=direction


//limite de velocidade
if speed>=25 && global.colisao=false
{
    speed=25
}
    else
    { if speed>0 && global.colisao=true
        {speed=50}}
     
if speed <=-6
{
speed=-6
}


//vida

if vida <=0
    {
        game_restart()
    }
   
// Reiniciar
if keyboard_check(ord("D")) {action_move_start()}




//inimigo
image_angle=direction
//movimento

if x<0 {if speed>1 or speed<-2 {direction+=5}}
if x>0{if speed>1 or speed<-2 {direction-=5}}
//seguir

   
if distance_to_object(obj_car1)<300 && ataque=true
    {
        move_towards_point(obj_car1.x,obj_car1.y,10);
          if place_meeting(x+1,y+1,obj_car1)
            {
                    obj_car1.vida-=5
                    ataque=false
                    alarm[0]=80
                   
            }
    }
               
   
        else
           
                if distance_to_object(obj_car1)>=300 && place_free(x+5,y+5) && place_empty(x+5,y+5)
                    {
                        speed=5
                            move_bounce_all(true)
                                action_potential_step(obj_lol.x,obj_lol.y,3.5,1)
                                    mp_potential_step(obj_lol.x,obj_lol.y,5,true)
                                   
                   
                    }
            else
                if ataque=false
               
                {
                    if place_free(x+5,y+5)
                        { mp_linear_step_object(x+5,y+5,5,obj_car1)
                        }
                            else
                              if place_free(x-5,y-5)
                                    {
                                    mp_linear_step_object(x-5,y-5,5,obj_car1)
                                    }
                }
                    else
                        if ataque=false && collision_point(x+1,y+10,obj_car1,true,true) or collision_point(x+122,y+61,obj_car1,true,true)
                            {
                                speed=-5
                                }



imagem aqui Very Happy

Dark Holy Devil

Número de Mensagens : 59
Idade : 21
Data de inscrição : 13/06/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.geekhouse.xpg.com

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por willyruduit em Sex 09 Maio 2014, 19:29

Antes Edit:



-EDIT-

Pode tentar algo assim:

Código:
if distance_to_object(obj_car1)<300 and  distance_to_object(obj_car1)>50//Mantem a distancia//
 && ataque=true
        {
            move_towards_point(obj_car1.x,obj_car1.y,10);
              if place_meeting(x+1,y+1,obj_car1)
                {
                        obj_car1.vida-=5
                        ataque=false
                        alarm[0]=80
                      
               }
        }

ou assim:

Código:
if distance_to_object(obj_car1)<300 && ataque=true
        {
            move_towards_point(obj_car1.x,obj_car1.y+50,10);
              if place_meeting(x+1,y+1,obj_car1)
                {
                        obj_car1.vida-=5
                        ataque=false
                        alarm[0]=80
                     
                }
        }


Só um exemplo, mas pode ajudar ou dar uma luz ;)

willyruduit

Ranking : Nota A
Número de Mensagens : 306
Idade : 28
Data de inscrição : 02/08/2013
Notas recebidas : B-B-B-A-A
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por saim em Sab 10 Maio 2014, 12:16

De cara, o FlyAway te resolveu a parada. Move_towards sempre dá esse problema.
Repare, também, no nome da função: move_towards_POINT. Quer dizer, seu objeto mira num ponto e vai, ele não quer saber o que acontece se os objetos se tocarem ou sobreporem. Ele obedece a ordem e a ordem é: "vá!". O lance é fazer com que, ao tocar no objeto, a ordem seja: "pare" ou "alinhe com esse objeto que você tocou". Ou seja lá o que você quer que aconteça.
Existe o evento "collision", pra você colocar essa ordem, mas você pode usar checagens de colisão no step, também, se estiver complicado de usar o evento.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Sprite, obj tremendo.

Mensagem por Conteúdo patrocinado Hoje à(s) 11:45


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