Game Development Asked by kite on November 2, 2021
I need to be able to draw one image then have it disappear then draw the next image then disappear.
I can draw 1 image on the window but I can not make it disappear and draw image 2.
Also would be great too with some code examples makes it easier for me to read.
Any ideas here is my code.
HWND g_hWnd; // The application window.
IDirect3D8* g_Dx3D;
IDirect3DDevice8* g_d3dDevice; //The one and only DirectX device
D3DDISPLAYMODE g_d3ddm; //Display Mode Capablity.
ID3DXSprite* g_pSprite; // The sprite instance
IDirect3DTexture8* g_pTexture; // Instance to hold the texture.
D3DXVECTOR2 g_position; // Position of the sprite.
D3DXVECTOR2 g_velocity; // Velocity of the sprite.
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
InitDirect3d();
InitSprite1();
MSG msg;
// Main message loop:
ZeroMemory( &msg, sizeof(msg) );
while( msg.message!=WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
Render();
}
return msg.wParam;
return 0;
}
HRESULT Render()
{
g_d3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
g_d3dDevice->BeginScene();
{
g_pSprite->Begin();
{
g_pSprite->Draw(g_pTexture,NULL,NULL,NULL,0,&g_position,0xFFFFFFFF);
}
g_pSprite->End();
g_pSprite->Begin();
{
g_pSprite->Draw(g_pTexture,NULL,NULL,NULL,0,&g_position,0xFFFFFFFF);
}
g_pSprite->End();
}
g_d3dDevice->EndScene();
g_d3dDevice->Present( NULL, NULL, NULL, NULL );
return S_OK;
}
*
Initialise the DirectX.
*/
HRESULT InitDirect3d()
{
do
{
if(FAILED(InitWindow()))
{
break;
}
g_Dx3D = Direct3DCreate8( D3D_SDK_VERSION );
if(g_Dx3D == NULL)
{
break;
}
if( FAILED( g_Dx3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &g_d3ddm ) ) )
{
break;
}
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = g_d3ddm.Format;
d3dpp.hDeviceWindow = g_hWnd;
d3dpp.BackBufferWidth = WINDOW_WIDTH;
d3dpp.BackBufferHeight = WINDOW_HEIGHT;
d3dpp.BackBufferCount = 1;
if( FAILED( g_Dx3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_d3dDevice ) ) )
{
break;
}
return S_OK;
} while(false);
return E_FAIL;
}
/*
Create the window that we will use to render the image.
*/
HRESULT InitWindow()
{
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, WndProc, 0L, 0L,
GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
"D3D Tutorial", NULL };
RegisterClassEx( &wc );
DWORD dwFrameWidth = GetSystemMetrics( SM_CXSIZEFRAME );
DWORD dwFrameHeight = GetSystemMetrics( SM_CYSIZEFRAME );
DWORD dwMenuHeight = GetSystemMetrics( SM_CYMENU );
DWORD dwCaptionHeight = GetSystemMetrics( SM_CYCAPTION );
DWORD dwWindowWidth = WINDOW_WIDTH + dwFrameWidth * 2;
DWORD dwWindowHeight = WINDOW_HEIGHT + dwFrameHeight * 2 +
dwMenuHeight + dwCaptionHeight;
// Create the application's window.
g_hWnd = CreateWindow( "D3D Tutorial",
"test",
WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_CLIPSIBLINGS|WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT, dwWindowWidth, dwWindowHeight,
GetDesktopWindow(),
NULL,
wc.hInstance,
NULL );
if(g_hWnd == NULL)
{
return(E_FAIL);
}
ShowWindow(g_hWnd, SW_SHOW);
UpdateWindow(g_hWnd);
return(S_OK);
}
/*
Initialise the sprite.
*/
HRESULT InitSprite1()
{
HRESULT logo1;
logo1 = D3DXCreateTextureFromFile(g_d3dDevice,"backgorund.jpeg",&g_pTexture);
g_position.x = 10;
g_position.y = 10;
logo1 = D3DXCreateSprite(g_d3dDevice,&g_pSprite);
return logo1;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
2 Asked on December 12, 2020 by paytopwn
2 Asked on December 3, 2020 by zawada
0 Asked on December 3, 2020 by jacksonba90
2 Asked on November 28, 2020 by trgamer-tr
1 Asked on November 26, 2020 by kaod
0 Asked on November 14, 2020
1 Asked on November 13, 2020 by 1234567890
1 Asked on October 18, 2020 by phoenix
1 Asked on October 11, 2020 by big-t-larrity
1 Asked on October 2, 2020 by ali-nategh
0 Asked on September 26, 2020 by nairou
1 Asked on September 18, 2020 by grimelios
Get help from others!
Recent Answers
Recent Questions
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP