0
Windows 전화 게임을하고 있는데 스프라이트 이동에 어려움이 있습니다. 내가 원했던 것은 스프라이트가 화면에 터치 된 위치로 점차적으로 이동하도록하는 것입니다. 내가 할 수있는 모든 순간은 스프라이트를 즉시 터치 위치로 점프하거나 터치를 누르고 있으면 터치 위치로 이동하는 것입니다. 위치를 터치 점프에 대한XNA Windows Phone 7 스프라이트 이동
코드 : 터치가 개최되는 동안
TouchCollection touchCollection = TouchPanel.GetState();
foreach (TouchLocation tl in touchCollection)
{
if ((tl.State == TouchLocationState.Pressed)
|| (tl.State == TouchLocationState.Moved))
{
Vector2 newPos = new Vector2(tl.Position.X,tl.Position.Y);
if (position != newPos)
{
while (position.X < newPos.X)
{
position.X += (float)theGameTime.ElapsedGameTime.Milliseconds/10.0f * spriteDirectionRight;
}
}
}
}
코드가 점차를 따라 이동 :
TouchCollection touchCollection = TouchPanel.GetState();
foreach (TouchLocation tl in touchCollection)
{
if ((tl.State == TouchLocationState.Pressed)
|| (tl.State == TouchLocationState.Moved))
{
Vector2 newPos = new Vector2(tl.Position.X,tl.Position.Y);
if (position != newPos)
{
position.X += (float)theGameTime.ElapsedGameTime.Milliseconds/10.0f * spriteDirectionRight;
}
}
}
다음은 Sprite 클래스의 업데이트() 메소드에 있습니다.
"타입의 피연산자에 적용 할 수 없습니다 연산자 '*' '무효'와 '부동'"그것의 저를주는 이 Error for Vector2 distanceToMove = delta.Normalize() * (float) theGameTime.ElapsedGameTime.Milliseconds * 10f; " –
죄송합니다. Normalize가 기존 Vector2를 수정하고 하나도 반환하지 않는다는 것을 잊어 버렸습니다. 나는 그것을 실행하기 위해 갔다,이 하나는 테스트를 마쳤다. –
그건 완벽하게 작동합니다, 고마워요. –