Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1852391
  • 博文数量: 909
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 12260
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-06 20:50
文章分类

全部博文(909)

文章存档

2008年(909)

我的朋友

分类:

2008-05-06 22:06:54

一起学习
一款简单的RPG游戏

作者:xieyuntian1981

下载本文示例工程

游戏运行效果图如下:


大家好,这是我第一次写这种游戏,有什么不正确的地方希望大家能够指出来,我的这个游戏的图片全部来自网络上面的一个英雄救美的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

下载本文示例代码


一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏一款简单的RPG游戏
阅读(363) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~