2012-07-31 1 views
0

저는 DirectX 9.0에서 조금 놀고 있고 화면의 가장자리 (위, 아래, 오른쪽 및 왼쪽)에 맞을 때 물체가 튀어 나오길 원합니다. 스프라이트는 128x128 픽셀의 이미지입니다. 나는 그것이 앞뒤로 튀어 오르게 할 수는 있지만, 이미지가 화면 바깥 쪽이거나 너무 일찍 지나기 전에는 이런 일이 일어나지 않는다. 이것은 객체 자체가 이미지의 중간에 있기 때문에 어쨌든 배경 부분을 "제거"하여 이미지 부분 자체가 화면 가장자리와 충돌하기 전에 프로그램이 스프라이트를 되돌려 보내지 않기 때문입니까? 이미지를 수동으로 수정해야합니까? 자르기처럼이나 뭐 여기스프라이트가 되돌아 오도록 만들기

을 = 내가 함께 일하고 있어요 코드의 일부입니다 : 어떤 도움

if(this->Textures[i].posision.x >= this->_screenWidth) 
{ 
    this->Textures[i].right = false; 
} 
else if(this->Textures[i].posision.x <= 0) 
{ 
    this->Textures[i].right = true; 
} 

if(!this->Textures[i].right) 
    this->Textures[i].posision.x -= 0.3f; 
else 
    this->Textures[i].posision.x += 0.3f; 

감사합니다! 당신이 왼쪽 병동 벡터로 여행을 계획하신다면

답변

0

아니라, 충돌을 규정 할 것 같은 :

if(this->Textures[i].posision.x - 128/2 <= 0) 
{ 
    this->Textures[i].right = true; 
} 

다음, 당신의 position.x 경우 이미지의 센터를 참조 position.y 당신이해야 할 일은 이미지 크기의 절반을 더하거나 뺍니다. 스프라이트가 이미지를 채우지 못하면 일부 이미지를 잘라내야합니다.