资源简介
第五个作品 这次使用类把角色封装起来,便于实行多个敌人的产生,原本主角也应该那样做的,只是刚开始的时候没有想好,没做成,所以代码有点繁琐,在内存处理上也没有做得很好,因为没有学到优化的方式,所以载入时间有点长,稍等十几秒应该就载入成功了,敌人AI也是自己构思出来的,所以可能比较简单,希望能对大家有帮助。
by巅锋
代码片段和文件信息
/*************************************
游戏引擎源文件 GameEngine.cpp
*************************************/
#include “GameEngine.h“
/* 导入游戏引擎中需要用到的头文件和相关库文件 */
#include “winuser.h“
#include “mmsystem.h“
#include “wingdi.h“
#pragma comment(lib“user32.lib“)
#pragma comment(lib“winmm.lib“)
#pragma comment(lib“gdi32.lib“)
/* 初始化游戏引擎静态指针 */
GameEngine * GameEngine::m_pGameEngine=NULL;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* 游戏引擎构造函数 */
GameEngine::GameEngine(HINSTANCE hInstanceLPTSTR szWindowClassLPTSTR sztitleWORD wIconWORD wSmallIconBOOL bFullScreenint nColorbitint nWidthint nHeight)
{
m_pGameEngine=this; //将当前实例赋给静态指针m_pGameEngine
m_hInstance=hInstance; //设置引擎实例为当前程序实例句柄
lstrcpy(m_szWindowClassszWindowClass); //将窗口类注册名称赋给_szWindowClass
lstrcpy(m_sztitlesztitle); //将标题赋给m_sztitle
/* 设置屏幕模式和大小 */
m_bFullScreen=bFullScreen;
m_nColorbit=nColorbit;
m_nWidth=nWidth;
m_nHeight=nHeight;
/*设置图标和光标*/
m_wIcon=wIcon;
m_wSmallIcon=wSmallIcon;
/* 记录游戏开始时间和下次循环时间 */
m_lStartTime=timeGetTime();
m_lNextGameTick=m_lStartTime;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* 游戏引擎析构函数 */
GameEngine::~GameEngine() { }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* 创建游戏窗口 */
BOOL GameEngine::CreateGameWindow()
{
WNDCLASSEX wcApp; //声明窗口类
HWND hWnd=NULL; //声明程序主窗口句柄
int nPosXnPosYnWndWidthnWndHeight; //声明窗口位置和大小变量
DWORD dwWinstyle; //声明窗口风格变量
wcApp.cbSize=sizeof(wcApp);
//给窗口属性赋值
wcApp.lpszClassName=m_szWindowClass; //设置窗口类名
wcApp.style=CS_HREDRAW; //定义窗口风格
wcApp.lpfnWndProc=WndProc; //指定消息处理函数
wcApp.hInstance=m_hInstance; //指定义窗口应用程序的句柄
wcApp.cbWndExtra=0;
wcApp.cbClsExtra=0;
//加载程序图标(大)
wcApp.hIconSm=LoadIcon(m_hInstance MAKEINTRESOURCE(m_wIcon));
//加载程序图标(小)
wcApp.hIcon=LoadIcon(m_hInstance MAKEINTRESOURCE(m_wSmallIcon));
wcApp.hCursor=LoadCursor(NULLIDC_ARROW); //加载鼠标样式
wcApp.hbrBackground=(HBRUSH)(COLOR_WINDOW); //设置窗口背景色
wcApp.lpszMenuName=NULL; //设置窗口没有菜单
RegisterClassEx(&wcApp); //注册窗口类
/*使用DEVMODE结构设置屏幕显示模式*/
DEVMODE DevMode;
ZeroMemory(&DevMode sizeof(DevMode)); //将结构DevMode的内存清零
DevMode.dmSize=sizeof(DevMode); //设置DevMode存储空间以存储屏幕属性数据
//用当前屏幕显示模式设置填充DevMode
EnumDisplaySettings(NULLENUM_CURRENT_SETTINGS&DevMode);
BOOL bDisplayChange=FALSE; //标识屏幕显示模式是否改变
//如果屏幕显示模式位数与游戏不同
if( DevMode.dmBitsPerPel!=(unsigned long)m_nColorbit)
{
DevMode.dmBitsPerPel=m_nColorbit; //设置显示模式位数
bDisplayChange=TRUE;
}
//如果全屏状态下的屏幕尺寸与窗口不同;或屏幕尺寸小于窗口都需要重设显示模式
if((m_bFullScreen && m_nWidth!=GetSystemMetrics(SM_CXSCREEN))
|| m_nWidth>GetSystemMetrics(SM_CXSCREEN))
{
DevMode.dmPelsWidth=m_n
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-03-30 14:48 5GoFight\
文件 2238 2001-04-17 18:13 5GoFight\Arrow.cur
目录 0 2013-03-23 13:18 5GoFight\Debug\
文件 27302 2013-03-23 13:18 5GoFight\Debug\GameEngine.obj
文件 0 2013-03-23 13:18 5GoFight\Debug\GameEngine.sbr
文件 21876 2013-03-23 13:18 5GoFight\Debug\GameMusic.obj
文件 0 2013-03-23 13:18 5GoFight\Debug\GameMusic.sbr
文件 37786 2013-03-23 13:18 5GoFight\Debug\GamePhysics.obj
文件 0 2013-03-23 13:18 5GoFight\Debug\GamePhysics.sbr
文件 1301 2013-03-18 21:02 5GoFight\Debug\Global.obj
文件 0 2013-03-18 21:02 5GoFight\Debug\Global.sbr
文件 2139136 2013-03-23 13:18 5GoFight\Debug\GoFight.bsc
文件 307263 2013-03-23 13:18 5GoFight\Debug\GoFight.exe
文件 363020 2013-03-23 13:18 5GoFight\Debug\GoFight.ilk
文件 5732524 2013-03-23 13:18 5GoFight\Debug\GoFight.pch
文件 574464 2013-03-23 13:18 5GoFight\Debug\GoFight.pdb
文件 6684 2013-03-23 13:18 5GoFight\Debug\resource.res
文件 67936 2013-03-23 13:18 5GoFight\Debug\RobotAI.obj
文件 0 2013-03-23 13:18 5GoFight\Debug\RobotAI.sbr
文件 44661 2013-03-23 13:18 5GoFight\Debug\Sprite.obj
文件 0 2013-03-23 13:18 5GoFight\Debug\Sprite.sbr
文件 51658 2013-03-23 13:18 5GoFight\Debug\SpriteManage.obj
文件 0 2013-03-23 13:18 5GoFight\Debug\SpriteManage.sbr
文件 197632 2013-03-23 13:18 5GoFight\Debug\vc60.idb
文件 118784 2013-03-23 13:18 5GoFight\Debug\vc60.pdb
文件 98775 2013-03-23 13:18 5GoFight\Debug\Winapp.obj
文件 0 2013-03-23 13:18 5GoFight\Debug\Winapp.sbr
文件 9498 2013-03-09 21:34 5GoFight\GameEngine.cpp
文件 4217 2013-03-08 16:12 5GoFight\GameEngine.h
文件 4970 2008-09-28 10:44 5GoFight\GameMusic.cpp
文件 1091 2008-09-28 10:33 5GoFight\GameMusic.h
............此处省略62个文件信息
相关资源
- Unity捕鱼达人小游戏源码和可运行导出
- HALCON模板匹配源代码
- MUD游戏编程.part5(无水印版本)
- Plant Simulation应用教程[周金平][程序源
- 北大青鸟S2结业项目品红宣传网站源代
- 学员综合素质评测系统源代码
- 安卓开源播放器源代码
- JM10.2源代码
- FPGA驱动OLED动态显示Verilog代码
- [修改代码的艺术(中文版)] .pdf
- 珍藏大量Flash游戏
- CEGUI最新的统一界面编辑器
- ros by example中文版本原版及源代码,更
- 2018个人博客搭建代码
- 51单片机迷宫游戏源码及实验报告
- 完整代码!扫雷游戏,vs2010
- 人脸识别,完整代码和素材
- sublime text3 verilog&VHDL;语言专版
- EXE文件解析代码
- linux-2.6.22.6 源代码
- unity三消游戏源码
- 人工智能-人脸识别源代码分享
- 游戏的设计与开发 梦开始的地方
- OpenGL编程指南原书第9版内
- 独立游戏开发电子杂志(共六本)
- kaggle肺癌检测第一名解决方案和代码
- notegemonenote 的插件 ,十分好用,功能
- 23种设计模式-简单通俗的代码解释
- GPS数据解析 ,源代码
- 远程控制源代码
评论
共有 条评论