Sha256: 433d18ea5bbd60538e096688c0a92a7f190f1fa529e7163327523c16456121d1

Contents?: true

Size: 1.53 KB

Versions: 13

Compression:

Stored size: 1.53 KB

Contents

# frozen_string_literal: true

class ProconBypassMan::Procon::AnalogStickManipulator
  attr_accessor :manipulated_abs_x, :manipulated_abs_y

  def initialize(binary, method: )
    analog_stick = ProconBypassMan::Procon::AnalogStick.new(binary: binary)

    if method =~ /tilt_left_stick_(completely)_to_(left|right)/
      power_level = $1
      direction = $2

      case direction
      when 'left'
        self.manipulated_abs_x = 400
        # yを引き継ぐとタンサンボムの溜まりが悪くなったので固定値を入れる
        self.manipulated_abs_y = analog_stick.abs_y
        # self.manipulated_abs_y = 1808
      when 'right'
        self.manipulated_abs_x = 3400
        self.manipulated_abs_y = 1808
      end

      return
    end

    if method =~ /tilt_left_stick_(completely)_to_(\d+)deg/
      power_level = $1
      arc_degree = $2.to_i
      syahen = 1800 # 最大まで傾けた状態
      neutral_position = ProconBypassMan::ButtonsSettingConfiguration.instance.neutral_position
      self.manipulated_abs_x = (syahen * Math.cos(arc_degree * Math::PI / 180)).to_i - neutral_position.x
      self.manipulated_abs_y = (syahen * Math.sin(arc_degree * Math::PI / 180)).to_i - neutral_position.y
      return
    end

    warn "error stick manipulator"
    self.manipulated_abs_x = analog_stick.abs_x
    self.manipulated_abs_y = analog_stick.abs_y
  end


  # @return [String]
  def to_binary
    ProconBypassMan::AnalogStickPosition.new(
      x: self.manipulated_abs_x,
      y: self.manipulated_abs_y,
    ).to_binary
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
procon_bypass_man-0.3.11 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.10 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.9 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.8.1 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.8 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.7 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.6 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.5 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.4 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.3.1 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.3 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.2 lib/procon_bypass_man/procon/analog_stick_manipulator.rb
procon_bypass_man-0.3.1 lib/procon_bypass_man/procon/analog_stick_manipulator.rb