All pastes #23922 Raw Edit

Mine

public text v1 · immutable
#23922 ·published 2005-09-26 07:01 UTC
rendered paste body
class Map_Zoom
  attr_accessor :rate
  def initialize(rate)
    @rate = rate
  end
end

class Sprite_Character
  alias zoom_initialize initialize
  def initialize(viewport, character = nil)
    zoom_initialize(viewport, character)
    self.zoom_x = $map_zoom.rate
    self.zoom_y = $map_zoom.rate
  end
end

class Tilemap
  alias zoom_initialize initialize
  def initialize(viewport)
    zoom_initialize(viewport)
    for i in 0..2
      @map[i].zoom_x = $map_zoom.rate
      @map[i].zoom_y = $map_zoom.rate
    end
  end
end

class Game_Character
  def screen_x
    return (@real_x - $game_map.display_x) / (4.0 / $map_zoom.rate) + (16 * $map_zoom.rate)
  end
  def screen_y
    y = (@real_y - $game_map.display_y + 3) / (4.0 / $map_zoom.rate) + (32 * $map_zoom.rate)
    if @jump_count >= @jump_peak
      n = @jump_count - @jump_peak
    else
      n = @jump_peak - @jump_count
    end
    return y - (@jump_peak * @jump_peak - n * n) / 2
  end
  def screen_z(height = 0)
    if @always_on_top
      return 999
    end
    z = (@real_y - $game_map.display_y + 3) / (4.0 / $map_zoom.rate) + (32 * $map_zoom.rate)
    if @tile_id > 0
      return z + $game_map.priorities[@tile_id] * 32
    else
      return z + ((height > 32) ? 31 : 0)
    end
  end
end

$map_zoom = Map_Zoom.new(0.5)