网络游戏demo开发实例:多人在线RPG游戏(MMO RPG)demo的开发记录(第2篇)

本文档记录了网络游戏demo开发的实例,特别是多人在线角色扮演游戏(MMO RPG)的开发过程。在第2篇中,作者详细介绍了如何封装MyBitMap类,以简化客户端的贴图操作。通过这个封装,可以在指定的HDC上更方便地显示位图。源代码可在GitHub仓库https://github.com/changjixiong/MMO-RPGGame找到,并提供了使用SVN获取不同版本代码的指南。如有疑问,可联系作者changjixiong@gmail.com。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

version3

主要内容:封装MyBitMap

所属部分:客户端

代码地址 https://github.com/changjixiong/MMO-RPGGame, 如何获得代码,请参考如何用SVN从github上检出代码的不同版本

邮件地址:changjixiong@gmail.com

本系列目录


MyBitMap将上一篇的的贴图操作封装起来,这样更方便使用

在MyBitMap的构造函数用根据窗口的HDC 和 位图的路径,初始化成员变量bitmap,hdcBitMap等,用函数Show在指定的HDC上贴图

然后,上文中的代码就成了这个样子

	HDC			hdcScreen = GetDC(hwnd);
	MyBitMap	bitGround(hdcScreen, "./pic/map/ground.BMP");
	MyBitMap	bitMan(hdcScreen, "./pic/man/c00000.bmp");
		
	// enter main event loop, but this time we use PeekMessage()
	// instead of GetMessage() to retrieve messages
	while(TRUE)
		{
		// test if there is a message in queue, if so get it
		if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
		   { 
		   // test if this is a quit
		   if (msg.message == WM_QUIT)
			   break;
		
		   // translate any accelerator keys
		   TranslateMessage(&msg);

		   // send the message to the window proc
		   DispatchMessage(&msg);
		   } // end if
    
		// main game processing goes here
		// Game_Main(); // or whatever your loop is called		
		//BitBlt(hdcScreen, 0, 0, 640, 480, hdcGround, 0, 0, SRCCOPY);
		bitGround.Show(hdcScreen);
		bitMan.Show(hdcScreen);
		
		//
		} // end while

	//Game_Shutdown();	
但是,运行后看到,地图看的到,人物看不到(其实是闪的很快),其实是因为这个while循环太快了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值