Chinaunix首页 | 论坛 | 博客
  • 博客访问: 523465
  • 博文数量: 576
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5020
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(576)

文章存档

2011年(1)

2008年(575)

我的朋友

分类:

2008-10-14 14:52:22

一款简单的RPG游戏

作者:



游戏运行效果图如下:


大家好,这是我第一次写这种游戏,有什么不正确的地方希望大家能够指出来,我的这个游戏的图片全部来自网络上面的一个英雄救美的RPG游戏,但是,我下载后发现不能运行,我就用了几天时间自己写了一个比较简单的。这里,我谢谢英雄救美的作者的图片。
在我这里简单的游戏中,我采用了DirectX来编写,主要的函数有bmove(int &zhi)
以下是这个函数的代码部分:

pBBuf->BltFast( 0 , 0 , pOPla[zai], CRect(0,0,640,480) , DDBLTFAST_WAIT);
if (tab)
{ 
	//如果按了空格键就要显示主人公的话
	pBBuf->BltFast(0, 380, pOPla[13], CRect(0, 0, 640,100), 
			DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);
	pBBuf->BltFast(5, 385, pOPla[14], CRect(0, 0, 85,85),
			DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);
}

if ((whero.x1 - 30 == hero.x1) && (whero.y1 == hero.y1))
{
	numx = 1;	  //如果主人公和游戏中的人物在一起了,就返回。
	whero.x1 += 10;  
	return;
}

if ((whero.x1 + 30 == hero.x1) && (whero.y1 == hero.y1))
{ 
	numx = 1;
	if (num == 20)
	{
		numx = 0;
	}
	whero.x1 -= 10;
	return;
}

if (hero.y1 > whero.y1)
{
	pBBuf->BltFast(whero.x1, whero.y1, pOPla[zhi], CRect(0,0,40,40),
			DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY); 
	pBBuf->BltFast(hero.x1, hero.y1, pOPla[hero.control], CRect(0,0,40,40),
			DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);  	   	
}
else if (hero.y1 <= whero.y1)
{
	pBBuf->BltFast(hero.x1, hero.y1, pOPla[hero.control], CRect(0,0,40,40),
			DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY);
	pBBuf->BltFast(whero.x1, 150, pOPla[zhi], CRect(0,0,40,40),
			DDBLTFAST_WAIT|DDBLTFAST_SRCCOLORKEY); 
}

pPSur->Flip(NULL, DDFLIP_WAIT);

}
还有一些比较重要的函数,在ontimer()函数中来实现。具体可以看代码。
具体操作是,空格键用来和游戏中的人物对话和显示主人公自己想说的话,用键盘操作主人公的行动。
最后,希望爱好游戏编写的人多和我联系,毕竟我才学习了Directx编程才十多天的的时间。
我的邮箱地址是 :xieyuntian1981@21cn.com
QQ是:109021029


--------------------next---------------------

不好意思。看了一些朋友对这游戏DEMO的关注。可能很多朋友下了以后运行不了,这里我说明一下。这个是DX程序。需要自己安装DX的SDK.至于怎么设置我不说了,可以到网上去找,相关的设置太多了。这里我就说明一下,一定要DX的SDK。 ( xieyuntian1981 发表于 2006-10-28 22:50:00)
 
hao ( wgm001 发表于 2006-5-13 12:22:00)
 
为什么我装了direct9c,也改了stdafx.h还不行? ( keyesxin 发表于 2004-12-2 15:46:00)
 
首先,震撼老兄的学习能力。
唉,我没有DIRECTX学习经验,不过关于gamedoc的文件好象是多余的。可以把他们删除:)MFC就是这样强奸我们的系统资源:(在公司里做的,没有敢测试,不过可以运行,不知道能不能正常退出。方法很简单,首先在WORKSPACE里删除GAMEDOC.cpp和.H文件再把关于GAMEDOC的操作语句注释掉就可以了。有兴趣的话,把那两个文件永久删除。。。应该还可以搞多点垃圾走的。不过没有时间,望有心人继续做下去,欢迎讨论jiangnangod@163.com ( touchlin 发表于 2004-6-19 11:42:00)
 
这么短的时间能学这样不错了,英雄救美是可以编译运行的,到上下载吧。是给入大学之前写的礼物。 ( sea_soft 发表于 2004-5-10 8:54:00)
 
我才学习Directx才十多天,所以,有很多问题。如果,有什么问题。请高手们多多指教。好让我也多学习点 ( xieyuntian1981 发表于 2004-4-26 12:54:00)
 
多谢两位,问题果然如二位所述,下载9.0安装后解决 ( zhaoxm 发表于 2004-4-26 10:12:00)
 
其实装了directx之后也未必成功,需要把stdafx.h中的
#include 
改为
#include "ddraw.h"
或者使用ddraw.h的全路径,这样就会使用新的ddraw.h头文件而不是旧的。 ( _xiao 发表于 2004-4-25 22:25:00)
 
是你的机子上没有装DirectX的SDK,到微软主页上面去下载Direct7.0以上的版本并安装 ( zhanying 发表于 2004-4-25 13:13:00)
 
有错误,系统2000Server,VC6
C:\TEST\rpggame\MainFrm.cpp(19) : error C2146: syntax error : missing ';' before identifier 'pDD7'
C:\TEST\rpggame\MainFrm.cpp(19) : error C2501: 'LPDIRECTDRAW7' : missing storage-class or type specifiers
C:\TEST\rpggame\MainFrm.cpp(19) : fatal error C1004: unexpected end of file found ( zhaoxm 发表于 2004-4-25 10:41:00)
 
.......................................................

--------------------next---------------------

阅读(294) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~