Hello,
I am using the LPD3DXLINE class. I have 2D sprites being rendered and each sprite has a physics object (4 verlets), I am trying to use the LPD3DXLINE class to Draw lines between each physics verlet/vertex.
But when I pass the physics variables (world space) to the Line-> draw(); function it draws the lines in places I don't want (pixel/screen space, I think)
Here is what I mean:
There should be a red line around each sprite, (the bottom left corner is my world's (0,0) so when it draws (0,0) it does it from the top left (the screens (0,0)).
So I assume this is a matrix problem? So do I need to give the LPD3DXLINE my view*world*porj matrix?
The LPD3DXLINE->DrawTransform(); function takes D3DVECTOR3 but the ->Draw(); uses a D3DVECTOR2 so I'm confused what to put here?
Or is it somehing else I'm doing wrong?
Here is the code for drawing the lines (if it helps):
LPD3DXLINE myLine = NULL;
D3DXCreateLine(g_pd3dDevice, &myLine);
myLine->SetWidth(1);
//myLine->SetGLLines(TRUE);
myLine->Begin();
for (int i = 0; i < PhysicsWorld.GetBodyCount(); i++)
{
int size = PhysicsWorld.Bodies[i]->VertexCount;
//int* array=new int[len];
D3DXVECTOR2* Vetecies = new D3DXVECTOR2[size];
for (int j = 0; j < PhysicsWorld.Bodies[i]->VertexCount; j++)
{
Vetecies[j].x = PhysicsWorld.Bodies[i]->Vertices[j]->Position.x;
Vetecies[j].y = PhysicsWorld.Bodies[i]->Vertices[j]->Position.y;
}
//myLine->DrawTransform(Vetecies, PhysicsWorld.Bodies[i]->VertexCount, ,
myLine->Draw( Vetecies, PhysicsWorld.Bodies[i]->VertexCount, D3DCOLOR_ARGB( 255, 255, 0, 0 ));
delete Vetecies;
Vetecies = NULL;
}
myLine->End();
myLine->Release();
Thanks