{"id":19962,"date":"2015-09-30T12:24:00","date_gmt":"2015-09-30T03:24:00","guid":{"rendered":"http:\/\/www.tyosuke20xx.com\/blog\/?p=19962"},"modified":"2015-09-30T12:24:00","modified_gmt":"2015-09-30T03:24:00","slug":"directx%e3%80%80%e8%84%b1%e5%87%ba%e3%82%b2%e3%83%bc%e3%83%a0%e4%bb%ae","status":"publish","type":"post","link":"http:\/\/www.tyosuke20xx.com\/blog\/?p=19962","title":{"rendered":"DirectX\u3000\u8131\u51fa\u30b2\u30fc\u30e0(\u4eee)"},"content":{"rendered":"<p>#include &lt;windows.h&gt;<br \/>\n#include &lt;d3d9.h&gt; &nbsp; &nbsp;\/\/ DirectXGraphics\u30b3\u30a2\u30e9\u30a4\u30d6\u30e9\u30ea<br \/>\n#include &lt;d3dx9.h&gt; &nbsp; \/\/ DirectXGraphics\u62e1\u5f35\u30e9\u30a4\u30d6\u30e9\u30ea<\/p>\n<p>#pragma comment(lib, &#8220;d3d9.lib&#8221;)<br \/>\n#pragma comment(lib, &#8220;d3dx9.lib&#8221;)<\/p>\n<p>\/\/ Direct3D\u30c7\u30d0\u30a4\u30b9<br \/>\nIDirect3DDevice9* d3dDevice;<\/p>\n<p>\/\/ Direct3D\u30c6\u30af\u30b9\u30c1\u30e3<br \/>\nIDirect3DTexture9* myTexture;<\/p>\n<p>\/\/ Direct3D\u30c6\u30af\u30b9\u30c1\u30e3<br \/>\nIDirect3DTexture9* dogTexture;<\/p>\n<p>\/\/ Direct3D\u30c6\u30af\u30b9\u30c1\u30e3<br \/>\nIDirect3DTexture9* mikuTexture;<\/p>\n<p>\/\/ Direct3D\u30c6\u30af\u30b9\u30c1\u30e3<br \/>\nIDirect3DTexture9* kyukyuTexture;<br \/>\n\/\/\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u7528\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9<br \/>\nint animIndex = 0;<\/p>\n<p>\/\/\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3\u7528\u30a6\u30a7\u30a4\u30c8\u30ab\u30a6\u30f3\u30bf\u30fc<br \/>\nint animWaitCounter = 0;<\/p>\n<p>\nLRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);<\/p>\n<p>\/\/ \u30c6\u30af\u30b9\u30c1\u30e3\u3092\u8aad\u307f\u8fbc\u3080\u95a2\u6570<br \/>\nIDirect3DTexture9* LoadTexture(const char* path)<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>IDirect3DTexture9* texture = nullptr;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>HRESULT hr;<br \/>\n<span style=\"white-space: pre;\"> <\/span>hr = D3DXCreateTextureFromFileEx(<br \/>\n<span style=\"white-space: pre;\">  <\/span>d3dDevice,<span style=\"white-space: pre;\">   <\/span>\/\/ Direct3D\u30c7\u30d0\u30a4\u30b9<br \/>\n<span style=\"white-space: pre;\">  <\/span>path,<span style=\"white-space: pre;\">    <\/span>\/\/ \u753b\u50cf\u306e\u30d1\u30b9 (\u30d5\u30a1\u30a4\u30eb\u540d)<br \/>\n<span style=\"white-space: pre;\">  <\/span>0,<span style=\"white-space: pre;\">     <\/span>\/\/ \u8aad\u307f\u8fbc\u3080\u969b\u306e\u6a2a\u5e45 (\u5358\u4f4d\u306f\u30d4\u30af\u30bb\u30eb)<br \/>\n<span style=\"white-space: pre;\">  <\/span>0,<span style=\"white-space: pre;\">     <\/span>\/\/ \u8aad\u307f\u8fbc\u3080\u969b\u306e\u9ad8\u3055 (\u5358\u4f4d\u306f\u30d4\u30af\u30bb\u30eb)<br \/>\n<span style=\"white-space: pre;\">  <\/span>1,<span style=\"white-space: pre;\">     <\/span>\/\/ \u30df\u30c3\u30d7\u30ec\u30d9\u30eb<br \/>\n<span style=\"white-space: pre;\">  <\/span>0,<span style=\"white-space: pre;\">     <\/span>\/\/ \u4f7f\u7528\u65b9\u6cd5<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DFMT_UNKNOWN,<span style=\"white-space: pre;\">  <\/span>\/\/ \u30d4\u30af\u30bb\u30eb\u30d5\u30a9\u30fc\u30de\u30c3\u30c8<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DPOOL_DEFAULT,<span style=\"white-space: pre;\"> <\/span>\/\/ \u3069\u306e\u30e1\u30e2\u30ea\u4e0a\u306b\u8aad\u307f\u8fbc\u3080\u304b\uff1f<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DX_FILTER_NONE,<span style=\"white-space: pre;\"> <\/span>\/\/ \u62e1\u5927\u7e2e\u5c0f\u30d5\u30a3\u30eb\u30bf\u30fc<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DX_FILTER_NONE,<span style=\"white-space: pre;\"> <\/span>\/\/ \u30df\u30c3\u30d7\u30d5\u30a3\u30eb\u30bf\u30fc<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DCOLOR_ARGB(0, 0, 0, 0),<span style=\"white-space: pre;\"> <\/span>\/\/ \u900f\u904e\u8272<br \/>\n<span style=\"white-space: pre;\">  <\/span>nullptr,<span style=\"white-space: pre;\">   <\/span>\/\/ \u753b\u50cf\u60c5\u5831\u3092\u53d7\u3051\u53d6\u308b\u5909\u6570\u306e\u30a2\u30c9\u30ec\u30b9<br \/>\n<span style=\"white-space: pre;\">  <\/span>nullptr,<span style=\"white-space: pre;\">   <\/span>\/\/ \u30ab\u30e9\u30fc\u30d1\u30ec\u30c3\u30c8\u3092\u53d7\u3051\u53d6\u308b\u30d0\u30c3\u30d5\u30a1<br \/>\n<span style=\"white-space: pre;\">  <\/span>&amp;texture<span style=\"white-space: pre;\">   <\/span>\/\/ \u30c6\u30af\u30b9\u30c1\u30e3\u3092\u53d7\u3051\u53d6\u308b\u5909\u6570\u306e\u30a2\u30c9\u30ec\u30b9<br \/>\n<span style=\"white-space: pre;\"> <\/span>);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>if(hr &lt; 0)<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>MessageBox(nullptr, &#8220;\u753b\u50cf\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f&#8221;, &#8220;\u30a8\u30e9\u30fc&#8221;, MB_OK);<br \/>\n<span style=\"white-space: pre;\"> <\/span>}<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>return texture;<br \/>\n}<\/p>\n<p>\n\/\/ DirectXGraphics\u3092\u521d\u671f\u5316\u3059\u308b\u95a2\u6570<br \/>\nvoid InitializeGraphics(HWND hWnd, int resolutionWidth, int resolutionHeight)<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ Direct3D\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210<br \/>\n<span style=\"white-space: pre;\"> <\/span>IDirect3D9* d3d9;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3d9 = Direct3DCreate9(D3D_SDK_VERSION);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>if (d3d9 == nullptr)<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>\/\/ DirectX\u304c\u4f7f\u3048\u306a\u3044<br \/>\n<span style=\"white-space: pre;\">  <\/span>MessageBox(nullptr, &#8220;DirectX\u304c\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093&#8221;, &#8220;\u30a8\u30e9\u30fc&#8221;, MB_OK);<br \/>\n<span style=\"white-space: pre;\"> <\/span>}<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u30d7\u30ec\u30bc\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u7528\u610f\u3059\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>D3DPRESENT_PARAMETERS d3dpp;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.BackBufferWidth = resolutionWidth;<span style=\"white-space: pre;\"> <\/span>\/\/ \u88cf\u753b\u9762\u306e\u6a2a\u5e45<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.BackBufferHeight = resolutionHeight;<span style=\"white-space: pre;\"> <\/span>\/\/ \u88cf\u753b\u9762\u306e\u9ad8\u3055<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.BackBufferCount = 1;<span style=\"white-space: pre;\">     <\/span>\/\/ \u88cf\u753b\u9762\u306e\u679a\u6570<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;<span style=\"white-space: pre;\"> <\/span>\/\/ \u88cf\u753b\u9762\u306e\u30d4\u30af\u30bb\u30eb\u30d5\u30a9\u30fc\u30de\u30c3\u30c8<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.hDeviceWindow = hWnd;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.Windowed = TRUE;<span style=\"white-space: pre;\"> <\/span>\/\/ TRUE:\u30a6\u30a3\u30f3\u30c9\u30a6\u30e2\u30fc\u30c9 &nbsp;FALSE:\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u30e2\u30fc\u30c9<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.EnableAutoDepthStencil = TRUE;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.MultiSampleQuality = 0;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.FullScreen_RefreshRateInHz = 0;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE;<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dpp.Flags = 0;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ Direct3D\u30c7\u30d0\u30a4\u30b9\u306e\u4f5c\u6210<br \/>\n<span style=\"white-space: pre;\"> <\/span>if (FAILED(d3d9-&gt;CreateDevice(0, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &amp;d3dpp, &amp;d3dDevice)))<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>\/\/ \u4e0a\u8a18\u306e\u6761\u4ef6\u3067\u306f\u521d\u671f\u5316\u3067\u304d\u306a\u3044<br \/>\n<span style=\"white-space: pre;\">  <\/span>MessageBox(nullptr, &#8220;Direct3D\u306e\u521d\u671f\u5316\u306b\u5931\u6557\u3057\u307e\u3057\u305f&#8221;, &#8220;\u30a8\u30e9\u30fc&#8221;, MB_OK);<br \/>\n<span style=\"white-space: pre;\"> <\/span>}<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ 1\u679a\u76ee\u306e\u753b\u50cf\u8aad\u307f\u8fbc\u307f<br \/>\n<span style=\"white-space: pre;\"> <\/span>myTexture = LoadTexture(&#8220;0142.jpg&#8221;);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ 2\u679a\u76ee\u306e\u753b\u50cf\u8aad\u307f\u8fbc\u307f<br \/>\n<span style=\"white-space: pre;\"> <\/span>dogTexture = LoadTexture(&#8220;k9img13_golden.jpg&#8221;);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ 3\u679a\u76ee\u306e\u753b\u50cf\u8aad\u307f\u8fbc\u307f<br \/>\n<span style=\"white-space: pre;\"> <\/span>mikuTexture = LoadTexture(&#8220;miku-tiled.png&#8221;);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ 4\u679a\u76ee\u306e\u753b\u50cf\u8aad\u307f\u8fbc\u307f<br \/>\n<span style=\"white-space: pre;\"> <\/span>kyukyuTexture = LoadTexture(&#8220;kyukyu.png&#8221;);<br \/>\n}<\/p>\n<p>\/\/ \u30b2\u30fc\u30e0\u5185\u306e\u6642\u9593\u3092\u9032\u3081\u308b\u70ba\u306e\u51e6\u7406\u3092\u884c\u3046\u95a2\u6570<br \/>\nvoid UpdateGameFrame()<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>animWaitCounter++;<br \/>\n<span style=\"white-space: pre;\"> <\/span>if (animWaitCounter &lt; 6)<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>\/\/\u30a6\u30a7\u30a4\u30c8\u30ab\u30a6\u30f3\u30bf\u30fc<br \/>\n<span style=\"white-space: pre;\">  <\/span>animWaitCounter = 0;<br \/>\n<span style=\"white-space: pre;\">  <\/span><br \/>\n<span style=\"white-space: pre;\">  <\/span>\/\/\u6b21\u306e\u30b3\u30de\u3078\u9032\u3080<br \/>\n<span style=\"white-space: pre;\">  <\/span>animIndex++;<br \/>\n<span style=\"white-space: pre;\">  <\/span><br \/>\n<span style=\"white-space: pre;\">  <\/span>\/\/\u6700\u5f8c\u306e\u30b3\u30de\u3092\u904e\u304e\u305f\u3089\u6700\u521d\u306e\u30b3\u30de\u306b\u623b\u3059<br \/>\n<span style=\"white-space: pre;\">  <\/span>if (animIndex &gt;= 4)<br \/>\n<span style=\"white-space: pre;\">   <\/span>animIndex = 0;<br \/>\n<span style=\"white-space: pre;\"> <\/span>}<br \/>\n}<\/p>\n<p>\/\/\u30ec\u30c3\u30b9\u30f31\uff1a 2D\u753b\u9762\u4e0a\u306b\u4e09\u89d2\u5f62\u30921\u3064\u63cf\u753b\u3059\u308b<br \/>\nvoid Lesson1()<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ 1\u3064\u306e\u9802\u70b9\u306b\u306f\u3069\u3093\u306a\u60c5\u5831\u3092\u6301\u305f\u305b\u308b\uff1f<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fb\u4f4d\u7f6e(x,y,z) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2D\/3D\u5171\u306b\u5fc5\u9808<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fbw\u306e\u9006\u6570(rhw) &nbsp; &nbsp; &nbsp; &nbsp; 2D\u306b\u306f\u5fc5\u9808<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fb\u6cd5\u7dda(nx,ny,nz) &nbsp; &nbsp; &nbsp; \u30aa\u30d7\u30b7\u30e7\u30f3<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fb\u8272(diffuse) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\u30aa\u30d7\u30b7\u30e7\u30f3<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fb\u30c6\u30af\u30b9\u30c1\u30e3\u5ea7\u6a19(u,v) &nbsp;\u30aa\u30d7\u30b7\u30e7\u30f3<br \/>\n<span style=\"white-space: pre;\"> <\/span>struct VERTEX<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>float x, y, z;<br \/>\n<span style=\"white-space: pre;\">  <\/span>float rhw;<br \/>\n<span style=\"white-space: pre;\"> <\/span>};<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u9802\u70b9\u306f\u300c\u5909\u6570\u300d\u3067\u306f\u306a\u304f\u300c\u914d\u5217\u300d\u3067\u7528\u610f\u3059\u308b\u3053\u3068<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ DirectX\u5074\u306e\u6761\u4ef6\uff1a\u9802\u70b9\u304c\u30e1\u30e2\u30ea\u4e0a\u3067\u9023\u7d9a\u3057\u3066\u3044\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ C\u8a00\u8a9e\u3067\u306f\u300c\u914d\u5217\u300d\u306f\u30e1\u30e2\u30ea\u4e0a\u3067\u9023\u7d9a\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u4fdd\u8a3c\u3055\u308c\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>VERTEX vert[3];<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[0].x = 0.0f; \/\/ \u30b2\u30fc\u30e0\u753b\u9762\u306e\u5de6\u4e0a\u3092\u539f\u70b9(0,0)\u3068\u3057\u305f\u6642\u306eX\u5ea7\u6a19<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].y = 0.0f; \/\/ \u30b2\u30fc\u30e0\u753b\u9762\u306e\u5de6\u4e0a\u3092\u539f\u70b9(0,0)\u3068\u3057\u305f\u6642\u306eY\u5ea7\u6a19<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].z = 0.0f; \/\/ z\u306f\u5965\u884c\u304d\u3092\u8868\u3059\u5024<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].rhw = 1.0f; \/\/ rhw\u306f\u3044\u3064\u30820\u306b\u3057\u3066\u304a\u304f\u3053\u3068<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[1].x = 1280.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].y = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].rhw = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[2].x = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].y = 720.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].rhw = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u9802\u70b91\u500b\u5206\u306b\u306f\u3069\u3093\u306a\u60c5\u5831\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u306e\u304b\u3092<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ Direct3D\u30c7\u30d0\u30a4\u30b9\u306b\u6559\u3048\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;SetFVF(D3DFVF_XYZRHW);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ Direct3D\u30c7\u30d0\u30a4\u30b9\u306b\u9802\u70b9\u30c7\u30fc\u30bf\u3092\u6e21\u3057\u3066\u63cf\u753b\u3057\u3066\u3082\u3089\u3046<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;DrawPrimitiveUP(<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DPT_TRIANGLELIST,<span style=\"white-space: pre;\"> <\/span>\/\/ \u30d7\u30ea\u30df\u30c6\u30a3\u30d6\u30bf\u30a4\u30d7<br \/>\n<span style=\"white-space: pre;\">  <\/span>1,<span style=\"white-space: pre;\">     <\/span>\/\/ \u30d7\u30ea\u30df\u30c6\u30a3\u30d6\u6570<br \/>\n<span style=\"white-space: pre;\">  <\/span>vert,<span style=\"white-space: pre;\">    <\/span>\/\/ \u9802\u70b9\u30c7\u30fc\u30bf<br \/>\n<span style=\"white-space: pre;\">  <\/span>sizeof(VERTEX)<span style=\"white-space: pre;\">  <\/span>\/\/ \u9802\u70b91\u500b\u5206\u306e\u30b5\u30a4\u30ba(\u30d0\u30a4\u30c8\u6570)<br \/>\n<span style=\"white-space: pre;\"> <\/span>);<br \/>\n}<\/p>\n<p>\n\/\/\u30ec\u30c3\u30b9\u30f32\uff1a 2D\u753b\u9762\u4e0a\u306b\u4e09\u89d2\u5f62\u30922\u3064\u63cf\u753b\u3059\u308b<br \/>\nvoid Lesson2()<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>struct VERTEX<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>float x, y, z;<br \/>\n<span style=\"white-space: pre;\">  <\/span>float rhw;<br \/>\n<span style=\"white-space: pre;\"> <\/span>};<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>VERTEX vert[6];<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ 1\u3064\u76ee\u306e\u4e09\u89d2\u5f62<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].x = 200.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].y = 100.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].rhw = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[1].x = 800.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].y = 100.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].rhw = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[2].x = 200.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].y = 500.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].rhw = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ 2\u3064\u76ee\u306e\u4e09\u89d2\u5f62<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].x = 200.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].y = 500.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].rhw = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[4].x = 800.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].y = 100.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].rhw = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[5].x = 800.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].y = 500.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].rhw = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;SetFVF(D3DFVF_XYZRHW);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;DrawPrimitiveUP(<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DPT_TRIANGLELIST,<br \/>\n<span style=\"white-space: pre;\">  <\/span>2,<br \/>\n<span style=\"white-space: pre;\">  <\/span>vert,<br \/>\n<span style=\"white-space: pre;\">  <\/span>sizeof(VERTEX)<br \/>\n<span style=\"white-space: pre;\">  <\/span>);<br \/>\n}<\/p>\n<p>\n\/\/\u30ec\u30c3\u30b9\u30f33\uff1a \u4e09\u89d2\u5f62\u306b\u8272\u3092\u4ed8\u3051\u308b<br \/>\nvoid Lesson3()<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ 1\u3064\u306e\u9802\u70b9\u306b\u306f\u3069\u3093\u306a\u60c5\u5831\u3092\u6301\u305f\u305b\u308b\uff1f<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fb\u4f4d\u7f6e(x,y,z) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2D\/3D\u5171\u306b\u5fc5\u9808<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fbw\u306e\u9006\u6570(rhw) &nbsp; &nbsp; &nbsp; &nbsp; 2D\u306b\u306f\u5fc5\u9808<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fb\u6cd5\u7dda(nx,ny,nz) &nbsp; &nbsp; &nbsp; \u30aa\u30d7\u30b7\u30e7\u30f3<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fb\u8272(diffuse) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\u30aa\u30d7\u30b7\u30e7\u30f3<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30fb\u30c6\u30af\u30b9\u30c1\u30e3\u5ea7\u6a19(u,v) &nbsp;\u30aa\u30d7\u30b7\u30e7\u30f3<br \/>\n<span style=\"white-space: pre;\"> <\/span>struct VERTEX<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>float x, y, z;<br \/>\n<span style=\"white-space: pre;\">  <\/span>float rhw;<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DCOLOR diffuse;<br \/>\n<span style=\"white-space: pre;\"> <\/span>};<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u9802\u70b9\u306f\u300c\u5909\u6570\u300d\u3067\u306f\u306a\u304f\u300c\u914d\u5217\u300d\u3067\u7528\u610f\u3059\u308b\u3053\u3068<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ DirectX\u5074\u306e\u6761\u4ef6\uff1a\u9802\u70b9\u304c\u30e1\u30e2\u30ea\u4e0a\u3067\u9023\u7d9a\u3057\u3066\u3044\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ C\u8a00\u8a9e\u3067\u306f\u300c\u914d\u5217\u300d\u306f\u30e1\u30e2\u30ea\u4e0a\u3067\u9023\u7d9a\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u4fdd\u8a3c\u3055\u308c\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>VERTEX vert[3];<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[0].x = 0.0f; \/\/ \u30b2\u30fc\u30e0\u753b\u9762\u306e\u5de6\u4e0a\u3092\u539f\u70b9(0,0)\u3068\u3057\u305f\u6642\u306eX\u5ea7\u6a19<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].y = 0.0f; \/\/ \u30b2\u30fc\u30e0\u753b\u9762\u306e\u5de6\u4e0a\u3092\u539f\u70b9(0,0)\u3068\u3057\u305f\u6642\u306eY\u5ea7\u6a19<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].z = 0.0f; \/\/ z\u306f\u5965\u884c\u304d\u3092\u8868\u3059\u5024<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].rhw = 1.0f; \/\/ rhw\u306f\u3044\u3064\u30820\u306b\u3057\u3066\u304a\u304f\u3053\u3068<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].diffuse = D3DCOLOR_ARGB(255, 255, &nbsp;0, &nbsp;0); \/\/ 0\uff5e255<br \/>\n\/\/<span style=\"white-space: pre;\"> <\/span>vert[0].diffuse = D3DCOLOR_ARGB(\u03b1\u5024, \u8d64, \u7dd1, \u9752); \/\/ 0\uff5e255<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[1].x = 1280.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].y = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].diffuse = D3DCOLOR_ARGB(255, 0, 255, 0);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[2].x = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].y = 720.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].diffuse = D3DCOLOR_ARGB(255, 0, 0, 255);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u9802\u70b91\u500b\u5206\u306b\u306f\u3069\u3093\u306a\u60c5\u5831\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u306e\u304b\u3092<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ Direct3D\u30c7\u30d0\u30a4\u30b9\u306b\u6559\u3048\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ Direct3D\u30c7\u30d0\u30a4\u30b9\u306b\u9802\u70b9\u30c7\u30fc\u30bf\u3092\u6e21\u3057\u3066\u63cf\u753b\u3057\u3066\u3082\u3089\u3046<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;DrawPrimitiveUP(<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DPT_TRIANGLELIST,<span style=\"white-space: pre;\"> <\/span>\/\/ \u30d7\u30ea\u30df\u30c6\u30a3\u30d6\u30bf\u30a4\u30d7<br \/>\n<span style=\"white-space: pre;\">  <\/span>1,<span style=\"white-space: pre;\">     <\/span>\/\/ \u30d7\u30ea\u30df\u30c6\u30a3\u30d6\u6570<br \/>\n<span style=\"white-space: pre;\">  <\/span>vert,<span style=\"white-space: pre;\">    <\/span>\/\/ \u9802\u70b9\u30c7\u30fc\u30bf<br \/>\n<span style=\"white-space: pre;\">  <\/span>sizeof(VERTEX)<span style=\"white-space: pre;\">  <\/span>\/\/ \u9802\u70b91\u500b\u5206\u306e\u30b5\u30a4\u30ba(\u30d0\u30a4\u30c8\u6570)<br \/>\n<span style=\"white-space: pre;\">  <\/span>);<br \/>\n}<\/p>\n<p>\n\/\/\u30ec\u30c3\u30b9\u30f34\uff1a \u56db\u89d2\u5f62\u306b\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u8cbc\u308b<br \/>\nvoid Lesson4()<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>struct VERTEX<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>float x, y, z;<br \/>\n<span style=\"white-space: pre;\">  <\/span>float rhw;<br \/>\n<span style=\"white-space: pre;\">  <\/span>float u, v; &nbsp; &nbsp;\/\/ \u30c6\u30af\u30b9\u30c1\u30e3\u5ea7\u6a19(u,v)<br \/>\n<span style=\"white-space: pre;\"> <\/span>};<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>VERTEX vert[6];<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ 1\u3064\u76ee\u306e\u4e09\u89d2\u5f62<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].x = 200.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].y = 100.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].u = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].v = 0.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[1].x = 800.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].y = 100.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].u = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].v = 0.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[2].x = 200.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].y = 500.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].u = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].v = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ 2\u3064\u76ee\u306e\u4e09\u89d2\u5f62<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].x = 200.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].y = 500.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].u = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].v = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[4].x = 800.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].y = 100.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].u = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].v = 0.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[5].x = 800.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].y = 500.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].u = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].v = 1.0f;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;SetFVF(D3DFVF_XYZRHW | D3DFVF_TEX1);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u3069\u306e\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u8cbc\u308a\u305f\u3044\u306e\u304b\u3092Direct3D\u30c7\u30d0\u30a4\u30b9\u306b\u6559\u3048\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;SetTexture(0, dogTexture);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;DrawPrimitiveUP(<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DPT_TRIANGLELIST,<br \/>\n<span style=\"white-space: pre;\">  <\/span>2,<br \/>\n<span style=\"white-space: pre;\">  <\/span>vert,<br \/>\n<span style=\"white-space: pre;\">  <\/span>sizeof(VERTEX)<br \/>\n<span style=\"white-space: pre;\">  <\/span>);<br \/>\n}<\/p>\n<p>\n\/\/DrowSprite\u95a2\u6570\uff1a \u30b9\u30d7\u30e9\u30a4\u30c8\u3092\u753b\u9762\u306b\u63cf\u753b\u3059\u308b\u95a2\u6570<br \/>\nvoid DrowSprite(float dx, float dy, float dw, float dh, IDirect3DTexture9* texture, float sx, float sy, float sw, float sh, D3DCOLOR color)<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>D3DSURFACE_DESC desc;<br \/>\n<span style=\"white-space: pre;\"> <\/span>texture-&gt;GetLevelDesc(0, &amp;desc);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>struct VERTEX<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>float x, y, z;<br \/>\n<span style=\"white-space: pre;\">  <\/span>float rhw;<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DCOLOR diffuse; \/\/\u9802\u70b9\u30ab\u30e9\u30fc<br \/>\n<span style=\"white-space: pre;\">  <\/span>float u, v; &nbsp; &nbsp;\/\/ \u30c6\u30af\u30b9\u30c1\u30e3\u5ea7\u6a19(u,v)<br \/>\n<span style=\"white-space: pre;\"> <\/span>};<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>VERTEX vert[6];<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/\u30b5\u30f3\u30d7\u30ea\u30f3\u30b0\u306e\u95a2\u4fc2\u30670.5\u305a\u3064\u305a\u3089\u3059<br \/>\n<span style=\"white-space: pre;\"> <\/span>dx += 0.5f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>dy += 0.5f;<\/p>\n<p>\n<span style=\"white-space: pre;\"> <\/span>\/\/ 1\u3064\u76ee\u306e\u4e09\u89d2\u5f62<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].x = dx;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].y = dy;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].diffuse = color;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].u = sx \/ desc.Width;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[0].v = sy \/ desc.Height;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[1].x = dx + dw; &nbsp;\/\/ \u53f3\u4e0aX\u5ea7\u6a19 = \u5de6\u4e0aX\u5ea7\u6a19 + \u56db\u89d2\u5f62\u306e\u6a2a\u5e45<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].y = dy;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].diffuse = color;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].u = (sx + sw) \/ desc.Width;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[1].v = sy \/ desc.Height;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[2].x = dx;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].y = dy + dh;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].diffuse = color;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].u = sx \/ desc.Width;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[2].v = (sy + sh) \/ desc.Height;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ 2\u3064\u76ee\u306e\u4e09\u89d2\u5f62<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].x = dx;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].y = dy + dh;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].diffuse = color;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].u = sx \/ desc.Width;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[3].v = (sy + sh) \/ desc.Height;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[4].x = dx + dw;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].y = dy;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].diffuse = color;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].u = (sx + sw) \/ desc.Width;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[4].v = sy \/ desc.Height;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>vert[5].x = dx + dw;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].y = dy + dh;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].z = 0.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].rhw = 1.0f;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].diffuse = color;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].u = (sx + sw) \/ desc.Width;<br \/>\n<span style=\"white-space: pre;\"> <\/span>vert[5].v = (sy + sh) \/ desc.Height;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;SetFVF(D3DFVF_XYZRHW |D3DFVF_DIFFUSE| D3DFVF_TEX1);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u3069\u306e\u30c6\u30af\u30b9\u30c1\u30e3\u3092\u8cbc\u308a\u305f\u3044\u306e\u304b\u3092Direct3D\u30c7\u30d0\u30a4\u30b9\u306b\u6559\u3048\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;SetTexture(0, texture);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;DrawPrimitiveUP(<br \/>\n<span style=\"white-space: pre;\">  <\/span>D3DPT_TRIANGLELIST,<br \/>\n<span style=\"white-space: pre;\">  <\/span>2,<br \/>\n<span style=\"white-space: pre;\">  <\/span>vert,<br \/>\n<span style=\"white-space: pre;\">  <\/span>sizeof(VERTEX)<br \/>\n<span style=\"white-space: pre;\">  <\/span>);<br \/>\n}<\/p>\n<p>\/\/ \u30b2\u30fc\u30e0\u753b\u9762\u306e\u63cf\u753b\u3092\u884c\u3046\u95a2\u6570<br \/>\n\/\/ (\u3053\u306e\u95a2\u6570\u306f1\u79d2\u9593\u306b\u7d0460\u56de\u547c\u3073\u51fa\u3055\u308c\u308b)<br \/>\nvoid DrawGame()<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u88cf\u753b\u9762\u3092\u5857\u308a\u3064\u3076\u3059 (1\u30d5\u30ec\u30fc\u30e0\u524d\u306e\u753b\u9762\u3092\u6d88\u3059)<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;Clear(0, nullptr, D3DCLEAR_TARGET, D3DCOLOR_ARGB(255, 100, 149, 237), 1.0f, 0);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u958b\u59cb<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;BeginScene();<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u3053\u3053\u3067\u5168\u3066\u306e\u30dd\u30ea\u30b4\u30f3\u3092\u63cf\u753b\u3059\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ Lesson5(\u5de6\u4e0a\u9685X\u5ea7\u6a19, \u5de6\u4e0a\u9685Y\u5ea7\u6a19, \u6a2a\u5e45, \u9ad8\u3055, \u30c6\u30af\u30b9\u30c1\u30e3);<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/Lesson5(50, 80, 300, 200, myTexture);<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/Lesson5(200, 400, 200, 500, dogTexture);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>DrowSprite(100, 50, 200 , 200, mikuTexture, 200 * animIndex, 0, 200, 200, D3DCOLOR_ARGB( 255, 255, 255, 255));<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u7d42\u4e86<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;EndScene();<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u88cf\u753b\u9762\u306e\u5185\u5bb9\u3092\u8868\u753b\u9762\u306b\u30b3\u30d4\u30fc\u3059\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>d3dDevice-&gt;Present(nullptr, nullptr, nullptr, nullptr);<br \/>\n}<\/p>\n<p>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,<br \/>\n<span style=\"white-space: pre;\"> <\/span>LPSTR lpszCmdLine, int nCmdShow)<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>WNDCLASS myProg;<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.style = CS_HREDRAW | CS_VREDRAW;<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.lpfnWndProc = WndProc;<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.cbClsExtra = 0;<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.cbWndExtra = 0;<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.hInstance = hInstance;<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.hIcon = NULL;<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.hCursor = LoadCursor(NULL, IDC_ARROW);<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.lpszMenuName = NULL;<br \/>\n<span style=\"white-space: pre;\"> <\/span>myProg.lpszClassName = &#8220;GameProgram1&#8221;;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>if (!RegisterClass(&amp;myProg))<br \/>\n<span style=\"white-space: pre;\">  <\/span>return -1;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u9818\u57df\u306e\u30b5\u30a4\u30ba\u304c800&#215;600\u306b\u306a\u308b\u3088\u3046\u306b<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u30b5\u30a4\u30ba\u3092\u8a08\u7b97\u3059\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>RECT rect;<br \/>\n<span style=\"white-space: pre;\"> <\/span>rect.left = 0;<br \/>\n<span style=\"white-space: pre;\"> <\/span>rect.top = 0;<br \/>\n<span style=\"white-space: pre;\"> <\/span>rect.right = 1280;<br \/>\n<span style=\"white-space: pre;\"> <\/span>rect.bottom = 720;<br \/>\n<span style=\"white-space: pre;\"> <\/span>AdjustWindowRect(&amp;rect, WS_OVERLAPPEDWINDOW, FALSE);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u6a2a\u5e45<br \/>\n<span style=\"white-space: pre;\"> <\/span>int windowWidth = rect.right &#8211; rect.left;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u9ad8\u3055<br \/>\n<span style=\"white-space: pre;\"> <\/span>int windowHeight = rect.bottom &#8211; rect.top;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u30b9\u30af\u30ea\u30fc\u30f3\u306e\u30b5\u30a4\u30ba\u3092\u8abf\u3079\u308b<br \/>\n<span style=\"white-space: pre;\"> <\/span>int screenWidth = GetSystemMetrics(SM_CXSCREEN);<br \/>\n<span style=\"white-space: pre;\"> <\/span>int screenHeight = GetSystemMetrics(SM_CYSCREEN);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u30bb\u30f3\u30bf\u30ea\u30f3\u30b0 (\u4e2d\u592e\u63c3\u3048)<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u5de6\u4e0a\u9685X\u5ea7\u6a19 = (\u30b9\u30af\u30ea\u30fc\u30f3\u306e\u6a2a\u5e45 &#8211; \u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u6a2a\u5e45) \/ 2;<br \/>\n<span style=\"white-space: pre;\"> <\/span>\/\/ \u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u5de6\u4e0a\u9685Y\u5ea7\u6a19 = (\u30b9\u30af\u30ea\u30fc\u30f3\u306e\u9ad8\u3055 &#8211; \u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u9ad8\u3055) \/ 2;<br \/>\n<span style=\"white-space: pre;\"> <\/span>int windowPosX = (screenWidth &#8211; windowWidth) \/ 2;<br \/>\n<span style=\"white-space: pre;\"> <\/span>int windowPosY = (screenHeight &#8211; windowHeight) \/ 2;<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>HWND hWnd;<br \/>\n<span style=\"white-space: pre;\"> <\/span>hWnd = CreateWindow(<br \/>\n<span style=\"white-space: pre;\">  <\/span>myProg.lpszClassName,<br \/>\n<span style=\"white-space: pre;\">  <\/span>&#8220;\u8131\u51fa\u30b2\u30fc\u30e0(\u4eee)&#8221;,<br \/>\n<span style=\"white-space: pre;\">  <\/span>WS_OVERLAPPEDWINDOW,<br \/>\n<span style=\"white-space: pre;\">  <\/span>windowPosX,<br \/>\n<span style=\"white-space: pre;\">  <\/span>windowPosY,<br \/>\n<span style=\"white-space: pre;\">  <\/span>windowWidth,<br \/>\n<span style=\"white-space: pre;\">  <\/span>windowHeight,<br \/>\n<span style=\"white-space: pre;\">  <\/span>NULL,<br \/>\n<span style=\"white-space: pre;\">  <\/span>NULL,<br \/>\n<span style=\"white-space: pre;\">  <\/span>hInstance,<br \/>\n<span style=\"white-space: pre;\">  <\/span>NULL);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ DirectXGraphics\u306e\u521d\u671f\u5316<br \/>\n<span style=\"white-space: pre;\"> <\/span>InitializeGraphics(hWnd, 1280, 720);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>ShowWindow(hWnd, nCmdShow);<br \/>\n<span style=\"white-space: pre;\"> <\/span>UpdateWindow(hWnd);<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u30eb\u30fc\u30d7<br \/>\n<span style=\"white-space: pre;\"> <\/span>MSG msg;<br \/>\n<span style=\"white-space: pre;\"> <\/span>while (true)<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>if (PeekMessage(&amp;msg, NULL, 0, 0, PM_REMOVE))<br \/>\n<span style=\"white-space: pre;\">  <\/span>{<br \/>\n<span style=\"white-space: pre;\">   <\/span>if (msg.message == WM_QUIT)<br \/>\n<span style=\"white-space: pre;\">    <\/span>break;<\/p>\n<p><span style=\"white-space: pre;\">   <\/span>TranslateMessage(&amp;msg);<br \/>\n<span style=\"white-space: pre;\">   <\/span>DispatchMessage(&amp;msg);<br \/>\n<span style=\"white-space: pre;\">  <\/span>}<br \/>\n<span style=\"white-space: pre;\">  <\/span>else<br \/>\n<span style=\"white-space: pre;\">  <\/span>{<br \/>\n<span style=\"white-space: pre;\">   <\/span>\/\/ \u30b2\u30fc\u30e0\u753b\u9762\u306e\u63cf\u753b<br \/>\n<span style=\"white-space: pre;\">   <\/span>DrawGame();<\/p>\n<p><span style=\"white-space: pre;\">   <\/span>\/\/ \u30b2\u30fc\u30e0\u5185\u6642\u9593\u306e\u66f4\u65b0<br \/>\n<span style=\"white-space: pre;\">   <\/span>UpdateGameFrame();<br \/>\n<span style=\"white-space: pre;\">  <\/span>}<br \/>\n<span style=\"white-space: pre;\"> <\/span>}<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>return (msg.wParam);<br \/>\n}<\/p>\n<p>LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)<br \/>\n{<br \/>\n<span style=\"white-space: pre;\"> <\/span>switch (msg)<br \/>\n<span style=\"white-space: pre;\"> <\/span>{<br \/>\n<span style=\"white-space: pre;\">  <\/span>case WM_DESTROY:<br \/>\n<span style=\"white-space: pre;\">   <\/span>PostQuitMessage(0);<br \/>\n<span style=\"white-space: pre;\">   <\/span>break;<\/p>\n<p><span style=\"white-space: pre;\">  <\/span>default:<br \/>\n<span style=\"white-space: pre;\">   <\/span>return(DefWindowProc(hWnd, msg, wParam, lParam));<br \/>\n<span style=\"white-space: pre;\"> <\/span>}<\/p>\n<p><span style=\"white-space: pre;\"> <\/span>return 0;<br \/>\n}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>#include &lt;windows.h&gt; #include &lt;d3d9.h&gt; &nbsp; &nbsp;\/\/ DirectXGraphics\u30b3\u30a2\u30e9\u30a4\u30d6\u30e9\u30ea #include &lt;d3dx9.h &hellip; <a href=\"http:\/\/www.tyosuke20xx.com\/blog\/?p=19962\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;DirectX\u3000\u8131\u51fa\u30b2\u30fc\u30e0(\u4eee)&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[104],"tags":[],"class_list":["post-19962","post","type-post","status-publish","format-standard","hentry","category-direcx"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/19962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19962"}],"version-history":[{"count":0,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/19962\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19962"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}