Le Van

  • Content count

  • Joined

  • Last visited

Community Reputation

116 Neutral

About Le Van

  • Rank
  1. create 2 index buffer

    the article say "Make 2 buffers", can u post the code, i can't imagine it . If there is 1 buffer set. Thankyou so much, i have tried but its all blank screen. 
  2. create 2 index buffer

    thankyou . d3d11DevCon->IASetIndexBuffer( squareIndexBuffer1, DXGI_FORMAT_R32_UINT, 0);     d3d11DevCon->IASetIndexBuffer( squareIndexBuffer2, DXGI_FORMAT_R32_UINT, 0);   the second index buffer set  to the IA stage require the offset, how can we get the size of the first buffer ?
  3. hi there, ive just read the following tutorial http://www.braynzarsoft.net/index.php?p=D3D11INDICES And i started do the exercise 1. Make 2 index buffer.    Vertex v[] = { Vertex( -0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f ), Vertex( -0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f ), Vertex( 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f ), Vertex( 0.5f, -0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f ), Vertex( 0.0f, 1.0f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f ), }; DWORD indices1[] = { 0, 1, 2, 0, 2, 3, }; DWORD indices2[] = { 1, 2, 4 }; D3D11_BUFFER_DESC indexBufferDesc; ZeroMemory( &indexBufferDesc, sizeof(indexBufferDesc) ); indexBufferDesc.Usage = D3D11_USAGE_DEFAULT; indexBufferDesc.ByteWidth = sizeof(DWORD) * 2 * 3; indexBufferDesc.BindFlags = D3D11_BIND_INDEX_BUFFER; indexBufferDesc.CPUAccessFlags = 0; indexBufferDesc.MiscFlags = 0; D3D11_SUBRESOURCE_DATA iinitData; //D3D11_SUBRESOURCE_DATA iinitData2; iinitData.pSysMem = indices1; d3d11Device->CreateBuffer(&indexBufferDesc, &iinitData, &squareIndexBuffer1); indexBufferDesc.Usage = D3D11_USAGE_DEFAULT; indexBufferDesc.ByteWidth = sizeof(DWORD) * 1 * 3; indexBufferDesc.BindFlags = D3D11_BIND_INDEX_BUFFER; indexBufferDesc.CPUAccessFlags = 0; indexBufferDesc.MiscFlags = 0; iinitData.pSysMem = indices2; d3d11Device->CreateBuffer(&indexBufferDesc, &iinitData, &squareIndexBuffer2); d3d11DevCon->IASetIndexBuffer( squareIndexBuffer1, DXGI_FORMAT_R32_UINT, 0); d3d11DevCon->IASetIndexBuffer( squareIndexBuffer2, DXGI_FORMAT_R32_UINT, 0);   And the questions are: 1.i use the same D3D11_BUFFER_DESC and D3D11_SUBRESOURCE_DATA to create 2 Index buffer ( adjust the fied of D3D11_BUFFER_DESC ) Is it possible? 2. the function d3d11DevCon->IASetIndexBuffer(). i so confuse about the third parametter, how can we know the offset? Thankyou   
  4. thank for reading my topic. When i create object of myTank in main function, and render it. All things work. but when i create object of TankGame in main function( it include instance of mytTank, it call constructor of m_player, and in debug mode, it goes to the end of TankGame constructor ( in this case, it created myTank object ),it raise "error Run-Time Check Failure #0" here script is an singleton class, and i tested it, it worked. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] [CODE] #ifndef TANK_SCRIPTOR #define TANK_SCRIPTOR #pragma warning (disable:4786) //----------------------------------------------------------------------------- // // Name: Raven_Scriptor // // Author: Mat Buckland (www.ai-junkie.com) // // Desc: A Singleton Scriptor class for use with the Raven project //----------------------------------------------------------------------------- #include <script\Scriptor.h> #define script Tank_Scriptor::Instance() class Tank_Scriptor : public Scriptor { private: Tank_Scriptor(); //copy ctor and assignment should be private Tank_Scriptor(const Tank_Scriptor&); Tank_Scriptor& operator=(const Tank_Scriptor&); public: static Tank_Scriptor* Instance(); }; #endif [/CODE]
  5. here is sir [CODE] #include "tankGame.h" #include "myTank.h" //#include "Tank_SteeringBehavior.h" #include "Tank_Scriptor.h" #include <allegro5\allegro.h> #include <allegro5\allegro_primitives.h> #include <allegro5\allegro_image.h> myTank :: myTank(TankGame* tank_game, Vector2D pos, ALLEGRO_DISPLAY* display) : MovingEntity(pos, script->GetFloat("Player_Scale"), Vector2D(0,0), script->GetFloat("Player_MaxSpeed"), Vector2D(1,0), script->GetFloat("Player_Mass"), Vector2D(script->GetFloat("Player_Scale"),script->GetFloat("Player_Scale")), script->GetFloat("Player_MaxHeadTurnRate"), script->GetFloat("Player_MaxForce")) { m_tankGame = tank_game; m_tankBody = new tankBody(); m_tankBarrel = new tankBarrel(); m_bImage = al_load_bitmap("Tankz_sprite.png"); // the entry image int h = al_get_bitmap_height(m_bImage); int w = al_get_bitmap_width(m_bImage); ALLEGRO_BITMAP* tempImage; tempImage = al_create_bitmap(w/5, h); m_tankBody->image[0] = al_create_bitmap(w/5, h); m_tankBody->image[1] = al_create_bitmap(w/5, h); m_tankBarrel->image = al_create_bitmap(w/5, h); al_set_target_bitmap(m_tankBody->image[0]); al_draw_bitmap_region(m_bImage,0,0,40,40,0,0,1); al_draw_tinted_bitmap_region(m_bImage, al_map_rgba_f(0.0f,1.0f,0.0f,0.5f), 80.0f, 0.0f, 40.0f, 40.0f, 0.0f, 0.0f, 1); al_set_target_bitmap(m_tankBody->image[1]); al_draw_bitmap_region(m_bImage,40,0,40,40,0,0,1); al_draw_tinted_bitmap_region(m_bImage, al_map_rgba_f(0.0f,1.0f,0.0f,0.5f), 80.0f, 0.0f, 40.0f, 40.0f, 0.0f, 0.0f, 1); al_set_target_bitmap(m_tankBarrel->image); al_draw_bitmap_region(m_bImage,120,0,40,40,0,0,1); al_draw_tinted_bitmap_region(m_bImage, al_map_rgba_f(0.0f,1.0f,0.8f,0.5f), 120.0f, 0.0f, 40.0f, 40.0f, 0.0f, 0.0f, 1); al_set_target_bitmap(al_get_backbuffer(display)); //al_draw_tinted_bitmap( //m_tankBody->position = Pos(); m_tankBody->center = Vector2D(20.0f, 20.0f); //MovingEntity(pos, Vector2D(0,0), script->get } myTank :: ~myTank() { } void myTank :: Update() { } void myTank :: UpdateMovement() { // Vector2D force = m_pSteering->Calculate(); //if no steering force is produced decelerate the player by applying a //braking force //if (m_pSteering->Force().isZero()) //{ // const double BrakingRate = 0.8; // m_vVelocity = m_vVelocity * BrakingRate; //} //calculate the acceleration Vector2D accel = m_V2Dforce / m_dMass; //update the velocity m_vVelocity += accel; //make sure vehicle does not exceed maximum velocity m_vVelocity.Truncate(m_dMaxSpeed); //update the position m_vPosition += m_vVelocity; //if the vehicle has a non zero velocity the heading and side vectors must //be updated if (!m_vVelocity.isZero()) { m_vHeading = Vec2DNormalize(m_vVelocity); m_vSide = m_vHeading.Perp(); } } void myTank :: Render() { al_draw_bitmap(m_tankBody->image[0], Pos().x, Pos().y, 0); al_draw_bitmap(m_tankBarrel->image, Pos().x, Pos().y, 0); } [/CODE]
  6. Hello guys, i have problem with my code tankGame.h [CODE] class myTank; class TankSteering; //enum KEYS{ W, S, A, D,J,K}; class TankGame{ public: TankGame(ALLEGRO_DISPLAY* display); ~TankGame(); myTank* m_player; TankSteering* m_TankSteering; void Update(); void Render(); }; [/CODE] myTank.h [code] class TankGame; class TankSteering; class myTank : public MovingEntity { public: myTank(TankGame* tank_game, Vector2D pos, ALLEGRO_DISPLAY* display); ~myTank(); void Update(); void Render(); ....blah.... private: ....blah.... TankSteering* m_pSteering; TankGame* m_tankGame; }; [/code] tankSteering.h [code] class myTank; class TankGame; class TankSteering { public: TankSteering(myTank* player, TankGame* tankGame); //TankSteering(); ~TankSteering(); Vector2D Calculate(); Vector2D Player_Steering(); private: TankGame* m_pTankGame; float m_fMaxForce; myTank* m_tplayer; float m_fDesRateForce; }; [/code] TankGame.cpp [code] TankGame::TankGame(ALLEGRO_DISPLAY* display) { m_player = new myTank(this, Vector2D(200.0f, 200.0f), display); //m_TankSteering = new TankSteering(this); for(int i = 0; i < 6; i++) { keys[i] = false; } } blah blah [/code] the thing is, when i remove the line "m_player = new myTank(this, Vector2D(200.0f, 200.0f), display);" in my tankGame, it work. But when i add this line in TankGame constructor, error "error Run-Time Check Failure #0" happened. when i create an object of myTank in mainfunction, it worked. Someone can help me [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]. Thank in advance