• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

JeZ-l-Lee

Members
  • Content count

    87
  • Joined

  • Last visited

Community Reputation

135 Neutral

About JeZ-l-Lee

  • Rank
    Member
  1. Hi,   We wanted to get feedback on our awesome new cross-platform video game: "TetriAttack Armageddon[TM]".   You can play the game in your Internet browser at below URL link: http://opentetris.com/files/TAA/HTML5/index.html (there is also button on title screen to visit the official Google Play page)   Game has been on Google Play for about a month and has 1,000+ installs and 40+ 5-Star reviews...   Game is 100% free with no in-game advertisements or in-game purchasing. Thanks!   JeZxLee  
  2. Hi, We are very close to officially releasing Beta1 of our awesome cross-platform game called: "TetriAttack Armageddon" for Windows, HTML5, Android, and XBox One. We were hoping some people here could help test it now? P.C. Windows: http://16bitsoft.com/files/TAA/files/TetrisAttackArmageddon.zip HTML5 Internet: http://16bitsoft.com/files/TAA/HTML5/index.html Android: http://16bitsoft.com/files/TAA/files/TetrisAttackArmageddon.apk XBox One: Coming Soon! Thank you in advance!  
  3.   www.OpenTetris.com
  4. JeZxLee's"TetriAttack 3":Open-Source Cross-Platform!   Hi, My development team and I are proud to release our new open-source cross-platform puzzle game called "TetriAttack 3". This is a nearly completed "Release Candidate" and we were hoping some of the people here could help test it. After the conclusion of testing, the game will be released to OpenPandora Linux handheld console computer. If you would like to help out then please download, decompress and play the ZIP file located at the below URL link: TA3-WinLinux-ReleaseCandidate.zip The ZIP contains both Windows and Linux versions(a makefile is included to build executable on any Linux distro) Game Requirements: - Windows XP/Vista/7/8 32Bit/64Bit desktop or notebook - Any Linux 32Bit/64Bit desktop or notebook * To build on Linux you will need the following: - G++ - SDL 1.2 + dev - SDL_Image 1.2 + dev - SDL_Mixer 1.2 + dev - SDL_TTF 1.2 + dev - OpenGL for good performance Thanks in advance! JeZxLee 16BitSoft Inc. Video Game Design Studio www.16BitSoft.com  
  5. JeZxLee's "Pixel Artist 2" - Open-Source Cross-Platform!   Hi,    My team and I are proud to announce the Beta1 release of our new SDL1 game: "Pixel Artist 2".  Game is 100% open-source cross-platform and runs on ANY Windws(R) or Linux desktop or notebook.  (MakeFile is included to build game on any Linux O.S.)    Game Idea is 100% unique and not copied from any other video game ever made.    Click below URL link to download the complete project with source code: http://16bitsoft.com/Files/PA2/WinLinux/Beta/PixelArtist2-WinLinux-Beta1.zip   At the conclusion of Beta testing the game will be ported to Google Android O.S. smartphones and tablets  using licensed YoYo Games "GameMaker: Studio".    Please help test our new game!    Some Screenshots:   _________________ JeZ+Lee  JessePalser <AT> Gmail <DOT> com  16BitSoft Inc. Video Game Design Studio  www.16BitSoft.com
  6. Hi,   I've been trying without success to do the following: (1) Create a DirectX 9 texture (2) Render a loaded Button.png texture onto the created DirectX 9 texture (3) Render TTF text on top of the rendered Button.png texture on the created DirectX 9 texture (4) Render the new button with text DirectX 9 texture to the screen   Code is below, any help would be greatly appreciated... (Sprites[1000] is the loaded Button.png texture)   JeZ+Lee char buttonText[256]; if (index > 1000 && index < 1008) { LPDIRECT3DSURFACE9 backBuffer = NULL; DXDevice->GetRenderTarget(0, &backBuffer); DXDevice->CreateTexture(Sprites[1000].OriginalWidth, Sprites[1000].OriginalHeight, 0, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &Sprites[index].Texture, NULL); LPDIRECT3DSURFACE9 pRenderSurface = NULL; Sprites[index].Texture->GetSurfaceLevel(0, &pRenderSurface); DXDevice->SetRenderTarget(0, pRenderSurface); if (index == 1001) strcpy_s(buttonText, "START!"); if (index == 1002) strcpy_s(buttonText, "Options"); if (index == 1003) strcpy_s(buttonText, "How To Play"); if (index == 1004) strcpy_s(buttonText, "High Scores"); if (index == 1005) strcpy_s(buttonText, "About"); if (index == 1006) strcpy_s(buttonText, "Exit"); if (index == 1007) strcpy_s(buttonText, "Back"); DXDevice->BeginScene(); DXDevice->SetTexture(0, Sprites[index].Texture); D3DXMATRIX matProj; D3DXMatrixPerspectiveFovLH( &matProj, D3DXToRadian( 45.0f ), (float)Sprites[1000].OriginalWidth / (float)Sprites[1000].OriginalHeight, 0.1f, 100.0f ); DXDevice->SetTransform( D3DTS_PROJECTION, &matProj ); Sprites[1000].DXSprite->Begin(D3DXSPRITE_ALPHABLEND); DXDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_ANISOTROPIC); DXDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC); DXDevice->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_ANISOTROPIC); RECT spriteRect; spriteRect.top = 0; spriteRect.left = 0; spriteRect.bottom = Sprites[1000].TextureHeight; spriteRect.right = Sprites[1000].TextureWidth; D3DXVECTOR3 spritePosition; spritePosition.x = 0.0f; spritePosition.y = 0.0f; spritePosition.z = 0.0f; D3DXMATRIX matrixSpriteTransform; D3DXVECTOR2 screenPostion = D3DXVECTOR2(0, 0); float rotation = 0.0f; D3DXVECTOR2 scaling(1.0f, 1.0f); D3DXMatrixTransformation2D(&matrixSpriteTransform, NULL, 0.0, &scaling, NULL, rotation, &screenPostion); Sprites[1000].DXSprite->SetTransform(&matrixSpriteTransform); Sprites[1000].DXSprite->Draw( Sprites[1000].Texture, &spriteRect, NULL, &spritePosition, D3DCOLOR_RGBA(Sprites[1000].RedHue, Sprites[1000].GreenHue, Sprites[1000].BlueHue, Sprites[1000].Transparency) ); Sprites[1000].DXSprite->End(); D3DXMATRIX matrixFixTextAfterSpriteDrawing; D3DXMatrixTransformation2D(&matrixFixTextAfterSpriteDrawing, NULL, NULL, NULL, NULL, NULL, NULL); D3DXMatrixIdentity(&matrixFixTextAfterSpriteDrawing); RECT rect, textSize; int posX, posY; Font[0]->DrawTextA( NULL, buttonText, -1, &textSize, DT_CALCRECT, D3DCOLOR_RGBA(255, 255, 255, 255) ); posX = (Sprites[1000].OriginalWidth / 2) - (textSize.right / 2); posY = (Sprites[1000].OriginalHeight / 2); for (int screenY = -2; screenY < 3; screenY++) { for (int screenX = -2; screenX < 3; screenX++) { SetRect( &rect, posX+screenX, posY+screenY, 0, 0 ); if (screenY != 0 && screenX != 0) Font[0]->DrawTextA(NULL, buttonText, -1, &rect, DT_NOCLIP, D3DCOLOR_RGBA(100, 100, 100, 255) ); } } SetRect( &rect, posX, posY, 0, 0 ); Font[0]->DrawTextA( NULL, buttonText, -1, &rect, DT_NOCLIP, D3DCOLOR_RGBA(255, 255, 255, 255) ); DXDevice->EndScene(); pRenderSurface->Release(); DXDevice->SetRenderTarget(0, backBuffer); D3DXMatrixPerspectiveFovLH( &matProj, D3DXToRadian( 45.0f ), 800.0f / 480.0f, 0.1f, 100.0f ); DXDevice->SetTransform( D3DTS_PROJECTION, &matProj ); }
  7. Hi,   I am trying without success to draw TTF text onto a DirectX 9 texture. I am using the DirectX 9 "DrawTextA()" function.   Please look at the below code and tell me what is wrong with it. (focus on the source at the bottom)   Thanks in advance.   JeZ+Lee bool Visuals::LoadSpritesIntoMemoryAndInitialize(void) { HRESULT result; char filePath[256]; strcpy_s(filePath, "~\0"); for (int index = 0; index < NumberOfSprites; index++) { switch(index) { case 0: strcpy_s(filePath, "Data/Visuals/Screen-Fade-Black-Box.png"); break; case 5: strcpy_s(filePath, "Data/Visuals/16BitSoft-Logo.png"); break; case 6: strcpy_s(filePath, "Data/Visuals/Title-BG.png"); break; case 7: strcpy_s(filePath, "Data/Visuals/TC5-Logo.png"); break; case 1001: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1002: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1003: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1004: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1005: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1006: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1007: strcpy_s(filePath, "Data/Visuals/Button.png"); break; default: strcpy_s(filePath, "~"); break; } strcat_s(filePath, "\0"); if (filePath[0] != '~') { D3DXIMAGE_INFO imageInfo; result = D3DXGetImageInfoFromFileA(filePath, &imageInfo); // if FAILED (hResult){ // return false; // } D3DXCreateTextureFromFileExA(DXDevice, filePath, imageInfo.Width, imageInfo.Height, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &Sprites[index].Texture); result = D3DXCreateSprite(DXDevice, &Sprites[index].DXSprite); Sprites[index].ScreenX = 400.0f; Sprites[index].ScreenY = 240.0f; Sprites[index].ScaleX = 1.0f; Sprites[index].ScaleY = 1.0f; Sprites[index].RotationDegree = 0.0f; Sprites[index].RedHue = 255; Sprites[index].GreenHue = 255; Sprites[index].BlueHue = 255; Sprites[index].Transparency = 255; Sprites[index].Smooth = true; Sprites[index].FlipX = false; Sprites[index].FlipY = false; Sprites[index].OriginalWidth = imageInfo.Width; Sprites[index].OriginalHeight = imageInfo.Height; D3DSURFACE_DESC textureInfo; Sprites[index].Texture->GetLevelDesc(0, &textureInfo); Sprites[index].TextureWidth = textureInfo.Width; Sprites[index].TextureHeight = textureInfo.Height; Sprites[index].AnimationTimer = -1.0f; if (index > 1000 && index < 1008) { LPDIRECT3DSURFACE9 pRenderSurface = NULL; Sprites[index].Texture->GetSurfaceLevel(0, &pRenderSurface); DXDevice->SetRenderTarget(0, pRenderSurface); DXDevice->BeginScene(); DXDevice->SetTexture(0, Sprites[index].Texture); RECT rect, textSize; int posX, posY; Font[0]->DrawTextA( NULL, "START!", -1, &textSize, DT_CALCRECT, D3DCOLOR_RGBA(255, 255, 255, 255) ); posX = (Sprites[index].TextureWidth / 2) - (textSize.right / 2) - 3; posY = Sprites[index].TextureHeight / 2; for (int screenY = -2; screenY < 3; screenY++) { for (int screenX = -2; screenX < 3; screenX++) { SetRect( &rect, posX+screenX, posY+screenY, 0, 0 ); if (screenY != 0 && screenX != 0) Font[0]->DrawTextA(NULL, "START!", -1, &rect, DT_NOCLIP, D3DCOLOR_RGBA(100, 100, 100, 255) ); } } SetRect( &rect, posX, posY, 0, 0 ); Font[0]->DrawTextA( NULL, "START!", -1, &rect, DT_NOCLIP, D3DCOLOR_RGBA(255, 255, 255, 255) ); DXDevice->EndScene(); } } } return(true); }
  8. Hi,   I am working on a DirectX 9.0c 2D game engine now. I am currently designing the interface core.   My question is: Can I draw TTF text onto a DirectX Sprite? Imagine that I have a single blank button PNG image. And I load it 7 times and draw the following texts on it: [START!] [Options] [How To Play] [High Scores] [About] [Exit] [Back]   The 7 button PNG images are loaded as DirectX Sprites.   Any help would be appreciated! Thank you!   JeZ+Lee   //------------------------------------------------------------------------------------------------------------------------------- bool Visuals::LoadSpritesIntoMemoryAndInitialize(void) { HRESULT result; char filePath[256]; strcpy_s(filePath, "~\0"); for (int index = 0; index < NumberOfSprites; index++) { switch(index) { case 0: strcpy_s(filePath, "Data/Visuals/Screen-Fade-Black-Box.png"); break; case 5: strcpy_s(filePath, "Data/Visuals/16BitSoft-Logo.png"); break; case 6: strcpy_s(filePath, "Data/Visuals/Title-BG.png"); break; case 7: strcpy_s(filePath, "Data/Visuals/TC5-Logo.png"); break; case 1001: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1002: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1003: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1004: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1005: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1006: strcpy_s(filePath, "Data/Visuals/Button.png"); break; case 1007: strcpy_s(filePath, "Data/Visuals/Button.png"); break; default: strcpy_s(filePath, "~"); break; } strcat_s(filePath, "\0"); if (filePath[0] != '~') { D3DXIMAGE_INFO imageInfo; result = D3DXGetImageInfoFromFileA(filePath, &imageInfo); // if FAILED (hResult){ // return false; // } D3DXCreateTextureFromFileExA(DXDevice, filePath, imageInfo.Width, imageInfo.Height, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &Sprites[index].Texture); result = D3DXCreateSprite(DXDevice, &Sprites[index].DXSprite); Sprites[index].ScreenX = 400.0f; Sprites[index].ScreenY = 240.0f; Sprites[index].ScaleX = 1.0f; Sprites[index].ScaleY = 1.0f; Sprites[index].RotationDegree = 0.0f; Sprites[index].RedHue = 255; Sprites[index].GreenHue = 255; Sprites[index].BlueHue = 255; Sprites[index].Transparency = 255; Sprites[index].Smooth = true; Sprites[index].FlipX = false; Sprites[index].FlipY = false; Sprites[index].OriginalWidth = imageInfo.Width; Sprites[index].OriginalHeight = imageInfo.Height; D3DSURFACE_DESC textureInfo; Sprites[index].Texture->GetLevelDesc(0, &textureInfo); Sprites[index].TextureWidth = textureInfo.Width; Sprites[index].TextureHeight = textureInfo.Height; Sprites[index].AnimationTimer = -1.0f; if (index > 1000 && index < 1008) { RECT rect, textSize; int posX, posY; textSize.top = 0; textSize.left = 0; textSize.right = textureInfo.Width; textSize.bottom = textureInfo.Height; D3DXMATRIX matrixFixTextAfterSpriteDrawing; D3DXMatrixTransformation2D(&matrixFixTextAfterSpriteDrawing, NULL, NULL, NULL, NULL, NULL, NULL); D3DXMatrixIdentity(&matrixFixTextAfterSpriteDrawing); Font[0]->DrawTextA( NULL, "START!", -1, &textSize, DT_CALCRECT, D3DCOLOR_RGBA(255, 255, 255, 255) ); posX = (textureInfo.Width / 2) - (textSize.right / 2) - 3; posY = textureInfo.Height / 2; for (int screenY = -2; screenY < 3; screenY++) { for (int screenX = -2; screenX < 3; screenX++) { SetRect( &rect, posX+screenX, posY+screenY, 0, 0 ); if (screenY != 0 && screenX != 0) Font[0]->DrawTextA( Sprites[index].DXSprite, "START!", -1, &rect, DT_NOCLIP, D3DCOLOR_RGBA(100, 100, 100, 255) ); } } SetRect( &rect, posX, posY, 0, 0 ); Font[0]->DrawTextA( Sprites[index].DXSprite, "START!", -1, &rect, DT_NOCLIP, D3DCOLOR_RGBA(255, 255, 255, 255) ); } } } return(true); }
  9. Hi,   My DirectX app does not currently support full screen mode. In windowed mode, how would I cause my DirectX app to lose its device so that I can test my lost device handling source code to see if it works?   Thanks!   JeZ+Lee
  10. Hi,   Thanks for all the replies and information...   I don't think I will be implementing a full screen option. (just current maximize window button option)   So the DirectX device can never get lost in windowed mode? Let me know, thanks!   JeZ+Lee
  11. Hi,   What is the best method to handle a "lost device" in DirectX 9.0c? Please look at the source code below and tell me if I am doing it correctly or not. I "Reset" the DirectX device and reload the DirectX Sprites...   Thanks!   JeZ+Lee     Sprite Loading Function: bool Visuals::LoadSpritesIntoMemoryAndInitialize(bool DeviceReset) { HRESULT result; char filePath[256]; strcpy_s(filePath, "~\0"); for (int index = 0; index < NumberOfSprites; index++) { switch(index) { case 0: strcpy_s(filePath, "Data/Visuals/Screen-Fade-Black-Box.png"); break; case 5: strcpy_s(filePath, "Data/Visuals/16BitSoft-Logo.png"); break; case 6: strcpy_s(filePath, "Data/Visuals/Title-BG.png"); break; case 7: strcpy_s(filePath, "Data/Visuals/TC5-Logo.png"); break; default: strcpy_s(filePath, "~"); break; } strcat_s(filePath, "\0"); if (filePath[0] != '~') { D3DXIMAGE_INFO imageInfo; result = D3DXGetImageInfoFromFileA(filePath, &imageInfo); // if FAILED (hResult){ // return false; // } D3DXCreateTextureFromFileExA(DXDevice, filePath, imageInfo.Width, imageInfo.Height, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &Sprites[index].Texture); result = D3DXCreateSprite(DXDevice, &Sprites[index].DXSprite); if (DeviceReset == false) { Sprites[index].ScreenX = 400.0f; Sprites[index].ScreenY = 240.0f; Sprites[index].ScaleX = 1.0f; Sprites[index].ScaleY = 1.0f; Sprites[index].RotationDegree = 0.0f; Sprites[index].RedHue = 255; Sprites[index].GreenHue = 255; Sprites[index].BlueHue = 255; Sprites[index].Transparency = 255; Sprites[index].Smooth = true; Sprites[index].FlipX = false; Sprites[index].FlipY = false; Sprites[index].OriginalWidth = imageInfo.Width; Sprites[index].OriginalHeight = imageInfo.Height; D3DSURFACE_DESC textureInfo; Sprites[index].Texture->GetLevelDesc(0, &textureInfo); Sprites[index].TextureWidth = textureInfo.Width; Sprites[index].TextureHeight = textureInfo.Height; Sprites[index].AnimationTimer = -1.0f; } } } return(true); } Screen Render Function: void Visuals::DisplayScreenBufferOntoDisplay(void) { HRESULT result; result = DXDevice->Present( NULL, NULL, NULL, NULL ); if (result != D3D_OK) { D3DDISPLAYMODE d3ddm; DXD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm ); D3DPRESENT_PARAMETERS d3dpp; ZeroMemory( &d3dpp, sizeof(d3dpp) ); d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = d3ddm.Format; d3dpp.EnableAutoDepthStencil = TRUE; d3dpp.AutoDepthStencilFormat = D3DFMT_D16; d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; DXDevice->Reset(&d3dpp); for (int index = 0; index < NumberOfSprites; index++) { if (Sprites[index].DXSprite != NULL) Sprites[index].DXSprite->Release(); if (Sprites[index].Texture != NULL) Sprites[index].Texture->Release(); } LoadSpritesIntoMemoryAndInitialize(true); } }
  12. Hi,   Got it working!   Added: D3DXMATRIX matrixFixTextAfterSpriteDrawing; D3DXMatrixTransformation2D(&matrixFixTextAfterSpriteDrawing, NULL, NULL, NULL, NULL, NULL, NULL); D3DXMatrixIdentity(&matrixFixTextAfterSpriteDrawing); to top of text render function.   Thank you for your help!   JeZ+Lee
  13. Hi,   Thank you for your reply.   I changed the source code of the text render function to below, but it still does not display?   What am I doing wrong?   JeZ+Lee void Visuals::DrawTextOntoScreenBuffer(const char *textToDisplay, LPD3DXFONT Font, int posX, int posY, int XJustification, int textRed, int textGreen, int textBlue, int outlineRed, int outlineGreen, int outlineBlue) { RECT rect, textSize; D3DXMATRIX matrixFixTextAfterSpriteDrawing; matrixFixTextAfterSpriteDrawing._11 = 1; matrixFixTextAfterSpriteDrawing._12 = 0; matrixFixTextAfterSpriteDrawing._13 = 0; matrixFixTextAfterSpriteDrawing._14 = 0; matrixFixTextAfterSpriteDrawing._21 = 0; matrixFixTextAfterSpriteDrawing._22 = 1; matrixFixTextAfterSpriteDrawing._23 = 0; matrixFixTextAfterSpriteDrawing._24 = 0; matrixFixTextAfterSpriteDrawing._31 = 0; matrixFixTextAfterSpriteDrawing._32 = 0; matrixFixTextAfterSpriteDrawing._33 = 1; matrixFixTextAfterSpriteDrawing._34 = 0; matrixFixTextAfterSpriteDrawing._41 = 0; matrixFixTextAfterSpriteDrawing._42 = 0; matrixFixTextAfterSpriteDrawing._43 = 0; matrixFixTextAfterSpriteDrawing._44 = 1; D3DXMatrixIdentity(&matrixFixTextAfterSpriteDrawing); Font[0].DrawTextA( NULL, textToDisplay, -1, &textSize, DT_CALCRECT, D3DCOLOR_RGBA(textRed, textGreen, textBlue, 255) ); if (XJustification == JustifyLeft) { // Do nothing... } else if (XJustification == JustifyCenter) { posX = (800 / 2) - (textSize.right / 2) - 3; } else if (XJustification == JustifyRight) { posX = (800 - posX) - textSize.right - 3; } else if (XJustification == JustifyCenterOnPoint) { posX = posX - (textSize.right / 2) - 3; } for (int screenY = -2; screenY < 3; screenY++) { for (int screenX = -2; screenX < 3; screenX++) { SetRect( &rect, posX+screenX, posY+screenY, 0, 0 ); if (screenY != 0 && screenX != 0) Font[0].DrawTextA( DXSpriteForTextOutline, textToDisplay, -1, &rect, DT_NOCLIP, D3DCOLOR_RGBA(outlineRed, outlineGreen, outlineBlue, 255) ); } } SetRect( &rect, posX, posY, 0, 0 ); Font[0].DrawTextA( DXSpriteForText, textToDisplay, -1, &rect, DT_NOCLIP, D3DCOLOR_RGBA(textRed, textGreen, textBlue, 255) ); }
  14. Hi Again,   Still haven't solved this issue.   In: "void Visuals::DrawSpriteOntoScreenBuffer(int index)" function, if I comment out: "D3DXMatrixTransformation2D(&matrixSpriteTransform, NULL, 0.0, &scaling, NULL, rotation, &screenPostion);" the text draws?   Anyone know why using "D3DXMatrixTransformation2D" in another function before DrawTextA makes text not render?   Thanks in advance!   JeZ+Lee