資源簡介
Direct2D 五子棋Direct2D 五子棋Direct2D 五子棋Direct2D 五子棋Direct2D 五子棋Direct2D 五子棋Direct2D 五子棋 Direct2D 五子棋

代碼片段和文件信息
#include?“Five.h“
#include?
//?Recalculate?drawing?layout?when?the?size?of?the?window?changes
void?MainWindow::CalculateLayout()
{
if?(pRenderTarget?!=?NULL)
{
D2D1_SIZE_F?size?=?pRenderTarget->GetSize();
m_CentreX?=?size.width?/?2;
m_CentreY?=?size.height?/?2;
m_GridLen?=?min(size.width?size.height)?/?16;
m_topX?=?size.width?/?2?-?7?*?m_GridLen;
m_topY?=?size.height?/?2?-?7?*?m_GridLen;
}
}
HRESULT?MainWindow::CreateGraphicsResources()
{
HRESULT?hr?=?S_OK;
if?(pRenderTarget?==?NULL)
{
RECT?rc;
GetClientRect(m_hwnd?&rc);
D2D1_SIZE_U?size?=?D2D1::SizeU(rc.right?rc.bottom);
hr?=?pFactory->CreateHwndRenderTarget(
D2D1::RenderTargetProperties()
D2D1::HwndRenderTargetProperties(m_hwnd?size)
&pRenderTarget);
if?(SUCCEEDED(hr))
{
hr?=?pRenderTarget->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::White)?&pBrush);
if?(SUCCEEDED(hr))
{
CalculateLayout();
}
}
}
return?hr;
}
void?MainWindow::CreateFiveChessGrid()
{
//set?background?color
pRenderTarget->Clear(D2D1::ColorF(0.96f?0.79f?0.39f?1.0f));
pBrush->SetColor(D2D1::ColorF(D2D1::ColorF::Black));
float?left?=?m_topX;
float?top?=?m_topY;
float?bottom?=?m_CentreY?+?7?*?m_GridLen;
float?right?=?m_CentreX?+?7?*?m_GridLen;
//draw?vert?lines
for?(float?i?=?0;?i?14?*?m_GridLen?+?1;?i?+=?m_GridLen)
{
pRenderTarget->DrawLine(D2D1::Point2F(left?+?i?top)?D2D1::Point2F(left?+?i?bottom)?pBrush);
}
//draw?horiz?lines
for?(float?i?=?0;?i?14?*?m_GridLen?+?1;?i?+=?m_GridLen)
{
pRenderTarget->DrawLine(D2D1::Point2F(left?top?+?i)?D2D1::Point2F(right?top?+?i)?pBrush);
}
//draw?special?points
pRenderTarget->FillEllipse(D2D1::Ellipse(
D2D1::Point2F(m_CentreX?m_CentreY)?m_GridLen?/?6?m_GridLen?/?6)?pBrush);
pRenderTarget->FillEllipse(D2D1::Ellipse(
D2D1::Point2F(m_CentreX?-?4?*?m_GridLen?m_CentreY?-?4?*?m_GridLen)?m_GridLen?/?6?m_GridLen?/?6)?pBrush);
pRenderTarget->FillEllipse(D2D1::Ellipse(
D2D1::Point2F(m_CentreX?+?4?*?m_GridLen?m_CentreY?+?4?*?m_GridLen)?m_GridLen?/?6?m_GridLen?/?6)?pBrush);
pRenderTarget->FillEllipse(D2D1::Ellipse(
D2D1::Point2F(m_CentreX?+?4?*?m_GridLen?m_CentreY?-?4?*?m_GridLen)?m_GridLen?/?6?m_GridLen?/?6)?pBrush);
pRenderTarget->FillEllipse(D2D1::Ellipse(
D2D1::Point2F(m_CentreX?-?4?*?m_GridLen?m_CentreY?+?4?*?m_GridLen)?m_GridLen?/?6?m_GridLen?/?6)?pBrush);
}
void?MainWindow::RenderChess()
{
float?left?=?m_CentreX?-?7?*?m_GridLen;
float?top?=?m_CentreY?-?7?*?m_GridLen;
for?(int?i?=?0;?i?15;?++i)
{
for?(int?j?=?0;?j?15;?++j)
{
if?(m_chess[i][j]?==?0)
{
continue;
}
if?(m_chess[i][j]?==?1)
{
pBrush->SetColor(D2D1::ColorF(D2D1::ColorF::Black));
}
else
{
pBrush->SetColor(D2D1::ColorF(D2D1::ColorF::White));
}
pRenderTarget->FillEllipse(D2D1::Ellipse(
D2D1::Point2F(left?+?i*m_GridLen?top?+?j*m_GridLen)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-08-18?13:08??FiveChessD2D\
?????文件????????1520??2017-07-31?18:33??FiveChessD2D\ba
?????目錄???????????0??2017-08-18?13:08??FiveChessD2D\Debug\
?????文件????????7795??2017-08-02?23:19??FiveChessD2D\Five.cpp
?????文件????????1221??2017-07-30?23:49??FiveChessD2D\Five.h
?????文件????????7152??2017-07-30?10:48??FiveChessD2D\FiveChessD2D.vcxproj
?????文件????????1168??2017-07-30?10:48??FiveChessD2D\FiveChessD2D.vcxproj.filters
?????目錄???????????0??2017-08-18?13:08??FiveChessD2D\x64\
?????目錄???????????0??2017-08-18?13:08??FiveChessD2D\x64\Debug\
?????文件?????????829??2017-08-13?11:41??FiveChessD2D\x64\Debug\FiveChessD2D.Build.CppClean.log
?????文件?????????185??2017-08-08?12:12??FiveChessD2D\x64\Debug\FiveChessD2D.log
?????目錄???????????0??2017-08-18?13:08??FiveChessD2D\x64\Debug\FiveChessD2D.tlog\
?????目錄???????????0??2017-08-18?13:08??FiveChessD2D\x64\Release\
?????文件??????951067??2017-07-31?21:50??FiveChessD2D\x64\Release\Five.obj
?????文件?????????356??2017-07-31?21:50??FiveChessD2D\x64\Release\FiveChessD2D.log
?????目錄???????????0??2017-08-18?13:08??FiveChessD2D\x64\Release\FiveChessD2D.tlog\
?????文件?????????646??2017-07-31?21:50??FiveChessD2D\x64\Release\FiveChessD2D.tlog\CL.command.1.tlog
?????文件???????36376??2017-07-31?21:50??FiveChessD2D\x64\Release\FiveChessD2D.tlog\CL.read.1.tlog
?????文件?????????336??2017-07-31?21:50??FiveChessD2D\x64\Release\FiveChessD2D.tlog\CL.write.1.tlog
?????文件?????????199??2017-07-31?21:50??FiveChessD2D\x64\Release\FiveChessD2D.tlog\FiveChessD2D.lastbuildstate
?????文件????????3402??2017-07-31?21:50??FiveChessD2D\x64\Release\FiveChessD2D.tlog\FiveChessD2D.write.1u.tlog
?????文件????????1238??2017-07-31?21:50??FiveChessD2D\x64\Release\FiveChessD2D.tlog\li
?????文件????????4386??2017-07-31?21:50??FiveChessD2D\x64\Release\FiveChessD2D.tlog\li
?????文件?????????338??2017-07-31?21:50??FiveChessD2D\x64\Release\FiveChessD2D.tlog\li
?????文件??????520192??2017-07-31?21:50??FiveChessD2D\x64\Release\vc141.pdb
評論
共有 條評論