C#で一種のクランプを行う必要があります。数値が最大値に達するとゼロに戻り、最小値に達すると最大値に戻ります。テクスチャを並べて表示したいので、これを行う必要があります。
2595 次
5 に答える
7
必要なのは Modulus 演算子です (必要に応じて負の数を処理するようにわずかに調整されています)。
public static int Modulas(int input, int divisor)
{
return (input % divisor + divisor) % divisor;
}
于 2013-01-15T18:43:30.227 に答える
3
モジュロはあなたの友達です:
myVal = (myVal++) % (maxValue+1);
たとえば、最大値が 4 の場合:
0 % 5 = 0
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
6 % 5 = 1
....
于 2013-01-15T18:45:41.227 に答える
2
具体的にどこに問題がありましたか?
それはかなり簡単なようです:
int number = 4; int maxNum = 20; int minNum = 5;
number = number > maxNum ? 0 : number < minNum ? maxNum : number;
// 20
于 2013-01-15T18:42:32.460 に答える
1
わかりました、解決策を見つけました
private float Wrap(float val, float min, float max)
{
val = val - (float)Math.Round((val - min) / (max - min)) * (max - min);
if (val < 0)
val = val + max - min;
return val;
}
于 2013-01-15T19:58:54.733 に答える
0
private const Int32 c_ClampMaximum = X;
private Int32 m_Clamp;
public Int32 Clamp
{
get { return m_Clamp; }
set
{
if (value >= c_ClampMaximum)
{
m_Clamp = 0;
while (value > c_ClampMaximum)
value -= c_ClampMaximum;
}
m_Clamp = value;
}
}
于 2013-01-15T18:44:01.833 に答える