🤔 Para Refletir : "De pixel a pixel, os tiles compõem o Mapa." - Core32

[VX Ace]Movimento Diagonal Automático para Escadas e Rampas

Membro Membro
Postagens
8
Bravecoins
22
Este script é simples: Ele gera o movimento diagonal de escadas e rampas automáticamente, sem a necessidade de se configurar scripts. Basta configurar uma região ou um tag de terreno no mapa/tileset para cada direção e utilizar... Mais informações no próprio script...

Screenshots
33yp1yw.png

t62yah.png



Código:
#~ Este script tem a simples função de simular o movimento de escadas, rampas e,
#~ declíves, subidas e descidas em geral, sem a necessidade de se utilizar qualquer 
#~ evento ou configuração.
#~ Nas linhas 12, 13 e 14, setam-se as configurações do script, escolha se irá utilizar
#~ as regiões ou os tags de terreno para a configuração ( recomendo que utilize as 
#~ regiões e faça as configurações diretamente no editor de mapas ).

#~ Disponível para projetos comerciais.
#~ Sem necessidade de créditos


TERRAIN_LOOKUP = false # true for terrain tags, false for region ids
UPLR = 62 # Terreno ou Região para mover acima quando vier pela direita ( / )
DOWNLR = 63 # Terreno ou Região para mover abaixo quando vier pela direita ( \ )

#--------------------------------------------------------------------
#----------------------Fim da Parte Editável -------------------------
#----------------------------------------------------------------------

class Game_CharacterBase
  alias spl_move_straight move_straight
  def diagonal_override(d)
    this_override = TERRAIN_LOOKUP ? $game_map.terrain_tag(@x, @y) : 
      $game_map.region_id(@x, @y)
    new_x = $game_map.round_x_with_direction(@x, d)
    new_y = $game_map.round_y_with_direction(@y, d)
    new_override = TERRAIN_LOOKUP ? $game_map.terrain_tag(new_x, new_y) : 
      $game_map.region_id(new_x, new_y)
      
    if (new_override == UPLR && d == 6)
      return 6, 8
    elsif (new_override == DOWNLR && d == 4)
      return 4, 8
    elsif (this_override == UPLR && d == 4)
      return 4, 2
    elsif (this_override == DOWNLR && d == 6)
      return 6, 2
    else
      return 0, 0
    end
  end
  #--------------------------------------------------------------------------
  def move_straight(d, turn_ok = true)
    ovh, ovv = diagonal_override(d)
    if ovh != 0 && ovv != 0
      move_diagonal(ovh, ovv)
    else
      spl_move_straight(d, turn_ok)
    end
  end
end

Sem necessidade de dar créditos ao uso, pode ser utilizado, modificado e distribuido livremente...​
 
Meu deus, cara :Kawai_Desu:
Eu sempre via o Final Fantasy VI e me perguntava: "Como eles fazem para fazer o personagem subir a escada sem parece que ele está somente fazendo um passo diagonal bugado?"

Isso faz muito sentido e acredito que ajude bastante gente :^^':
+1 like
 
Voltar
Topo