zoukankan      html  css  js  c++  java
  • [学习笔记]开始学directx了之一

    看了书的好几章节,反复讲有关directdraw原理的问题,在这里用自己的理解讲述一下这个原理,也好方便以后的重温,现在可能有很多错误和漏洞,在以后发现来说就是一种进步了。
    首先要了解directdraw的绘图和动画产生的原理。先看下面的图:
    directdrawshow.JPG
    在这里,DX将我们的绘图过程分成三个平面,首先,我们把绘图的元素在C平面组装成图像,然后放入B平面内,B平面和A平面进行交换,B平面被推到屏幕上进行显示,同时C平面又重新组装下一副画面,再把组装好的成品画面放入A平面内,再次A和B交换,实现画面的更迭,这样反复动作,即实现了动画。
    在C上面组装的元素有背景,人物等等,也有人物动画什么的,当然有时也可以直接下更迭到幕后的平面上进行组装,这样就可以省去C平面。

    大致理解如此。还要继续学习,在看到的例程中发现一个问题,
    运行时出现如下错误
    DDERR_NOCOOPERATIVELEVELSET
    (错语 0x887600D4)
    网上一查,只找到一个不知道是什么文字的网页,如下
    DDERR_NOCOOPERATIVELEVELSET
    (ЛПД 0x887600D4)
    жХОЛГЙС УПЪДБОЙС ЧЩЪЧБОБ ВЕЪ ХУФБОПЧЛЙ ЧЩЪПЧБ ЖХОЛГЙЙ SetCooperativeLevel.
    苦思之后发现,在应用directdraw对像之前,除了实例化,还得对其进行SetCooperativeLevel的设置,将其draw的载体的句枘绑到这个对像上。
    TMD的,花钱专门跑去买本书来,例程居然把这步省去了,也不说明。

  • 相关阅读:
    LINQ to SQL 模拟实现 ROW_NUMBER() OVER(ORDER BY ...) 的功能
    TCP粘包、拆包与通信协议
    Decoder和Encoder
    Future 和 ChannelFuture
    通道Channel
    通道初始化器ChannelInitializer
    数据处理器ChannelHandler
    通道配置项 ChannelOption
    ChannelPipeline
    启动配置类Bootstrap 和 ServerBootstrap
  • 原文地址:https://www.cnblogs.com/aowind/p/174003.html
Copyright © 2011-2022 走看看