원래이 프로젝트에서 최대 속도는 900으로 설정되었습니다. 저는 최대 속도를 2000으로 만들고 싶었습니다.
다음은 코드입니다.
[Editor(typeof(RangeEditor), typeof(UITypeEditor))]
[MinMax(1, 2000)]
[Category("Behavior")]
public int MarqueeSpeed
{
get { return 1000 - tmrRefresh.Interval; }
set
{
if ((1000 - tmrRefresh.Interval) != value)
{
if (1000 - value < 1)
{
value = 2000;
}
if (1000 - value > 2000)
{
value = 1;
}
tmrRefresh.Interval = 1000 - value;
Invalidate();
}
}
}
예외는 다음과 같습니다.
tmrRefresh.Interval = 1000 - value;
속도를 2000으로 설정하면 1000-2000 = -1000이 코드에서 내 질문 이이 줄이나 논리를 처리하는 방법은 무엇입니까? 최대 속도를 2000 또는 20000으로 변경할 수 있도록 라인에서 무엇을 변경해야합니까?
이 코드에는 비선형 속도가 있습니다. 600은 150보다 4 배 빠르지 않고 2 배에 가깝습니다. 그리고 999는 998보다 두 배 빠릅니다. 단, 타이머 정밀도가 방해가 될 것입니다. "속도"가 1000에 가까워 질수록 논리는 무한히 빨라지고 1000 이상의 속도에서는 아무런 의미가 없습니다. 그리고 현실은 약 984 이상의 속도는 효과가 없습니다.
아주 좋은 디자인이 아닙니다. 디스플레이의 프레임 속도로 간격을 일정하게 유지하고 (또는 속도가 느리면 렌더링 시스템이 빠르게 조정할 수 있음) 단계 크기를 변경하는 것이 좋습니다. 어딘가에 분수 위치를 유지해야 할 수도 있습니다. 그러나 그것은 모든 것을 선형으로 만들 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다