Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    72
  • comments
    38
  • views
    22451

not alot of time

Sign in to follow this  
mozie

119 views

but I did get quite a few things done tonight. I'll just go over them quickly because I'm just do happy.

Sphere to Plane tests are going well. It reports collisions properly. Now I have to solve the time of collision.

Tossed in wireframe toggle with 'w' key. Which caused me to move the set render state block into a funcion so I dont have to invalidate/restore just to whitch into wireframe.

Finished the dynamic plane creation (almost). I still load it as a file, just to grab a material for the object. But it creates a plane and sets its difuse and tex coords. The tex coords worked out well because the way the d3d crate polygon function makes the plane, its rotated a bit. Pic and the vertices are easy to pinpoint with a min/max search.

Thats pretty much it. Here is the new code that creates a plane and gives it tex coords. For all to enjoy.


HRESULT hr = S_OK;
unsigned int indices, verts, poly = 2;
verts = 4;
indices = poly * 3;
LPDIRECT3DVERTEXBUFFER9 vb;
LPD3DXMESH mbuf = NULL;

hr = D3DXCreatePolygon(g_pd3dDevice,5.0f,4, &mbuf, NULL);
hr = D3DXComputeNormals(mbuf, NULL);
LPD3DXMESH mb2;
hr = mbuf->CloneMeshFVF(0,MY_VERT_FVF,g_pd3dDevice,&mb2);
SAFE_RELEASE(mbuf);

verts = mb2->GetNumVertices();
MY_VERT* myVerts = new MY_VERT[verts];

mb2->LockVertexBuffer(0, (void**)&vb);
memcpy(myVerts,vb,verts*sizeof(MY_VERT));
float minx,maxx,miny,maxy;
float tx,ty;
minx = maxx = miny = maxy = 0.5;

for(unsigned int i=0;i{
tx = myVerts.x;
ty = myVerts.y;
if(tx < minx)
minx = tx;
if(tx > maxx)
maxx = tx;
if(ty < miny)
miny = ty;
if(ty > maxy)
maxy = ty;

myVerts.color = 0xFFFFFFFF;
}
myVerts[0].tu = 0.5f;
myVerts[0].tv = 0.5f;

for(unsigned int i=1;i{
tx = myVerts.x;
ty = myVerts.y;
if(tx == minx)
{
myVerts.tu = 0.0f;
myVerts.tv = 1.0f;
}
if(tx == maxx)
{
myVerts.tu = 1.0f;
myVerts.tv = 0.0f;
}
if(ty == miny)
{
myVerts.tv = 0.0f;
myVerts.tu = 0.0f;
}
if(ty == maxy)
{
myVerts.tv = 1.0f;
myVerts.tu = 1.0f;
}
}

memcpy(vb,myVerts,verts*sizeof(MY_VERT));
mb2->UnlockVertexBuffer();

gMeshes->AddMesh(strmesh.c_str(), mb2);
delete[] myVerts;

Direction = Vector3(0.0f,0.0f,1.0f);



Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!