昨日、一定の入力値があったときに反応する処理について書いたが、スティックの入力では−1から+1の値を取ることがある。そこでマイナス方向についても考慮した方法。
#include <cmath> float input; // 入力 -1->1 float min; // 最小値 0->1 float absInput = abs(input); float absResult = max( (absInput-min) / (1.0f-min), 0.0f ); float result = std::copysign(absResult, input);
入力値の絶対値を取って求め、copysignを使って元の符号を付けている。