2016-10-03 10 views
-1

저는 C#으로 게임을 만들고 있어요. 텍스처를 움직이려하고 있어요. 텍스처 이동을 위해 도움과 조언이 필요합니다. 이것은 내가 지금까지 사용해 왔던 것이다. 'float t'라인개체 이동하기 C#

public float InitialTime { get; set; } 

public Vector2 InitialPosition { get; set; } 

public Vector2 InitialVelocity { get; set; } 

public Vector2 Position(GameTime time) 
{ 
    float t = (float)time.TotalGameTime.TotalSeconds = InitialTime; 
    return InitialPosition + t * InitialVelocity; 
} 

, 그것은 변수, 속성 또는 인덱서

을해야, 다음 오류

오류 CS0131 할당의 왼쪽 측면을 온다

+0

해당 줄에'= '기호가 두 개 있다는 것을 의미합니까? – Abion47

+0

네,하지만 왜 아직도 오류가 있는지 확실하지 않습니다. 나는 이것에 관한 비디오를 보았고이 모든 것의 끝 부분에서 내 .png 이미지는 대각선으로 내려가는 것이었다. – neamus

+0

'GameTime'이 보유하고있는 값 중 하나를 변경하려고합니다. 아마도 그렇게해서는 안됩니다. 오류의 원인은'float' 캐스트 때문입니다. 'TotalSeconds'를'InitialTime'으로 설정하고't'를 설정하려고합니다. 왜? – TyCobb

답변

1

귀하의 문제는 이것이다 :

float t = (float)time.TotalGameTime.TotalSeconds = InitialTime; 

할당 작업의 양면에 유효한 구문이 있어야합니다. 두 번째 할당을 분리하려는 경우 다음과 같이 표시됩니다.

(float)time.TotalGameTime.TotalSeconds = InitialTime; 

잘못된 구문 일뿐만 아니라 의미가 거의 없습니다.

캐스팅을 수행하는 이유는 TotalSecondsInitialTime이 두 개이기 때문에 float로 캐스팅해야한다고 생각합니다. 이를 수행하는 데는 두 가지 방법이 있습니다.

당신은 두 개의 서로 다른 라인에 할당을 분할 할 수 있습니다

:

time.TotalGameTime.TotalSeconds = InitialTime; 
float t = (float)time.TotalGameTime.TotalSeconds; 

또는, 당신은 한 줄에 이렇게 주장하는 경우, 귀하의 작업 그룹에 괄호를 사용

float t = (float)(time.TotalGameTime.TotalSeconds = InitialTime); 

편집 :

그럼 다시, 나는 이중 할당이 의도적이라고 가정 해왔다. 당신이 할 수있는 일은 현재 시간 스탬프를 얻기 위해 TotalTime에서 InitialTime을 뺍니다. 이 경우, 그것은 오타의 단순한 수정의 :

float t = (float)(time.TotalGameTime.TotalSeconds - InitialTime); 

(TotalSecondsInitialTime은 복식이있는 경우, 당신은 내가했던 것처럼, float로 작업을 캐스팅 괄호를 사용할 필요가 있습니다.)

+0

대단히 도움을 주셔서 감사합니다 :) – neamus