RPG Maker Forums

I have taken up a diagonal moving script 

#==============================================================================
# 8 Dir Move                                                  JV Master Script
#------------------------------------------------------------------------------
# Make player move in 8 dir, supports diagonal pattern.
#==============================================================================


module JvScripts
  module Dirs8
    
    Switch = 0               # Switch id for toggle 4/8 dir, 0 if always 8 dir
    DiagonalSuffix = "_di"   # Suffix for 8 dir charsets
                             # 8 dir charsets include in the first char
                             # the orthogonal and in the second the diagonal
  end
end


#==============================================================================
# Game CharacterBase
#==============================================================================
class Game_CharacterBase
  
  def move_diagonal(horz, vert)
    @move_succeed = diagonal_passable?(x, y, horz, vert)
    if @move_succeed
      @x = $game_map.round_x_with_direction(@x, horz)
      @y = $game_map.round_y_with_direction(@y, vert)
      @real_x = $game_map.x_with_direction(@x, reverse_dir(horz))
      @real_y = $game_map.y_with_direction(@y, reverse_dir(vert))
      increase_steps
    end
    if diagonal_charset?
      set_direction_diagonal(horz, vert)
    else
      set_direction(horz) if @direction == reverse_dir(horz)
      set_direction(vert) if @direction == reverse_dir(vert)
    end
  end
  
  def set_direction(d)
    if !@direction_fix && d != 0
      @direction = d
      @character_index = 0 if diagonal_charset?
    end
    @stop_count = 0
  end
  
  def set_direction_diagonal(horz, vert)
    if !@direction_fix && horz != 0 && vert != 0
      if horz == 4 && vert == 2
        @direction = 2
      elsif horz == 4 && vert == 8
        @direction = 4
      elsif horz == 6 && vert == 2
        @direction = 6
      elsif horz == 6 && vert == 8
        @direction = 8
      end
      
      @character_index = 1
    end
    @stop_count = 0
  end
  
  def diagonal_charset?
    true if @character_name.include?(JvScripts::Dirs8::DiagonalSuffix)
  end
end


#==============================================================================
# Game Player
#==============================================================================
class Game_Player < Game_Character
  def move_by_input
    return if !movable? || $game_map.interpreter.running?
    if JvScripts::Dirs8::Switch > 0
      if $game_switches[JvScripts::Dirs8::Switch] == true
        case Input.dir8
        when 2, 4, 6, 8
          move_straight(Input.dir4)
        when 1
          move_diagonal(4, 2)
        when 3
          move_diagonal(6, 2)
        when 7
          move_diagonal(4, 8)
        when 9
          move_diagonal(6, 8)
        end
      else
        move_straight(Input.dir4) if Input.dir4 > 0
      end
    else
      if Input.dir8 > 0
        case Input.dir8
        when 2, 4, 6, 8
          move_straight(Input.dir4)
        when 1
          move_diagonal(4, 2)
        when 3
          move_diagonal(6, 2)
        when 7
          move_diagonal(4, 8)
        when 9
          move_diagonal(6, 8)
        end
      end
    end
  end
end
#==============================================================================



And it works perfectly, except one thing. this: http://i.imgur.com/MFRB1cR.png


If players move diagonally down when next to an impassable tile, their sprite with appear to slightly go over it. It doesn't affect gameplay at all, but I'd really rather have it fixed, as it is rather unattractive. If anyone could tell me how to fix the script, or just make impassable tiles above players, I'd appreciate it.


But I am trying to avoid parallax mapping as much as humanly possible, or picture mapping, or any of the sort. Thanks in advance.

Latest Threads

Latest Profile Posts

Don't forget, aspiring writers: Personality isn't what your characters do, it is WHY they do it.
Hello! I would like to know if there are any pluggings or any way to customize how battles look?
I was thinking that when you start the battle for it to appear the eyes of your characters and opponents sorta like Ace Attorney.
Sadly I don't know how that would be possible so I would be needing help! If you can help me in any way I would really apreciate it!
The biggest debate we need to complete on which is better, Waffles or Pancakes?
rux
How is it going? :D
Day 9 of giveaways! 8 prizes today :D

Forum statistics

Threads
106,049
Messages
1,018,547
Members
137,835
Latest member
yetisteven
Top