1,本来我想先把游戏传上来的,但是审核没通过.只好连源码一块传上来.
2,游戏没有完成,有些选项不能用,我现在还在陆续的写.
3,代码虽然有点乱但是新手看看还是蛮有意思的.
4,图形引擎部分用的是DirectDraw但是我已经尽量把它分离出来了.
5,gif 和 png 图片解码我是在网上搜的,其余部分多数都是自己写的.
6,如果你要编译需要下载dx8.0sdk(可以在GameRes.com下载精简版的).
7,我用的是vc6.0的编译器但我在vc2008 devc++都测试过可以编译的.
8,里面有我编译好的可执行文件.完全仿照fc游戏三国志-中原之霸者.(鼠标操作)
9,程序里面有一些内存泄露.但不会引起系统错误.
10,最重要的一点,你可以看一看真正的业余程序员写的程序.源码下载地址:
http://download.csdn.net/source/2530808
2,游戏没有完成,有些选项不能用,我现在还在陆续的写.
3,代码虽然有点乱但是新手看看还是蛮有意思的.
4,图形引擎部分用的是DirectDraw但是我已经尽量把它分离出来了.
5,gif 和 png 图片解码我是在网上搜的,其余部分多数都是自己写的.
6,如果你要编译需要下载dx8.0sdk(可以在GameRes.com下载精简版的).
7,我用的是vc6.0的编译器但我在vc2008 devc++都测试过可以编译的.
8,里面有我编译好的可执行文件.完全仿照fc游戏三国志-中原之霸者.(鼠标操作)
9,程序里面有一些内存泄露.但不会引起系统错误.
10,最重要的一点,你可以看一看真正的业余程序员写的程序.源码下载地址:
http://download.csdn.net/source/2530808
http://resource.gameres.com/dx81.zip
可能需要设置afxres.h的包含路径.
请问楼主 怎么配置啊
我直接 打开工作空间 然后加添加了 那个 lib
可是还有错误啊
c:\documents and settings\lin\桌面\sg100708\sg100708\directdraw.h(13) : see declaration of 'tagDXSURFACE'
我用 的 d3d 9.0的
#pragma comment(lib, "C:\\Program Files\\dx8sdk1\\lib\\dxguid.lib ")
#pragma comment(lib, "C:\\Program Files\\dx8sdk1\\lib\\ddraw.lib ")
//还有必须先包含d3d 9.0中的ddraw.h,vc6.0中的那个太老了.
//还有必须先包含d3d 9.0中的ddraw.h,vc6.0中的那个太老了.
-----------------------------------------------------------
这个是 自己#include <ddraw.h>吗
#pragma comment(lib, "C:\\Program Files\\dx8sdk1\\lib\\dxguid.lib ")
#pragma comment(lib, "C:\\Program Files\\dx8sdk1\\lib\\ddraw.lib ")
#include <ddraw.h>
//改成
#pragma comment(lib, "dxguid.lib ")
#pragma comment(lib, "ddraw.lib ")
#include "ddraw.h"
//然后在dx9.0sdk中找到ddraw.h,dxguid.lib,ddraw.lib这三个文件
//把它们复制到和工作空间就是和sanguo.dsw在一个目录下就ok了.其余就不用管了.
if (s_CityIte->GetSelectManCount()MaxMoveManCount
||s_CityIte->IsSelectAllMan())
{
s_CityIte->SwitchSelectCurrentMan();
}
//有错误改成
if (s_CityIte->GetSelectManCount()MaxMoveManCount
||!s_CityIte->IsSelectAllMan())
{
s_CityIte->SwitchSelectCurrentMan();
}
再次声明:这有游戏没有完成,严格的说完成度不到百分之十.里面的代码也不是十分的整洁大约有4000行代码,50个左右的文件,个人感觉唯一值得赞赏的地方就是框架打造的还不错,虽然文件多但是每个文件都有各自的用途,尽量避免了相互牵扯.是按照场景来划分的,如果大家有兴趣可以很轻松的加入自己的代码,里面的一些BUG可以很轻松的修正,鼠标操作也能够很容易的一直成为键盘版的,你现在看到的是我修改了无数次才是现在的这个样子,初期的代码直接没法看.里面的一些非常有意思的功能是很多初学者都想了解的.里面的DIRECTDRAW引擎可以做成库文件也就是说C语言也能用.我花了很长时间优化<查看武将>选项,尽量使动画平滑运行.我在主循环里面使用了Sleep(1),这样在单核的计算机里面图像的FPS只能达到60左右,如果加入一些线程还能高一些.里面大多数代码都没有什么技术含量,即使这样仍然花费了我很长的时间.虽然网上有谣言说win7已经不再支持DIRECTDRAW但这个游戏我在win7中测试过确实能运行没问题的,很多人可能觉得DIRECTDRAW已经过时了,应该直接搞D3D,但我个人能力有限而且我也觉得大多数程序员能把DIRECTDRAW搞精通就很不错了.游戏里面的大多数图片是在神农氏之祖的百度空间里面下载的.
e:\sg\sg100708\directdraw.h(14) : error C2146: syntax error : missing ';' before identifier 'pdds'
e:\sg\sg100708\directdraw.h(14) : error C2501: 'LPDIRECTDRAWSURFACE7' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(14) : error C2501: 'pdds' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(62) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\directdraw.h(272) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\basic.cpp(151) : error C2039: 'pdds' : is not a member of 'tagDXSURFACE'
e:\sg\sg100708\directdraw.h(13) : see declaration of 'tagDXSURFACE'
e:\sg\sg100708\basic.cpp(151) : error C2660: 'ConvertGDIColor' : function does not take 2 parameters
e:\sg\sg100708\basic.cpp(154) : error C2039: 'pdds' : is not a member of 'tagDXSURFACE'
e:\sg\sg100708\directdraw.h(13) : see declaration of 'tagDXSURFACE'
e:\sg\sg100708\basic.cpp(154) : error C2660: 'ConvertGDIColor' : function does not take 2 parameters
e:\sg\sg100708\basic.cpp(155) : error C2039: 'pdds' : is not a member of 'tagDXSURFACE'
e:\sg\sg100708\directdraw.h(13) : see declaration of 'tagDXSURFACE'
e:\sg\sg100708\basic.cpp(155) : error C2660: 'ConvertGDIColor' : function does not take 2 parameters
Com00.cpp
e:\sg\sg100708\directdraw.h(14) : error C2146: syntax error : missing ';' before identifier 'pdds'
e:\sg\sg100708\directdraw.h(14) : error C2501: 'LPDIRECTDRAWSURFACE7' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(14) : error C2501: 'pdds' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(62) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\directdraw.h(272) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
Com1_.cpp
e:\sg\sg100708\directdraw.h(14) : error C2146: syntax error : missing ';' before identifier 'pdds'
e:\sg\sg100708\directdraw.h(14) : error C2501: 'LPDIRECTDRAWSURFACE7' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(14) : error C2501: 'pdds' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(62) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\directdraw.h(272) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
Com1_1.cpp
e:\sg\sg100708\directdraw.h(14) : error C2146: syntax error : missing ';' before identifier 'pdds'
e:\sg\sg100708\directdraw.h(14) : error C2501: 'LPDIRECTDRAWSURFACE7' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(14) : error C2501: 'pdds' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(62) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\directdraw.h(272) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
Com1_2.cpp
e:\sg\sg100708\directdraw.h(14) : error C2146: syntax error : missing ';' before identifier 'pdds'
e:\sg\sg100708\directdraw.h(14) : error C2501: 'LPDIRECTDRAWSURFACE7' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(14) : error C2501: 'pdds' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(62) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\directdraw.h(272) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
Com1_3.cpp
e:\sg\sg100708\directdraw.h(14) : error C2146: syntax error : missing ';' before identifier 'pdds'
e:\sg\sg100708\directdraw.h(14) : error C2501: 'LPDIRECTDRAWSURFACE7' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(14) : error C2501: 'pdds' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(62) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\directdraw.h(272) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
Com1_5.cpp
e:\sg\sg100708\directdraw.h(14) : error C2146: syntax error : missing ';' before identifier 'pdds'
e:\sg\sg100708\directdraw.h(14) : error C2501: 'LPDIRECTDRAWSURFACE7' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(14) : error C2501: 'pdds' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(62) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\directdraw.h(272) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
Com2_.cpp
e:\sg\sg100708\directdraw.h(14) : error C2146: syntax error : missing ';' before identifier 'pdds'
e:\sg\sg100708\directdraw.h(14) : error C2501: 'LPDIRECTDRAWSURFACE7' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(14) : error C2501: 'pdds' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(62) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\directdraw.h(272) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
Com2_1.cpp
e:\sg\sg100708\directdraw.h(14) : error C2146: syntax error : missing ';' before identifier 'pdds'
e:\sg\sg100708\directdraw.h(14) : error C2501: 'LPDIRECTDRAWSURFACE7' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(14) : error C2501: 'pdds' : missing storage-class or type specifiers
e:\sg\sg100708\directdraw.h(62) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'
e:\sg\sg100708\directdraw.h(272) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这是怎么回事啊?请指教