﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-DKzone-文章分类-C++</title><link>http://www.blogjava.net/doneykoo/category/35360.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 31 Dec 2008 11:54:50 GMT</lastBuildDate><pubDate>Wed, 31 Dec 2008 11:54:50 GMT</pubDate><ttl>60</ttl><item><title>游戏开发学习过程（连载中...）（转自 威尔弗的空间）</title><link>http://www.blogjava.net/doneykoo/articles/249366.html</link><dc:creator>DoNeY</dc:creator><author>DoNeY</author><pubDate>Wed, 31 Dec 2008 10:04:00 GMT</pubDate><guid>http://www.blogjava.net/doneykoo/articles/249366.html</guid><wfw:comment>http://www.blogjava.net/doneykoo/comments/249366.html</wfw:comment><comments>http://www.blogjava.net/doneykoo/articles/249366.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/doneykoo/comments/commentRss/249366.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/doneykoo/services/trackbacks/249366.html</trackback:ping><description><![CDATA[<a href="http://hi.baidu.com/welflau/blog/item/1b17032320bb05499358075e.html">转自 ： http://hi.baidu.com/welflau/blog/item/1b17032320bb05499358075e.html</a><br />
<br />
<span style="color: #000000"><a href="http://hi.baidu.com/welflau/"><font color="#ffffff">http://hi.baidu.com/welflau/</font></a><font color="#ffffff">希望能保留原创作者链接，谢谢！</font></span><br />
<br />
<p>2008-12-02</p>
<p><strong><font color="#ff0000" size="5">第1讲【创建框架】</font></strong></p>
<p><font color="#ffffff"></font>&nbsp;</p>
<p><br />
1 新建MFC exe / dialog based<br />
2 删除dialog类的显示代码<br />
3 添加WelflGameFrm类<br />
4 在app类的InitInstance 函数中 添加<a href="http://hi.baidu.com/welflau/"><font color="#ffffff">http://hi.baidu.com/welflau/</font></a><font color="#ffffff">希望能保留原创作者链接，谢谢！</font><br />
m_pMainWnd = new CWelflGameFrm;<br />
m_pMainWnd-&gt;ShowWindow( m_nCmdShow );<br />
m_pMainWnd-&gt;UpdateWindow();<br />
5 将CWelflGameFrm()构造函数改为public 成员<br />
6 在构造函数CWelflGameFrm中添加：<br />
RECT rect;<br />
Create(NULL,"ch07-1: ミDirectGraphics");<br />
CClientDC dc(this);<br />
int width = dc.GetDeviceCaps(HORZRES);<br />
int height = dc.GetDeviceCaps(VERTRES);<br />
GetWindowRect( &amp;rect );<br />
width = ( width - ( rect.right - rect.left ))/2 ;<br />
height = (height - (rect.bottom - rect.top ))/2 ;<br />
MoveWindow( width , height , (rect.right - rect.left ) , (rect.bottom - rect.top ) ,true);</p>
<p>7 为CWelfGameFrm类添加WindowProc函数，并加入代码：<a href="http://hi.baidu.com/welflau/"><font color="#ffffff">http://hi.baidu.com/welflau/</font></a><font color="#ffffff">希望能保留原创作者链接，谢谢！</font><br />
switch( message )<br />
{<br />
case WM_CREATE :<br />
&nbsp;&nbsp; if( !d3dCreate( m_hWnd , 640 , 480 , true ))<br />
&nbsp;&nbsp;&nbsp; PostMessage( WM_CLOSE );<br />
&nbsp;&nbsp; return 0 ;<br />
case WM_DESTROY :<br />
&nbsp;&nbsp; d3dRelease();<br />
&nbsp;&nbsp; return 0 ;<br />
}</p>
<p>8 为工程添加两个文件<br />
myd3d.cpp， myd3d.h</p>
<p>9 编译出现<br />
fatal error C1010: unexpected end of file while looking for precompiled header directive<br />
解决方案：在Project Settings里C++页面的Precomplie Header里把出错源文件设置为不使用预编译头就可以了，详见视频</p>
<p>10 将BOOL CWelfGameApp::InitInstance()中的<br />
return FALSE;改为 return TRUE;</p>
<p>11 为CWelfGameFrm类添加OnPaint响应<br />
添加如下代码：<br />
d3dClear(0);<br />
//<br />
d3d_Device-&gt;Present( NULL , NULL , NULL , NULL );</p>
<br />
<br />
<br />
<p><font color="#ff0000" size="5"><strong>第2讲【绘制文字和图像】</strong></font></p>
<p>目录<br />
【一】、从DirectGraphic中获取DC（GDI）<br />
【二】、2D图像绘制</p>
<p><br />
【一】、从DirectGraphic中获取DC（GDI）<br />
1 添加类d3dHdc 在 myd3d.h文件中<br />
class d3dHdc <br />
{<br />
private :<br />
HDC m_hdc ;<br />
LPDIRECT3DSURFACE9 m_Surface ;</p>
<p>public :<br />
void Release();<br />
inline operator HDC(){ return m_hdc ;};<br />
public :<br />
d3dHdc();<br />
~d3dHdc();<br />
};</p>
<p>2在myd3d.cpp中添加函数定义<br />
d3dHdc::d3dHdc()<br />
{<br />
m_hdc = 0 ;<br />
m_Surface = 0 ;<br />
// 获得设备<br />
if( !d3d_Device )<br />
&nbsp;&nbsp; return ;<br />
if( d3d_Device-&gt;GetBackBuffer( 0 , 0 , D3DBACKBUFFER_TYPE_MONO , &amp;m_Surface ) != D3D_OK )<br />
&nbsp;&nbsp; return ;<br />
<br />
m_Surface-&gt;GetDC( &amp;m_hdc );<br />
}</p>
<p>d3dHdc::~d3dHdc()<br />
{<br />
Release();<br />
}</p>
<p>void d3dHdc::Release()<br />
{<br />
if( m_Surface )<br />
{<br />
&nbsp;&nbsp; if( m_hdc )<br />
&nbsp;&nbsp;&nbsp; m_Surface-&gt;ReleaseDC( m_hdc );<br />
&nbsp;&nbsp; m_Surface-&gt;Release();<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp; m_hdc = NULL ;<br />
&nbsp;&nbsp; m_Surface = NULL ;<br />
}<br />
<br />
}</p>
<p>3 现在就可以使用他了<br />
在绘制函数中添加：<br />
d3dHdc hdc ;<br />
&nbsp;&nbsp; SetTextColor( hdc , RGB( 255 , 255 , 255 ));<br />
&nbsp;&nbsp; SetBkMode( hdc , 1 );<br />
&nbsp;&nbsp; TextOut( hdc , 0 , 0 , str , strlen( str ));<br />
hdc.Release();</p>
<p><br />
【二】、2D图像绘制<br />
1 新建d3dTexture类<br />
class d3dTexture<br />
{<br />
private :<br />
int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_Width ;<br />
int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_Height ;<br />
LPDIRECT3DTEXTURE9 m_Texture ;<br />
public :<br />
void BltFast( int x , int y );<br />
void BltFast( int l , int t , int r , int b );<br />
public :<br />
BOOL Create( LPCTSTR file );<br />
void Release();<br />
inline operator LPDIRECT3DTEXTURE9(){ return m_Texture ;};<br />
public :<br />
d3dTexture();<br />
~d3dTexture();<br />
};</p>
<p>2 并添加定义：</p>
<p>/*////////////////////////////////////////////////<br />
3D 纹理类d3dTexture 函数定义 2008-12-02</p>
<p>/*////////////////////////////////////////////////</p>
<p>d3dTexture::d3dTexture()<br />
{<br />
m_Texture = NULL ;<br />
}</p>
<p>d3dTexture::~d3dTexture()<br />
{<br />
Release();<br />
}</p>
<p>void d3dTexture::Release()<br />
{<br />
if( m_Texture )<br />
&nbsp;&nbsp; m_Texture-&gt;Release();<br />
m_Texture = NULL ;<br />
}</p>
<p>BOOL d3dTexture::Create( LPCTSTR file )<br />
{<br />
D3DXIMAGE_INFO in ;<br />
memset( &amp;in , 0 , sizeof( in ));<br />
// ﹍て<br />
Release();<br />
//更 <br />
D3DXCreateTextureFromFileEx( d3d_Device ,<br />
&nbsp;&nbsp; file , D3DX_DEFAULT , D3DX_DEFAULT , <br />
&nbsp;&nbsp; 0 , 0 , D3DFMT_UNKNOWN , D3DPOOL_MANAGED ,<br />
&nbsp;&nbsp; D3DX_DEFAULT , <br />
&nbsp;&nbsp; D3DX_DEFAULT , 0 , &amp;in , NULL , &amp;m_Texture );<br />
if( m_Texture == NULL )<br />
&nbsp;&nbsp; return false ;<br />
// 眔戈 <br />
m_Width = in.Width ;<br />
m_Height = in.Height ;<br />
<br />
return true ;<br />
}</p>
<p>void d3dTexture::BltFast(int x, int y)<br />
{<br />
BltFast( x , y , x + m_Width , y + m_Height );<br />
}</p>
<p>void d3dTexture::BltFast(int l , int t , int r , int b )<br />
{<br />
D3DTLVERTEX v[4] ;<br />
//郴翴 挡篶<br />
memset( v , 0 , sizeof( v ));<br />
v[0].x = v[3].x = (float)(l) ;<br />
v[1].x = v[2].x = (float)(r);<br />
v[0].y = v[1].y = (float)(t);<br />
v[2].y = v[3].y = (float)(b);<br />
<br />
v[0].rhw = v[1].rhw = v[2].rhw = v[3].rhw = <br />
&nbsp;&nbsp; v[0].z = v[1].z = v[2].z = v[3].z = 0.5f ;<br />
<br />
v[0].diffuse = v[1].diffuse = v[2].diffuse = v[3].diffuse = -1 ;<br />
<br />
v[1].tu = v[2].tu = 1.0f ;<br />
v[2].tv = v[3].tv = 1.0f ;<br />
//砞酶瓜家&#913;<br />
d3d_Device-&gt;SetTexture( 0 , m_Texture );<br />
d3d_Device-&gt;SetFVF( D3DFVF_TLVERTEX );<br />
d3d_Device-&gt;DrawPrimitiveUP( D3DPT_TRIANGLEFAN , 2 , (LPVOID)v , sizeof( D3DTLVERTEX ));<br />
<br />
<br />
}</p>
<p>3 编译时会出错<br />
解决方法：<br />
在myd3d.h文件中添加<br />
#include "d3dx9tex.h"<br />
和<br />
#pragma comment(lib,"d3dx9.lib")<br />
以及<br />
const DWORD D3DFVF_TLVERTEX = (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1 );<br />
typedef struct _D3DTLVERTEX <br />
{<br />
float x , y , z , rhw ;<br />
D3DCOLOR diffuse , specular;<br />
float tu, tv;<br />
}D3DTLVERTEX ;</p>
<p>4 在WelfGameFrm中添加两个成员<br />
d3dTexture m_Bk ;<br />
d3dTexture m_Role ;</p>
<p>5 在WelfGameFrm的Create响应添加：<br />
&nbsp;&nbsp; m_Bk.Create( "背景.tga" );<br />
&nbsp;&nbsp; m_Role.Create( "娃娃.tga" );</p>
<p>6 调用BltFast进行绘制<br />
//开始绘制<br />
d3d_Device-&gt;BeginScene();<br />
d3d_Device-&gt;SetRenderState( D3DRS_CULLMODE , D3DCULL_NONE );<br />
d3d_Device-&gt;SetRenderState( D3DRS_ZENABLE , D3DZB_FALSE );<br />
m_Bk.BltFast( 0 , 0 );<br />
m_Role.BltFast( 0 , 0 );<br />
d3d_Device-&gt;EndScene();</p>
<p>7 将BltFast函数改进</p>
<br />
<br />
<br />
<p><font color="#ff0000" size="5"><strong>第3讲 WelfGame【图像透明及颜色】</strong></font></p>
<p><a href="http://hi.baidu.com/welflau/"><font color="#ffffff">http://hi.baidu.com/welflau/</font></a><font color="#ffffff">希望能保留原创作者链接，</font></p>
<font color="#ffffff">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000">【一】、实现透明图像</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font color="#000000"><span><font face="Times New Roman">1 </font></span><span>在</span><span><font face="Times New Roman">RenderScene()</font></span><span>中添加设置代码</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000">在背景绘制前添加：</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetRenderState( D3DRS_CULLMODE , D3DCULL_NONE );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetRenderState( D3DRS_ZENABLE , D3DZB_FALSE );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetRenderState( D3DRS_SHADEMODE , D3DSHADE_FLAT );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000">在前景绘制的前面添加</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetRenderState( D3DRS_SRCBLEND , D3DBLEND_SRCALPHA );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetRenderState( D3DRS_DESTBLEND , D3DBLEND_INVSRCALPHA );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font color="#000000"><span><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );//</font></span><span>开启混色</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div forimg="1">
<p><img class="blogimg" src="http://hiphotos.baidu.com/welflau/pic/item/504b71f499455dc4f2d38591.jpg" border="0" small="0"  alt="" /></p>
<p>&nbsp;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span>效果</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"></p>
<div forimg="1"><img class="blogimg" src="http://hiphotos.baidu.com/welflau/pic/item/8f175c4e81c0ee14b3de059c.jpg" border="0" small="0"  alt="" /></div>
</div>
<p>&nbsp;</p>
<font color="#ffffff">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font color="#000000"><span><font face="Times New Roman">2 </font></span><span>为</span><span><font face="Times New Roman">d3dTexture</font></span><span>添加</span><span><font face="Times New Roman">BltFast</font></span><span>函数</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font face="Times New Roman" color="#000000">void d3dTexture::BltFast(int l , int t , int r , int b , DWORD diffuse )</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font face="Times New Roman" color="#000000">{</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>D3DTLVERTEX v[4] ;</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font color="#000000"><span><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</font></span><span>郴翴</span><span> 挡篶</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>memset( v , 0 , sizeof( v ));</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>v[0].x = v[3].x = (float)(l) ;</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>v[1].x = v[2].x = (float)(r);</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>v[0].y = v[1].y = (float)(t);</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>v[2].y = v[3].y = (float)(b);</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>v[0].rhw = v[1].rhw = v[2].rhw = v[3].rhw = </font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>v[0].z = v[1].z = v[2].z = v[3].z = <ST1:CHMETCNV tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue=".5" unitname="F">0.5f</ST1:CHMETCNV> ;</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font color="#000000"><span><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</font></span><span>肅︹</span><span> </span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>v[0].diffuse = v[1].diffuse = v[2].diffuse = v[3].diffuse = diffuse ;</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>v[1].tu = v[2].tu = <ST1:CHMETCNV tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="F">1.0f</ST1:CHMETCNV> ;</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>v[2].tv = v[3].tv = <ST1:CHMETCNV tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="F">1.0f</ST1:CHMETCNV> ;</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font color="#000000"><span><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</font></span><span>砞酶瓜家&#913;</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetTexture( 0 , m_Texture );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetFVF( D3DFVF_TLVERTEX<span style="mso-spacerun: yes"> </span>);</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;DrawPrimitiveUP( D3DPT_TRIANGLEFAN , 2 , (LPVOID)v , sizeof( D3DTLVERTEX ));</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font face="Times New Roman" color="#000000">}</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000">添加以下几句：</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="mso-no-proof: yes"><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetTextureStageState( 0 , D3DTSS_ALPHAARG1 , D3DTA_TEXTURE );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="mso-no-proof: yes"><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetTextureStageState( 0 , D3DTSS_ALPHAARG2 , D3DTA_DIFFUSE );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="mso-no-proof: yes"><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetTextureStageState( 0 , D3DTSS_COLORARG1 , D3DTA_TEXTURE );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="mso-no-proof: yes"><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetTextureStageState( 0 , D3DTSS_COLORARG2 , D3DTA_DIFFUSE );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="mso-no-proof: yes"><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetTextureStageState( 0 , D3DTSS_COLOROP , D3DTOP_SELECTARG1 );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="mso-no-proof: yes"><font color="#000000"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>d3d_Device-&gt;SetTextureStageState( 0 , D3DTSS_ALPHAOP , D3DTOP_MODULATE );</font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font color="#000000"><span style="mso-no-proof: yes"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>//</font></span><span style="mso-ascii-: yes">以下为前景</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font color="#000000"><span style="mso-no-proof: yes"><font face="Times New Roman"><span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>m_Role.BltFast( 100, 100, 250 ,250 ,D3DCOLOR_ARGB( 128 , 255 , 255 , 255 ));//</font></span><span style="mso-ascii-: yes">最后一个参数为颜色，包括透明度</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span><font color="#000000">效果图</font></span></p>
<p>&nbsp;</p>
<div forimg="1">
<p><img class="blogimg" src="http://hiphotos.baidu.com/welflau/pic/item/5df00524153ce62ec895599f.jpg" border="0" small="0"  alt="" /></font></font></p>
</div>
 <img src ="http://www.blogjava.net/doneykoo/aggbug/249366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/doneykoo/" target="_blank">DoNeY</a> 2008-12-31 18:04 <a href="http://www.blogjava.net/doneykoo/articles/249366.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CString,int,string,char*之间的转换（转） </title><link>http://www.blogjava.net/doneykoo/articles/249360.html</link><dc:creator>DoNeY</dc:creator><author>DoNeY</author><pubDate>Wed, 31 Dec 2008 09:43:00 GMT</pubDate><guid>http://www.blogjava.net/doneykoo/articles/249360.html</guid><wfw:comment>http://www.blogjava.net/doneykoo/comments/249360.html</wfw:comment><comments>http://www.blogjava.net/doneykoo/articles/249360.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/doneykoo/comments/commentRss/249360.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/doneykoo/services/trackbacks/249360.html</trackback:ping><description><![CDATA[<p align="justify"><span style="font-size: 8pt">转自<a href="http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70843.html">http://www.cppblog.com/ACM-Boy/archive/2008/12/31/70843.html</a></span><br />
<br />
string 转 CString&nbsp;&nbsp;<br />
<strong>CString.format("%s", string.c_str());</strong>&nbsp;&nbsp;<br />
<br />
char 转 CString&nbsp;&nbsp;<br />
<strong>CString.format("%s", char*);</strong>&nbsp;&nbsp;<br />
<br />
char 转 string&nbsp;&nbsp;<br />
<strong>string s(char *);</strong>&nbsp;&nbsp;<br />
<br />
string 转 char *&nbsp;&nbsp;<br />
<strong>char *p = string.c_str();</strong>&nbsp;&nbsp;<br />
<br />
CString 转 string&nbsp;&nbsp;<br />
<strong>string s(CString.GetBuffer());</strong>&nbsp;&nbsp;<br />
<br />
1，string -&gt; CString&nbsp;&nbsp;<br />
<strong>CString.format("%s", string.c_str());</strong>&nbsp;&nbsp;<br />
用c_str()确实比data()要好.&nbsp;&nbsp;<br />
2，char -&gt; string&nbsp;&nbsp;<br />
<strong>string s(char *);</strong>&nbsp;&nbsp;<br />
你的只能初始化，在不是初始化的地方最好还是用assign().&nbsp;&nbsp;<br />
3,CString -&gt; string&nbsp;&nbsp;<br />
<strong>string s(CString.GetBuffer());</strong>&nbsp;&nbsp;<br />
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.&nbsp; <br />
</p>
<img src ="http://www.blogjava.net/doneykoo/aggbug/249360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/doneykoo/" target="_blank">DoNeY</a> 2008-12-31 17:43 <a href="http://www.blogjava.net/doneykoo/articles/249360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>