第一次写博客,感觉怪怪的。
我想学习游戏编程,之前也写过简单的2D类型的类似超级玛丽游戏,但是感觉除了在设计思想方面和GUI基本毫无收获,于是准备从头开始,去认识游戏是怎么编成的,虽然我很菜,但是我有信心。
我认为一个游戏首先要具备的就是素材,幸好之前就有好多存货,这次准备的是依然2D的,当然3D的从现在搞有点难度,不过这次的图片是斜45度类型的,相当于2.5D的吧,刚好符合2D->2.5D->3D的路线,废话不多说开始吧。
开始研究Win32的GUI,当然有好多成熟的GUI库,好多是跨平台的,可视化的,不过对于喜欢钻牛角尖的我来说,单纯的组织数据来编写游戏满足不了我,我要从里到外把它摸一遍。直接用Win32API编写界面,嗯,不得不说这个决定是很愚蠢的,因为这相当于要自己砍木做房子,而不是用别人造好的家具。
接下来我看了Directx2D,不兼容XP及更低的OS,无所谓,反正是学习,不过GDI+也不错,看看后面的实际情况吧,如果有严格性能要求的就用D2D。
接下来就是数据的事情了,嗯,首先就是xml文件的操作,感觉xml格式的数据来驱动游戏是个好方法。C中没有xml的标准库,网上搜之发现tinyxml口碑不错,试了下,果然简单实用。学习之。
接下来开始规划,基本的技术要求都有了解,接下来会使细化的具体实现,那才是最难过的时间,要马不停蹄的各种查资料。好吧,问题已经来了,想了好多哦,头疼,先从最简单的开始做起,抛弃那些不断浮现的想法,因为这是不切实际,一口吃不成胖子。我需要一个地图编辑器,参观了war3的地图编辑器,果然牛逼,暴雪品质不是吹出来的,这个地图编辑器只有一个大窗口,左边是地图编辑区,右边有地图缩略图,一个下拉框列表框显示图片组,下面是要选择的图片,菜单栏有文件和帮助,文件包括打开,新建,保存,退出,工具栏和状态栏暂略。
开始了,我的地图编辑器之旅。
好吧,问题接踵而至,我需要显示图片,使用控件,但是Win32没有现成的,只能自定义,额额额,痛苦,期间学习到了不少Win32的控件的知识,感觉自己牛逼了好多。
看了好多文章,也写了几个简单的例子,都感觉不太完美,其实和一个简单windows窗口一样,需要你指定注册窗口类和窗口过程函数。需要注意的是指定WS_CHILD样式。
第一步:注册窗口类
WNDCLASSEX wc;
wc.cbSize =
sizeof
(wc);
wc.lpszClassName = szClassName;
wc.hInstance =
GetModuleHandle(0);
wc.lpfnWndProc = CustWndProc;
wc.hCursor =
LoadCursor (NULL, IDC_ARROW);
wc.hIcon
= 0;
wc.lpszMenuName = 0;
wc.hbrBackground = (
HBRUSH
)GetSysColorBrush(COLOR_BTNFACE);
wc.style
= 0;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hIconSm = 0;
RegisterClassEx(&wc);
HWND
hwndCtrl;
hwndCtrl = CreateWindowEx(
WS_EX_CLIENTEDGE,
// give it
a standard border
szClassName,
_T(
"A custom
control"
),
WS_VISIBLE | WS_CHILD,
0, 0, 100, 100,
hwndParent,
NULL, GetModuleHandle(0), NULL
);
原文:http://www.cnblogs.com/gameNote/p/3517042.html