精华内容
下载资源
问答
  • 相信很多80,90后的同学们都喜欢在代码之余打打红色警戒 ...红色警戒中把Ra2.exe和Game.exe右键兼容性调到Win XP Serve Pack3 简化颜色模式16位色 管理员模式运行  尤里复仇是把Yuri.exe和Gamemd.exe执行如上操...

    相信很多80,90后的同学们都喜欢在代码之余打打红色警戒

    但是苦于win10差劲兼容性,每次下个红色警戒or尤里复仇不是弹框就是黑屏

    今天笔者给出一个完美究极解决方案

    请注意:

    1!红色警戒中把Ra2.exe和Game.exe右键兼容性调到Win XP Serve Pack3 简化颜色模式16位色 管理员模式运行

      尤里复仇是把Yuri.exe和Gamemd.exe执行如上操作

    2!红色警戒把Ra2.ini中的Video改为这个

    [Video]
    AllowHiResModes=yes
    VideoBackBuffer=no
    AllowVRAMSidebar=no
    ScreenWidth=800
    ScreenHeight=600
    StretchMovies=no

    尤里复仇把Ra2md.ini中的Video改为这个

    [Video]
    VideoBackBuffer=no
    AllowVRAMSidebar=no
    ScreenWidth=800
    ScreenHeight=600
    StretchMovies=no

    3!【最重要】

    到我的百度盘下载如下文件   它的作用是:禁止3D加速

    链接:http://pan.baidu.com/s/1cbyMsu (之前链接失效,现已更新)

     

    玩红警前,运行禁用.reg 就能正常游戏 

    玩完后,运行开启.reg 就能不影响电脑正常工作

    <--!此方案在我的i7-4700MQ和同学的4500块钱的超极本上均实验成功!-->

    如果觉得有用,就评论一个吧!

    转载于:https://www.cnblogs.com/Apocalypse/p/4918975.html

    展开全文
  • 如何在Win10上玩Ra2

    2020-08-16 21:37:12
    如果直接双击运行Ra2.exe,会直接黑屏。只能听到声音,没有画面233,我后来也是在b站上...右键属性,兼容性栏,选择兼容模式 XP SP3和简化颜色 16位(65536) 最后一步:在当前目录下打开命令行,运行 Ra2.exe -win

    如果直接双击运行Ra2.exe,会直接黑屏。只能听到声音,没有画面233,我后来也是在b站上从一位up主那里学到怎么玩的~也非常感谢这位up,adogsama

    设置方法

    寻找exe文件

    在安装目录的Ra2文件夹下找到Ra2.exe或者YURI.exe(尤里的复仇)
    在这里插入图片描述
    在这里插入图片描述

    修改兼容性

    右键属性,兼容性栏,选择兼容模式 XP SP3简化颜色 16位(65536)色

    在这里插入图片描述

    最后一步:在当前目录下打开命令行,运行

    Ra2.exe -win -speedcontrol
    

    一定要加-speedcontrol,不然没法运行游戏,会弹窗错误。

    关于分辨率

    游戏中的分辨率默认是640x480x16的,我尝试了一些办法,都没法让游戏调整成适合自己屏幕的

    在这里插入图片描述
    最终决定将自己的电脑分辨率调成和他差不多的~齐活
    在这里插入图片描述

    Enjoy the game

    在这里插入图片描述
    在这里插入图片描述

    附 快捷键

    参考https://zhidao.baidu.com/question/278021685.html
    红警快捷键都有:
    "D"键–部署bai;
    "G"键–保持警戒状du态;
    "X"键–通过散开来躲避碾压;
    "CTRL"键–强制攻击zhi;
    "ALT"键–强制移动;
    "ESC"键–选项菜单dao;
    "T"键–召唤同类部队;
    "Z"键—查看路径点;
    "space"键—可以跳到指定地点躲避袭击;
    "Q"键–可以打开建筑页面;

    展开全文
  • 现在估计很少有能使用32位色彩以下的显卡了吧(也没必要吧),所以我就把8位、16位、24位这样的内容跳过,直接上32位,而且所有的代码都是能在Win10 - VS2015中运行的。   因为是32位存储,所以调色板不需要了,...

    版本:VS2015      语言:C++

     

    现在估计很少有能使用32位色彩以下的显卡了吧(也没必要吧),所以我就把8位、16位、24位这样的内容跳过,直接上32位,而且所有的代码都是能在Win10 - VS2015中运行的。

     

    因为是32位存储,所以调色板不需要了,那个是在8位中使用的。

     

    好了,让我们来看一下初始化的代码:

    // 游戏初始化
    int Game_Init(void* params = NULL)
    {
    	// 基础设置
    	if (FAILED(DirectDrawCreateEx(NULL, (void**)&lpdd, IID_IDirectDraw7, NULL)))	//获取d7对象
    		return 0;
    	if (FAILED(lpdd->SetCooperativeLevel(main_window_handle,
    		//DDSCL_NORMAL
    		DDSCL_FULLSCREEN | DDSCL_ALLOWMODEX | DDSCL_EXCLUSIVE | DDSCL_ALLOWREBOOT
    		)))	//跟windows协作等级设置为全屏,这是最常用的参数
    		return 0;
    	if (FAILED(lpdd->SetDisplayMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, 0, 0)))	//设置显示模式,如果设置为8位会直接出错
    		return 0;
    
    	// 开始创建显示主界面
    	memset(&ddsd, 0, sizeof(ddsd));
    	ddsd.dwSize = sizeof(ddsd);
    	ddsd.dwFlags = DDSD_CAPS;	//表明ddsCaps是个有效成员
    	ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;	//表明该界面是主界面
    
    	lpdd->CreateSurface(&ddsd, &lpddsprimary, NULL);	//根据界面描述创建主界面
    
    	return 1;
    }
    


    一样的,就是去掉了调色板,首先获取d7对象,然后创建主界面描述,最后根据描述创建主界面。

     

    现在给大家带来最关心的如何使用32位绘图,这边我使用了两中方法,原理是一样的:

    LPWSTR msg = new TCHAR[1024];
    // 弹出消息
    void popMessage(LPWSTR str)
    {
    	MessageBox(main_window_handle, str, TEXT("提示"), MB_OK);
    }
    
    // 32位像素上色
    // 不理解的童鞋想一下:我们一般说的都是argb,内存中也是如此排列的,a是放在的是最高位,b是最低位,按照习惯从左往右读就是argb。
    // 但是要记住char[0]到char[4]这样排列实际上是内存从小到大排列的,所以写的时候感觉是相反的
    void Plot_Pixel_Fast32(int x, int y, int red, int green, int blue, int alpha, UCHAR* video_buffer, int lpitch)
    {
    	DWORD pixel_addr = 4 * x + y * lpitch;	//获取当前要写入的地址
    
    	video_buffer[pixel_addr] = blue;	//写入颜色
    	video_buffer[pixel_addr + 1] = green;
    	video_buffer[pixel_addr + 2] = red;
    	video_buffer[pixel_addr + 3] = alpha;
    }
    
    // 游戏主循环
    int Game_Main(void* params = NULL)
    {
    	// 判断是否要退出
    	if (KEYDOWN(VK_ESCAPE))
    		PostMessage(main_window_handle, WM_CLOSE, 0, 0);
    
    	// 初始化主界面描述
    	DDRAW_INIT_STRUCT(ddsd);
    
    	if (FAILED(lpddsprimary->Lock(NULL, &ddsd, DDLOCK_WAIT | DDLOCK_SURFACEMEMORYPTR, NULL)))	//加锁
    	{
    		wsprintf(msg, TEXT("LOCK 出错了"));
    		popMessage(msg);
    	}
    
    	//画颜色
    	UCHAR *video_buffer = (UCHAR*)ddsd.lpSurface;
    	for (int x = 0; x < 640; ++x)
    		for (int y = 0; y < 480; ++y)
    			Plot_Pixel_Fast32(x, y, 0, 255, 0, 128, video_buffer, ddsd.lPitch);
    
    	if (FAILED(lpddsprimary->Unlock(NULL)))	//解锁
    	{
    		wsprintf(msg, TEXT("UNLOCK 出错了"));
    		popMessage(msg);
    	}
    	return 1;
    }
    

    是不是感觉比8位的还方便?直接在获取主界面缓存中写就行了,让我们再来简化简化,首先加入另一方法:

    #define _RGB32BIT(a, r, g, b) ((b) + (g << 8) + (r << 16) + (a << 24))
    // 32位像素上色
    // 使用第二种方法
    void Plot_Pixel_Fast32_2(int x, int y, int red, int green, int blue, int alpha, UINT* video_buffer, int lpitch)
    {
    	video_buffer[x + y * (lpitch>>2)] = (UINT)(_RGB32BIT(alpha, red, green, blue));	//使用宏直接写,有点区别的是lpitch需要除以4,因为lpitch算的是横向的字节数,而我们把主界面的内存弄成UINT型,是32位、4个字节的,上一节中是我理解的不够深刻
    }
    

    然后游戏循环中的画颜色步骤替换成一下代码:

    UINT *video_buffer = (UINT*)ddsd.lpSurface;
    	for (int x = 0; x < 640; ++x)
    		for (int y = 0; y < 480; ++y)
    			Plot_Pixel_Fast32_2(x, y, 255, 0, 0, 128, video_buffer, ddsd.lPitch);
    

    注意这边用的是int了,最后来看看结果:



    嗯,大红色(当然不是用画图工具画出来的!)。绘制的方式还是比较简单的,仔细分清各个步骤,不要写错就能出结果。

     

    下面来看看界面的双重缓存。

     

    现在游戏应该是3层缓存、或者可能更多吧,主要还是提高游戏运行的流畅度,玩家们想想看CPU为什么要加3级高速缓存呢?其实也就是这个道理吧。

     

    让我们来看看代码:

    // 游戏初始化
    int Game_Init(void* params = NULL)
    {
    	// 基础设置
    	if (FAILED(DirectDrawCreateEx(NULL, (void**)&lpdd, IID_IDirectDraw7, NULL)))	//获取d7对象
    		return 0;
    	if (FAILED(lpdd->SetCooperativeLevel(main_window_handle,
    		//DDSCL_NORMAL
    		DDSCL_FULLSCREEN | DDSCL_ALLOWMODEX | DDSCL_EXCLUSIVE | DDSCL_ALLOWREBOOT
    		)))	//跟windows协作等级设置为全屏,这是最常用的参数
    		return 0;
    	if (FAILED(lpdd->SetDisplayMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, 0, 0)))	//设置显示模式,如果设置为8位会直接出错
    		return 0;
    
    	// 开始创建显示主界面
    	memset(&ddsd, 0, sizeof(ddsd));
    	ddsd.dwSize = sizeof(ddsd);
    	ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;	//表明ddsCaps是个有效成员,并且拥有后备的缓冲
    	ddsd.dwBackBufferCount = 1;	//表明有一个缓冲
    	ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | //表明该界面是主界面
    			DDSCAPS_COMPLEX | //表明拥有缓冲链
    			DDSCAPS_FLIP;	//表明是反正结构的一部分,上面的参数相当于是有缓冲,而这个参数表明可以切换缓冲
    
    	lpdd->CreateSurface(&ddsd, &lpddsprimary, NULL);	//根据界面描述创建主界面
    
    	// 开始创建后备界面,
    	// 这边其实不算是创建,创建主界面的时候所有的后备表面已经创建完成,
    	// 我们之后的工作只是把最后一个表面的指针取出来
    	ddsd.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER;	//表明该界面是后备界面
    	if (FAILED(lpddsprimary->GetAttachedSurface(&ddsd.ddsCaps, &lpddsback)))	//通过主界面创建出备用表面
    	{
    		popMessage(TEXT("创建备用表面出错了"));
    		return 0;
    	}
    
    	return 1;
    }
    
    
    // 游戏主循环
    int Game_Main(void* params = NULL)
    {
    	// 判断是否要退出
    	if (KEYDOWN(VK_ESCAPE))
    		PostMessage(main_window_handle, WM_CLOSE, 0, 0);
    
    	// 初始化主界面描述
    	DDRAW_INIT_STRUCT(ddsd);
    
    	if (FAILED(lpddsback->Lock(NULL, &ddsd, DDLOCK_WAIT | DDLOCK_SURFACEMEMORYPTR, NULL)))	//有备用表面时用备用表面加锁
    	{
    		wsprintf(msg, TEXT("LOCK 出错了"));
    		popMessage(msg);
    	}
    
    	//画颜色
    	UINT *video_buffer = (UINT*)ddsd.lpSurface;
    	for (int x = 0; x < 640; ++x)
    		for (int y = 0; y < 480; ++y)
    			Plot_Pixel_Fast32_2(x, y, 0, 0, 255, 128, video_buffer, ddsd.lPitch);
    
    	if (FAILED(lpddsback->Unlock(NULL)))	//解锁
    	{
    		wsprintf(msg, TEXT("UNLOCK 出错了"));
    		popMessage(msg);
    	}
    
    	while (FAILED(lpddsprimary->Flip(NULL, DDFLIP_WAIT)));	//切换界面,这边的while不是很懂,应该每次只会调用一次
    
    	return 1;
    }
    

    在创建主界面的时候设置后备的参数,然后再从主界面取出备用界面就OK了。在游戏循环中直接在备用界面中着色,完成后由主界面进行切换。

     

    那么怎么创建3重缓冲呢?书上没有说,我一开始以为要创建两次,然后我就google了一下,在微软的官网的找到了这么一句话:

    You do not need to keep track of all surfaces in a triple buffered flippingchain. The only surfaces you must keep pointers to are the primary surface andthe back-buffer surface.

     

    意思就是不用显示调用循环链,直接放到备用缓冲里面就可以了,玩家们仔细看看我对后备缓冲创建时的注释。

     

    嗯,这样就很简单了,直接把dwBackBufferCounting设置为2就行了,其他的操作跟双缓冲一样。

     

    好了,这边的难度感觉确实要高点了,我看的有点慢,下一节还会讲第七章,是如何把图像拷贝到主界面中,按cocos里来说就是创建Sprite精灵。


    展开全文
  • 10.可以自动设置最佳帧数。 11.可以设置录音质量。 12.EXE录像播放自动扩帧功能,更加平滑,即使是1帧/秒也有平滑的效果。 13.AVI扩帧功能,可以制作25帧/秒的AVI动画。 14.鼠标点击自动提示功能。 15.自由设置...
  • Windows环境下32汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从“Hello World!”这个简单的...
  • Windows环境下32汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从“Hello World!”这个简单的...
  • Windows环境下32汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从“Hello World!”这个简单的...
  • win7 专用 一键 GHOST 还原 【硬盘版】 【绿色版】

    千次下载 热门讨论 2010-03-20 21:48:04
    10,GHOST运行之前自动删除auto类病毒引导文件,避免返回WIN后被病毒二次感染. 11,界面友好,全中文操作,无需英语和计算机专业知识. 12,危险操作之前贴心提示,明明白白放心使用. 13,附带GHOST浏览器,能打开GHO映像,任意...
  • 用“计算器”将“EE”用二进制查看,共八位每一分别对应设置中的每一个选项。扩展选项只有第四第八项可以设置。 将04改为00即是Unicode ============================= Space参数就是空格是否强制上屏: 例如:两...
  • 书名:《Windows环境下32汇编语言程序设计》 格式:chm完整版 版本:第二版 作者:罗云彬 译者: 罗云彬 语言: 中文 目录回到部↑第1篇 基础篇. 第1章 背景知识 2 1.1 win32的软硬件平台 2 1.1.1 80x86系列...
  • 注册码:已在其中 测试环境:win2003/win7(x64),32、64系统都可以正常使用。 lybide 制作 绿色 16:22 2011/10/16
  • 16章 WinSock接口和网络编程 16.1Windows Socket接口简介 16.2Windows Socket接口的使用 16.2.1IP地址的转换 16.2.2套接字 16.2.3网络应用程序的一般工作流程 16.2.4监听、发起连接和接收连接 16.2.5数据的收发 ...
  • 16章 WinSock接口和网络编程 16.1Windows Socket接口简介 16.2Windows Socket接口的使用 16.2.1IP地址的转换 16.2.2套接字 16.2.3网络应用程序的一般工作流程 16.2.4监听、发起连接和接收连接 16.2.5数据的收发 ...
  • 16章 WinSock接口和网络编程 16.1Windows Socket接口简介 16.2Windows Socket接口的使用 16.2.1IP地址的转换 16.2.2套接字 16.2.3网络应用程序的一般工作流程 16.2.4监听、发起连接和接收连接 16.2.5数据的收发 ...
  • 16章 WinSock接口和网络编程 16.1Windows Socket接口简介 16.2Windows Socket接口的使用 16.2.1IP地址的转换 16.2.2套接字 16.2.3网络应用程序的一般工作流程 16.2.4监听、发起连接和接收连接 16.2.5数据的收发 ...
  • 16章 WinSock接口和网络编程 558 16.1 Windows Socket接口简介 559 16.2 Windows Socket接口的使用 562 16.2.1 IP地址的转换 562 16.2.2 套接字 566 16.2.3 网络应用程序的一般工作流程 568 16.2.4 监听、发起连接...
  • 16章 WinSock接口和网络编程 558 16.1 Windows Socket接口简介 559 16.2 Windows Socket接口的使用 562 16.2.1 IP地址的转换 562 16.2.2 套接字 566 16.2.3 网络应用程序的一般工作流程 568 16.2.4 监听、发起连接...
  • 大漠插件7.1901

    2019-01-15 23:30:20
    1. 所有驱动功能支持win10 17763 ///////////////////////////////////////////// ///////////////////////////////////////////// v7.1830 1. 解决SendStringIme2在某些系统中失效的BUG 2. 解决后台功能在某些...
  • ●打击盗版,本产品为最新的v1.99R版,比国内其他版本要新,所以支持win10 ●支持加密狗时间锁,可以自行设置到期时间和解除到期时间,全球唯一开发接口,每个厂商可以自行设定解锁密码 科领投影融合软件截图
  • Nikon-Capture-NX2-CN

    2011-12-06 18:43:44
    200 MB显示器: 1,024 x 768 像素或更高(推荐使用 1,280 x 1,024 像素或更高)16 真彩或更高(推荐使用 32 真彩)在 XP 系统中安装时,需要先安装 Microsoft .Net Frameworks 2.0 运行环境。Vista/Windows 7...
  • E语言1000模块

    2013-12-24 20:42:01
    2005-10-21 15:30 14489 3100 易语言模块大全\24转单色位图模块.ec 2007-01-18 07:00 7110 2339 易语言模块大全\69msn.ec 2005-05-26 02:18 4070 1472 易语言模块大全\ACCESS到高级表格.ec 2001-12-31 21:24 ...
  • 易语模块1000个

    2013-08-15 20:54:59
    2005-10-21 15:30 14489 3100 易语言模块大全\24转单色位图模块.ec 2007-01-18 07:00 7110 2339 易语言模块大全\69msn.ec 2005-05-26 02:18 4070 1472 易语言模块大全\ACCESS到高级表格.ec 2001-12-31 21:24 ...
  • 支持MODBUS CRC的调试串口工具

    热门讨论 2011-10-21 23:22:16
    1、 支持Windows 9x / 2000 / XP / 2003 / Vista / Win7系统; 2、 绿色软件,不需安装。运行解压软件,将压缩包解压到指定目录即可。卸载时只需将程序目录删除; 3、 支持常用的1200 ~ 921600bps波特率; 4、 端口...
  • 2005-10-21 15:30 14489 3100 易语言模块大全\24转单色位图模块.ec 2007-01-18 07:00 7110 2339 易语言模块大全\69msn.ec 2005-05-26 02:18 4070 1472 易语言模块大全\ACCESS到高级表格.ec 2001-12-31 21:24 7664 ...
  • 易语言模块大全汇总批量下载

    热门讨论 2009-12-15 17:35:39
    2005-10-21 15:30 14489 3100 易语言模块大全\24转单色位图模块.ec 2007-01-18 07:00 7110 2339 易语言模块大全\69msn.ec 2005-05-26 02:18 4070 1472 易语言模块大全\ACCESS到高级表格.ec 2001-12-31 21:24 7664 ...
  • 一键ghost恢复系统

    2013-09-03 08:24:26
    安装环境:WINXP/2000/2003/WIN7/VISTA/2008/WIN8 (32、64) 运行环境:WINDOWS/DOS 软件类别:系统备份 授权形式:免费 官方网站:http://doshome.com 软件作者:葛明阳(gmy) 软件简介: 一键GHOST是"DOS之家...
  • 17、1988年9月为苹果IIGS设计的16位系统—GS/OS 18、1988年10月IBM发布OS/21.10 标准版 19、1988年10月元老品牌机——NeXTComputer 20、1990年AmigaWorkbench2forA3000 21、1990年5月微软发布——Windows3.0 22、...
  • 实例2 Java UDP编程及应用 实例7 Java servlet中对模板文件的处理 实例10 在Java应用程序中播放Midi音乐...显示模式:支持800×600像素以上的分辨率、16位以上的色彩。 5.其他 :8倍速以上CD-ROM或DVD-ROM驱动器。
  • ComMagic串口调试助手

    2013-07-09 17:26:14
    本软件可以在Win95/98、Win2000、 WinNT、WinXP、Vista下面运行.软件功能主要为: 1.接收从串口进来的数据并在窗口显示. 2.所接收到的数据数据显示方式可以选择为字符方式或者HEX方式 3.中文显示无乱码,且不影响...

空空如也

空空如也

1 2 3 4 5
收藏数 99
精华内容 39
关键字:

16位色win10