資源簡介
《MFC游戲開發》筆記八 游戲特效的實現(二):粒子系統 配套源代碼
歡迎大家關注
配套博文地址http://blog.csdn.net/u011371356/article/details/9360993
代碼片段和文件信息
//-----------------------------------【程序說明】----------------------------------------------
//?【MFC游戲開發】筆記八?粒子系統?配套源代碼
//?VS2010環境
//?更多內容請訪問霧央CSDN博客?http://blog.csdn.net/u011371356/article/category/1497651
//?霧央的新浪微博:?@七十一霧央
//------------------------------------------------------------------------------------------------
//?ChildView.cpp?:?CChildView?類的實現
//
#include?“stdafx.h“
#include?“GameMFC.h“
#include?“ChildView.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#endif
//定時器的名稱用宏比較清楚
#define?TIMER_PAINT?1
#define?TIMER_HEROMOVE?2
//四個方向
#define?DOWN?0
#define?LEFT?1
#define?RIGHT?2
#define?UP?3
//窗口大小
#define?WINDOW_WIDTH?800
#define?WINDOW_HEIGHT?600
//?CChildView
CChildView::CChildView()
{
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildView?CWnd)
ON_WM_PAINT()
ON_WM_KEYDOWN()
ON_WM_LBUTTONDOWN()
ON_WM_TIMER()
ON_WM_CREATE()
END_MESSAGE_MAP()
//將png貼圖透明
void?TransparentPNG(CImage?*png)
{
for(int?i?=?0;?i?GetWidth();?i++)
{
for(int?j?=?0;?j?GetHeight();?j++)
{
unsigned?char*?pucColor?=?reinterpret_cast(png->GetPixelAddress(i??j));
pucColor[0]?=?pucColor[0]?*?pucColor[3]?/?255;
pucColor[1]?=?pucColor[1]?*?pucColor[3]?/?255;
pucColor[2]?=?pucColor[2]?*?pucColor[3]?/?255;
}
}
}
//?CChildView?消息處理程序
BOOL?CChildView::PreCreateWindow(CREATESTRUCT&?cs)?
{
if?(!CWnd::PreCreateWindow(cs))
return?FALSE;
cs.dwExstyle?|=?WS_EX_CLIENTEDGE;
cs.style?&=?~WS_BORDER;
cs.lpszClass?=?AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS?
::LoadCursor(NULL?IDC_ARROW)?reinterpret_cast(COLOR_WINDOW+1)?NULL);
//-----------------------------------游戲數據初始化部分-------------------------
//加載背景
m_bg.Load(“bigbg.png“);
//獲取背景地圖的寬度
m_mapWidth=m_bg.GetWidth();
//加載英雄圖片
MyHero.hero.Load(“heroMove.png“);
TransparentPNG(&MyHero.hero);
//初始化英雄狀態
MyHero.direct=UP;
MyHero.frame=0;
//設置英雄初始位置
MyHero.x=80;????
MyHero.y=400;
//設置地圖初始從最左端開始顯示
m_xMapStart=0;
//加載雪花圖像
char?buf[20];
for(int?i=0;i<7;i++)????//加載七種圖像
{
sprintf(buf“Snow//%d.png“i);
m_snowMap[i].Load(buf);
}
//初始化雪花粒子
for(int?i=0;i {
Snow[i].x=rand()%?WINDOW_WIDTH;???//最初雪花在水平方向上隨機出現
Snow[i].y=rand()%?WINDOW_HEIGHT;?//垂直方向上也是隨機出現
Snow[i].number=rand()%7;?????????//七種雪花中的一種
}
return?TRUE;
}
//計算地圖左端x開始位置
void?CChildView::GetMapStartX()
{
//如果人物不在最左邊和最右邊半個屏幕內時,地圖的起始坐標是需要根據人物位置計算的。
if(MyHero.xWINDOW_WIDTH/2)
m_xMapStart=MyHero.x-WINDOW_WIDTH/2;
}
//獲取人物在屏幕上的坐標
int?GetScreenX(int?xHeroint?mapWidth)
{
//如果人物在最左邊和最右邊半個屏幕內時,那么人物就處在屏幕中間
if(xHeroWINDOW_WIDTH/2)
return?WINDOW_WIDTH/2;
else?if(xHero<=WINDOW_WIDTH/2)?????//在最左邊半個屏幕時,人物在屏幕上的位置就是自己的x坐標了
return?xHero;
else?
return?WINDOW_WIDTH-(mapWidth-xHero);??//在最右邊半個屏幕
}
void?CChildView::OnPaint()?
{
//獲取窗口DC指針
CDC?*cDC
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????228864??2013-07-17?21:30??GameMFC\Debug\GameMFC.exe
?????文件????1746892??2013-07-17?21:30??GameMFC\Debug\GameMFC.ilk
?????文件????5401600??2013-07-17?21:30??GameMFC\Debug\GameMFC.pdb
?????文件????1417800??2013-07-14?23:08??GameMFC\GameMFC\bg.png
?????文件????4454679??2013-07-16?16:04??GameMFC\GameMFC\bigbg.png
?????文件???????6263??2013-07-17?21:54??GameMFC\GameMFC\ChildView.cpp
?????文件???????1319??2013-07-17?21:19??GameMFC\GameMFC\ChildView.h
?????文件?????140769??2013-07-17?21:30??GameMFC\GameMFC\Debug\ChildView.obj
?????文件???????2902??2013-07-17?21:30??GameMFC\GameMFC\Debug\cl.command.1.tlog
?????文件??????49644??2013-07-17?21:30??GameMFC\GameMFC\Debug\CL.read.1.tlog
?????文件???????2264??2013-07-17?21:30??GameMFC\GameMFC\Debug\CL.write.1.tlog
?????文件???????4027??2013-07-15?14:43??GameMFC\GameMFC\Debug\GameMFC.Build.CppClean.log
?????文件????????667??2013-07-15?14:43??GameMFC\GameMFC\Debug\GameMFC.exe.em
?????文件????????732??2013-07-17?21:23??GameMFC\GameMFC\Debug\GameMFC.exe.em
?????文件????????381??2013-07-17?21:30??GameMFC\GameMFC\Debug\GameMFC.exe.intermediate.manifest
?????文件?????????59??2013-07-17?21:30??GameMFC\GameMFC\Debug\GameMFC.lastbuildstate
?????文件???????2884??2013-07-17?21:30??GameMFC\GameMFC\Debug\GameMFC.log
?????文件??????55008??2013-07-17?21:23??GameMFC\GameMFC\Debug\GameMFC.obj
?????文件???33685504??2013-07-17?21:23??GameMFC\GameMFC\Debug\GameMFC.pch
?????文件??????75312??2013-07-17?21:23??GameMFC\GameMFC\Debug\GameMFC.res
?????文件????????204??2013-07-15?14:43??GameMFC\GameMFC\Debug\GameMFC_manifest.rc
?????文件??????????2??2013-07-17?21:30??GameMFC\GameMFC\Debug\li
?????文件??????????2??2013-07-17?21:30??GameMFC\GameMFC\Debug\li
?????文件??????????2??2013-07-17?21:30??GameMFC\GameMFC\Debug\li
?????文件??????????2??2013-07-17?21:30??GameMFC\GameMFC\Debug\li
?????文件??????????2??2013-07-17?21:30??GameMFC\GameMFC\Debug\li
?????文件??????????2??2013-07-17?21:30??GameMFC\GameMFC\Debug\li
?????文件??????????2??2013-07-17?21:30??GameMFC\GameMFC\Debug\li
?????文件??????????2??2013-07-17?21:30??GameMFC\GameMFC\Debug\li
?????文件??????????2??2013-07-17?21:30??GameMFC\GameMFC\Debug\li
............此處省略82個文件信息
評論
共有 條評論