Method: CyberarmEngine::Element::Container#update_scroll

Defined in:
lib/cyberarm_engine/ui/elements/container.rb

#update_scrollObject



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/cyberarm_engine/ui/elements/container.rb', line 130

def update_scroll
  dt = window.dt.clamp(0.000001, 0.025)
  @scroll_position.x += (((@scroll_target_position.x - @scroll_position.x) * (@scroll_speed / 4.0) * 0.98) * dt).round
  @scroll_position.y += (((@scroll_target_position.y - @scroll_position.y) * (@scroll_speed / 4.0) * 0.98) * dt).round

  # Scrolled PAST top
  if @scroll_position.y > 0
    @scroll_target_position.y = 0

  # Scrolled PAST bottom
  elsif @scroll_position.y < -max_scroll_height
    @scroll_target_position.y = -max_scroll_height
  end

  if @last_scroll_position != @scroll_position
    @children.each { |child| update_child_element_visibity(child) }
    root.gui_state.request_repaint
  end

  @last_scroll_position.x = @scroll_position.x
  @last_scroll_position.y = @scroll_position.y
end