Corrigir erro no script de pulo[ajuda]

0 Respostas   161 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Naemegashi Yokohuro

  • *
  • Posts: 414
  • Ouros: 374
Tópico criado em: 13/07/2015 às 15:41

Ei, poderiam me ajudar a corrigir esse erro nesse script?
O personagem só consegue pular sobre algum objeto quando tem dois quadrados livres.
Funções do script:
*Se um bloco depois do objeto estiver livre o jogador conseguira pular.
*Se o bloco após o objeto estiver ocupado, o jogador não conseguira pular (entretanto o jogador ficara pulando no mesmo lugar em que esta)
*Caso não seja possível pular para frente, o personagem ira pular no mesmo bloco em que esta (como explicado acima). 
Código: [Selecionar]
class Game_Player < Game_Character
 alias ny_update update
 def update
  ny_update
 if Input.trigger?(:A)
  jump_by_input
 end
end
 def jump_by_input
   case @direction
    when 2
       jump(0,1) and Audio.se_play('Audio/SE/jump1',50,150) if passable?(@x,@y,@direction) && passable?(@x,@y+1,@direction)
       jump(0,1) and Audio.se_play('Audio/SE/jump1',50,150) if passable?(@x,@y,@direction) && !passable?(@x,@y+1,@direction)
       jump(0,0) and Audio.se_play('Audio/SE/jump1',50,150) if !passable?(@x,@y,@direction) && !passable?(@x,@y+1,@direction)
       jump(0,2) and Audio.se_play('Audio/SE/jump1',50,150) if !passable?(@x,@y,@direction) && passable?(@x,@y+2,@direction)
    when 4
       jump(-1,0) and Audio.se_play('Audio/SE/jump1',50,150) if passable?(@x,@y,@direction) && passable?(@x-1,@y,@direction)
       jump(-1,0) and Audio.se_play('Audio/SE/jump1',50,150) if passable?(@x,@y,@direction) && !passable?(@x-1,@y,@direction)
       jump(0,0) and Audio.se_play('Audio/SE/jump1',50,150) if !passable?(@x,@y,@direction) && !passable?(@x-1,@y,@direction)
       jump(-2,0) and Audio.se_play('Audio/SE/jump1',50,150) if !passable?(@x,@y,@direction) && passable?(@x-2,@y,@direction)
    when 6
       jump(1,0) and Audio.se_play('Audio/SE/jump1',50,150) if passable?(@x,@y,@direction) && passable?(@x+1,@y,@direction)
       jump(1,0) and Audio.se_play('Audio/SE/jump1',50,150) if passable?(@x,@y,@direction) && !passable?(@x+1,@y,@direction)
       jump(0,0) and Audio.se_play('Audio/SE/jump1',50,150) if !passable?(@x,@y,@direction) && !passable?(@x+1,@y,@direction)
       jump(2,0) and Audio.se_play('Audio/SE/jump1',50,150) if !passable?(@x,@y,@direction) && passable?(@x+2,@y,@direction)
    when 8
       jump(0,-1) and Audio.se_play('Audio/SE/jump1',50,150) if passable?(@x,@y,@direction) && passable?(@x,@y-1,@direction)
       jump(0,-1) and Audio.se_play('Audio/SE/jump1',50,150) if passable?(@x,@y,@direction) && !passable?(@x,@y-1,@direction)
       jump(0,0) and Audio.se_play('Audio/SE/jump1',50,150)  if !passable?(@x,@y,@direction) && !passable?(@x,@y-1,@direction)
       jump(0,-2) and Audio.se_play('Audio/SE/jump1',50,150) if !passable?(@x,@y,@direction) && passable?(@x,@y-2,@direction)
 end
end
end