请问DirectX 中的页面丢失问题如何解决? 在VC中

Meuck 2003-10-15 05:42:48
as title
...全文
35 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Meuck 2003-10-18
  • 打赏
  • 举报
回复
用 RestoreAllSurface()
可以,
但为什么 单独用 Restore()
一个一个就不行呢?
DarthVader 2003-10-16
  • 打赏
  • 举报
回复
RestoreAllSurface()
and redraw original bmps into the surfaces
this works quite well
and you can find the code in SDK samples
good luck!:)
Meuck 2003-10-16
  • 打赏
  • 举报
回复
akun 2003-10-15
  • 打赏
  • 举报
回复
重新從硬盤裏麵讀進來~
游戏编程指南 1 目 录 1 导 读 1 第一章 表述游戏的语言 1 1.1 VC.net概述 1 1.2 入门知识 4 1.2.1 数与数据类型 4 1.2.2 变量与常量 4 1.2.3 Namespace 5 1.2.4 操作符与表达式 6 1.3 预编译指令 7 1.4 结构,联合和枚举 8 1.4.1 结构 8 1.4.2 联合 9 1.4.3 枚举 10 1.5 控制语句 10 1.5.1 判断和跳转语句 10 1.5.2 选择语句 11 1.5.3 循环语句 13 1.6 函数 13 1.7 指针、数组与字符串 17 1.7.1 指针 17 1.7.2 数组 19 1.7.3 字符串 21 1.7.4 小结 22 1.8 多文件程序的结构 22 1.9 常用函数 24 第二章 如何说得更地道 28 2.1 定义和使用类 28 2.2 类的构造函数 31 2.3 类的静态成员 32 2.4 运算符重载 33 2.5 类的继承 36 2.6 虚函数和抽象类 39 2.7 模板 40 2.8 优化程序 43 2.9 调试程序 44 第三章 容纳游戏的空间 46 3.1 基本Windows程序 46 3.2 WinMain函数 50 3.2.1 简介 50 3.2.2 注册窗口类 50 3.2.3 创建窗口 52 3.2.4 显示和更新窗口 53 3.2.5 消息循环 54 3.3 消息处理函数 55 3.4 常用Windows函数 56 3.4.1 显示对话框 56 3.4.2 定时器 56 3.4.3 得到时间 57 3.4.4 播放声音 57 第四章 描绘游戏的画笔 58 4.1 初始化DirectDraw 58 4.1.1 简介 58 4.1.2 DirectDraw对象 59 4.1.3 设置控制级和显示模式 60 4.1.4 创建页面 61 4.2 后台缓存和换页 63 4.3 调入图像 64 4.4 页面丢失与恢复 64 4.5 透明色 65 4.6 图像传送 65 4.7 程序实例 69 4.8 图像缩放 69 4.9 释放DirectDraw对象 69 第五章 丰富画面的技巧 71 5.1 填涂颜色 71 5.2 输出文字 72 5.3 GDI作图 72 5.4 程序实例 73 5.5 锁定页面 73 5.6 程序提速 75 5.7 特殊效果 79 5.7.1 减暗和加亮 79 5.7.2 淡入淡出 80 5.7.3 半透明 80 5.7.4 光照 81 5.7.5 动态光照 82 第六章 加速游戏的魔法 86 6.1 内嵌汇编简介 86 6.2 基本指令 87 6.3 算术指令 88 6.4 逻辑与移位指令 90 6.5 比较、测试、转移与循环指令 90 6.6 MMX指令集之基本指令 93 6.7 MMX指令集之算术与比较指令 95 6.8 MMX指令集之逻辑与移位指令 96 6.9 MMX指令集之格式调整指令 97 第七章 我没有想好名字 99 7.1 读取键盘数据 99 7.2 读取鼠标数据 100 7.3 恢复和关闭DirectInput 101 7.3.1 恢复DirectInput设备 101 7.3.2 关闭DirectInput 101 7.4 初始化和关闭DirectX Audio 101 7.4.1 初始化DirectX Audio 101 7.4.2 关闭DirectX Audio 102 7.5 播放MIDI和WAV音乐 102 7.5.1 调入MIDI和WAV文件 102 7.5.2 播放MIDI和WAV文件 103 7.5.3 停止播放 104 7.6 在3D空间播放音乐 104 7.7 播放MP3音乐 106 7.7.1 调入MP3文件 106 7.7.2 播放MP3文件 106 7.7.3 停止播放和释放对象 107 第八章 支撑游戏的基石 108 8.1 链表 108 8.2 哈希表 108 8.3 快速排序 109 8.4 深度优先搜索 110 8.5 广度优先搜索 114 8.6 启发式搜索 117 8.7 动态规划 123 8.8 神经网络 125 8.9 遗传规划 126 第九章 向三维世界迈进 128 9.1 概述 128 9.2 基本知识 130 9.2.1 初始化DXGraphics 130 9.2.2 关闭DXGraphics 132 9.2.3 恢复DXGraphics设备 132 9.3 设置场景 132 9.3.1 设置渲染状态 132 9.3.2 设置矩阵 133 9.4 创建场景 134 9.4.1 调入3D场景 135 9.4.2 调入2D图像 136 9.5 刷新场景 137 9.6 渲染场景 138 9.6.1 渲染3D场景 138 9.6.2 渲染2D图像 138 9.7 改变场景 138 9.8 显示文字 139 9.9 程序实例 140 第十章 我没有想好名字 141 10.1 灯光 141 10.2 半透明 142 10.3 纹理混合 143 10.4 雾 145 10.5 凹凸贴图与环境贴图 146 10.6 粒子系统 146 10.7 骨骼动画 146 10.8 镜子 146 10.9 影子 146 第十一章 我没有想好名字 148 11.1 基本概念 148 11.2 程序流程 148 11.2.1 服务器端 148 11.2.2 客户端 149 11.3 程序实例 149 11.4 错误处理 154 11.5 显示IP地址 154 11.6 Multicast技术 155 11.7 更有效地传送数据 156 第十二章 创造我们的世界 157 12.1 程序流程 157 12.2 程序结构 158 12.3 基本方法 159 12.4 SLG编程要点 159 12.4.1 电脑AI 159 12.5 RPG & ARPG编程要点 159 12.5.1 迷宫的生成 159 12.5.2 脚本技术 159 12.6 RTS编程要点 159 12.6.1 寻路 159 12.6.2 电脑AI 159 12.7 FPS编程要点 160 12.7.1 移动 160 12.7.2 碰撞检测 160 附 录 162 附录一 Windows常见消息列表 162 附录二 虚拟键列表 167 Windows消息的虚拟键 167 DirectInput的虚拟键 168 附录三 DirectX函数返回值列表 170 DirectDraw部分 170 Direct3D部分 177 附录四 Winsock函数返回值列表 179 附录五 游戏编程常用网址 183 附录六 英文名词对照 184 附录七 常见问题解决办法 185 1. 程序编译时出现"Warning" 185 2. "Cannot Execute Program" 185 3. "Unresolved External Symbol" 185 4. 运行时出错 185
目 录 游戏编程指南... 1 目 录... 1 导 读... 1 第一章 表述游戏的语言... 1 1.1 VC.net概述... 1 1.2 入门知识... 4 1.2.1 数与数据类型... 4 1.2.2 变量与常量... 4 1.2.3 Namespace. 5 1.2.4 操作符与表达式... 6 1.3 预编译指令... 7 1.4 结构,联合和枚举... 8 1.4.1 结构... 8 1.4.2 联合... 9 1.4.3 枚举... 10 1.5 控制语句... 10 1.5.1 判断和跳转语句... 10 1.5.2 选择语句... 11 1.5.3 循环语句... 13 1.6 函数... 13 1.7 指针、数组与字符串... 17 1.7.1 指针... 17 1.7.2 数组... 19 1.7.3 字符串... 22 1.7.4 小结... 23 1.8 多文件程序的结构... 23 1.9 常用函数... 25 第二章 如何说得更地道... 29 2.1 定义和使用类... 29 2.2 类的构造函数... 32 2.3 类的静态成员... 34 2.4 运算符重载... 35 2.5 类的继承... 38 2.6 虚函数和抽象类... 41 2.7 模板... 42 2.8 优化程序... 45 2.9 调试程序... 47 第三章 容纳游戏的空间... 49 3.1 基本Windows程序... 49 3.2 WinMain函数... 53 3.2.1 简介... 53 3.2.2 注册窗口类... 53 3.2.3 创建窗口... 55 3.2.4 显示和更新窗口... 56 3.2.5 消息循环... 57 3.3 消息处理函数... 58 3.4 常用Windows函数... 59 3.4.1 显示对话框... 59 3.4.2 定时器... 59 3.4.3 得到时间... 60 3.4.4 播放声音... 60 第四章 描绘游戏的画笔... 61 4.1 初始化DirectDraw.. 61 4.1.1 简介... 61 4.1.2 DirectDraw对象... 62 4.1.3 设置控制级和显示模式... 63 4.1.4 创建页面... 64 4.2 后台缓存和换页... 66 4.3 调入图像... 67 4.4 页面丢失与恢复... 67 4.5 透明色... 68 4.6 图像传送... 68 4.7 程序实例... 72 4.8 图像缩放... 72 4.9 释放DirectDraw对象... 72 第五章 丰富画面的技巧... 74 5.1 填涂颜色... 74 5.2 输出文字... 75 5.3 GDI作图... 75 5.4 程序实例... 76 5.5 锁定页面... 76 5.6 程序提速... 78 5.7 特殊效果... 82 5.7.1 减暗和加亮... 82 5.7.2 淡入淡出... 83 5.7.3 半透明... 83 5.7.4 光照... 84 5.7.5 动态光照... 85 5.7.6 光照系统... 88 5.7.7 天气效果... 88 第六章 加速游戏的魔法... 89 6.1 内嵌汇编简介... 89 6.2 基本指令... 90 6.3 算术指令... 91 6.4 逻辑与移位指令... 93 6.5 比较、测试、转移与循环指令... 93 6.6 MMX指令集之基本指令... 96 6.7 MMX指令集之算术与比较指令... 98 6.8 MMX指令集之逻辑与移位指令... 99 6.9 MMX指令集之格式调整指令... 100 第七章 我没有想好名字... 102 7.1 读取键盘数据... 102 7.2 读取鼠标数据... 103 7.3 恢复和关闭DirectInput 104 7.3.1 恢复DirectInput设备... 104 7.3.2 关闭DirectInput 104 7.4 初始化和关闭DirectX Audio. 104 7.4.1 初始化DirectX Audio. 104 7.4.2 关闭DirectX Audio. 105 7.5 播放MIDI和WAV音乐... 105 7.5.1 调入MIDI和WAV文件... 105 7.5.2 播放MIDI和WAV文件... 106 7.5.3 停止播放... 107 7.6 在3D空间播放音乐... 107 7.7 播放MP3音乐... 109 7.7.1 调入MP3文件... 109 7.7.2 播放MP3文件... 109 7.7.3 停止播放和释放对象... 110 第八章 支撑游戏的基石... 111 8.1 链表... 111 8.2 哈希表... 111 8.3 快速排序... 112 8.4 深度优先搜索... 113 8.5 广度优先搜索... 117 8.6 启发式搜索... 120 8.7 动态规划... 126 8.8 神经网络... 128 8.9 遗传规划... 129 第九章 向三维世界迈进... 131 9.1 概述... 131 9.2 基本知识... 133 9.2.1 初始化DXGraphics. 133 9.2.2 关闭DXGraphics. 135 9.2.3 恢复DXGraphics设备... 135 9.3 设置场景... 135 9.3.1 设置渲染状态... 135 9.3.2 设置矩阵... 136 9.4 创建场景... 137 9.4.1 调入3D场景... 138 9.4.2 调入2D图像... 139 9.5 刷新场景... 140 9.6 渲染场景... 141 9.6.1 渲染3D场景... 141 9.6.2 渲染2D图像... 141 9.7 改变场景... 141 9.8 显示文字... 142 9.9 程序实例... 143 第十章 我没有想好名字... 144 10.1 灯光... 144 10.2 半透明... 145 10.3 纹理混合... 146 10.4 雾... 148 10.5 凹凸贴图与环境贴图... 149 10.6 粒子系统... 149 10.7 骨骼动画... 149 10.8 镜子... 151 10.9 影子... 151 第十一章 我没有想好名字... 152 11.1 基本概念... 152 11.2 程序流程... 152 11.2.1 服务器端... 152 11.2.2 客户端... 153 11.3 程序实例... 153 11.4 错误处理... 158 11.5 显示IP地址... 158 11.6 更有效地传送数据... 159 第十二章 创造我们的世界... 161 12.1 程序流程... 161 12.2 程序结构... 162 12.3 基本方法... 163 12.4 SLG编程要点... 163 12.4.1 电脑AI 163 12.5 RPG & ARPG编程要点... 163 12.5.1 迷宫的生成... 163 12.5.2 脚本技术... 163 12.6 RTS编程要点... 163 12.6.1 寻路... 163 12.6.2 电脑AI 163 12.7 FPS编程要点... 164 12.7.1 移动... 164 12.7.2 碰撞检测... 164 12.8 游戏的物理学... 165 附 录... 166 附录一 Windows常见消息列表... 166 附录二 虚拟键列表... 171 Windows消息的虚拟键... 171 DirectInput的虚拟键... 172 附录三 DirectX函数返回值列表... 174 DirectDraw部分... 174 Direct3D部分... 181 附录四 Winsock函数返回值列表... 183 附录五 游戏编程常用网址... 187 附录六 英文名词对照... 188 附录七 常见问题解决办法... 189 1. 程序编译时出现"Warning". 189 2. "Cannot Execute Program". 189 3. "Unresolved External Symbol". 189 4. 运行时出错... 189 5. 大家还有什么问题,可以告诉我... 189
课程解决问题: 作为游戏行业或者图形学从业者,你是否面临以下问题: 到底openGL底层如何实现的? 到底矩阵操作变换是怎么做到的? 到底光栅化的算法以及原理是什么? 到底如何才能从3D世界投射到2D屏幕呢? 图形学有这么多的矩阵操作,到底如何推导如何应用呢? 学完这门课程,你应该就可以从底层了解一个初级的openGL图形接口如何实现,图形学最底层的封装到底面临哪些挑战;跟随我们一行一行写完代码,你就会得到一个迷你版本的openGL图形库,你可以深度体会图形从模型变换,观察矩阵变换,投影矩阵变换一直到光栅化纹理操作的全套模拟流程。 课程介绍: 本课程将带领学员不使用任何图形库,实现从0到1的图形学接口封装以及算法讲解,并且带领大家手敲代码,一行一行进行实现。 涵盖了(环境搭建,绘制点,Bresenham算法绘制完美直线,三角形拆分绘制算法,颜色插值算法,图片操作,图片二次插值放缩算法,纹理系统接口搭建及封装,矩阵操作理论以及实践,openGL类似接口封装,3D世界的图形学理论及接口封装等) 最终将带领大家通过C++实现一个3D世界的图形接口,方便所有人入门图形学,进行接下来的openGL接口以及GPU编程的学习   本课程为系列课程的第一步入门,且带领所有人进行实现,更加实用,可以让大家打牢图形学的基础知识及编程技能

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧