GIFs、JPGs和DirectInputMouse在VB游戏编程中的运用

相对而言,不是很难,我们并不需要解码器来得到JPG的每一个字节,或任何类似于次的,相反,我们将用一个图片框来打开一个图片,然后再将其传到表面,但首先我门需要声明API函数:

Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Public Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long

Public Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long

Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long

Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

现在我们要为加载图片作好准备

Dim Pict1 As StdPicture

Set Pict1 = LoadPicture("MyPict.jpg")

创造表面:

Dim TDesc As DDSurfaceDesc2

TDesc.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH

TDesc.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN

TDesc.lHeight = CLng((Pict1.Height * 0.001) * 567 / Screen.TwipsPerPixelY)

TDesc.lWidth = CLng((TPict.Width * 0.001) * 567 / Screen.TwipsPerPixelX)

Set Surf = DDraw.CreateSurface(TDesc)

Dim SurfDC As Long, PictDC As Long

SurfDC = Surf.GetDC

PictDC = CreateCompatibleDC(0)

SelectObject Pict1.Handle, PictDC

我们将使用Dcs和Bitblt或StretchBlt来把Pic1复制到表面

只复制成一样大小:

BitBlt SurfDC, 0, 0, TDesc.lWidth, TDesc.lHeight, PictDC, 0, 0, vbSrcCopy

现在复制并且改变图片大小

StretchBlt SurfDC, 0, 0, StretchWidth, StretchHeight, PictDC, 0, 0, TDesc.lWidth, TDesc.lWidth, vbSrcCopy

释放DC:

Surf.ReleaseDC SurfDC

DelecteDC PictDC

Set Pict1 = Nothing

时间: 2024-12-28 08:57:09

GIFs、JPGs和DirectInputMouse在VB游戏编程中的运用的相关文章

C++游戏编程中TransparentBlt函数的问题

问题描述 C++游戏编程中TransparentBlt函数的问题 我在win8运行GDIdemo4时出现TransparentBlt函数并没成功把人物图的黑色背景过滤掉的情况. 哪位大神能告诉我这是为什么会这样? 解决方案 可能性有很多,能看一下你怎么用TransparentBlt的吗?

关于J2ME游戏编程中的位运算

问题描述 最近在学J2ME游戏编程,对于位运算也重新认识了一下,无非就是&|~>><<几种运算.&|>><<运算主要是用于将数据保存到二进制文件中(通过RMS)或者将数据从二进制文件中读取进来.但是~(按位取反)运算,我一直不太明白这个运算有什么作用呢?用这个运算的目的是什么?在实际项目制作中什么情况下用到按位取反?希望大虾赐教!! 解决方案 解决方案二:不懂,求解!解决方案三:按位取反就是是把0变成1,1变成0.0110按位取反就是1001

游戏编程-求智能算法相关书籍,需要那种带实例有详解的(单一一种算法的书籍也可)

问题描述 求智能算法相关书籍,需要那种带实例有详解的(单一一种算法的书籍也可) 我看过<游戏编程中的人工智能技术> <MATLAB神经网络应用设计> 张德丰版 <MATLAB在数学建模中的应用> 卓金武 <MATLAB应用实例精讲--数学数值计算和统计分析篇> <MATLAB遗传算法工具箱及应用> 雷英杰版 <MATLAB神经网络 30个案例分析> 北京航天航空大学 <MATLAB智能算法超级学习手册> <MATLA

游戏编程-求有详细注释的matlab 智能算法相关的代码

问题描述 求有详细注释的matlab 智能算法相关的代码 网盘,邮箱454170989@qq.com 无聊者勿扰![ 解决方案 ? <神经网络入门> .? (连载之一) 用平常语言介绍神经网络(Neural Networks in Plain English) 因为我们没有很好了解大脑,我们经常试图用最新的技术作为一种模型来解释它.在我童年的时候,我们都坚信大脑是一部电话交换......<br/><strong>答案就在这里:</strong><a t

游戏编程入门(1) -- 精灵 ISprite

    对于游戏编程而言,我也是个初学者,这个游戏编程入门系列的文章,就当作是我在学习游戏编程的笔记和阶段小结吧.我们先从最简单的"精灵"开始,暂时我们不需要考虑DirectX或是OpenGL,不需要考虑3维等等这些复杂情形,直接使用GDI+绘图功能就可以了.     精灵,是构成游戏中活动体(比如,飞机.野兽等游戏人物)的最基本单元,任何一个活动体都可以由一个或多个精灵组合而成,每个精灵都是一个对象实例,它能够绘制自己.移动(更复杂的还可以旋转)等等基本动作.    我让所有的精灵都

VB.NET编程之托盘程序篇

编程|程序 本文程序的设计及运行环境 (1)Windows 2000 Service (2)Net Framework SDK 正式版 静态托盘程序的编写过程 所谓静态托盘程序是指程序运行后,在系统托盘区的图标处于静止状态的托盘程序.动态托盘程序正好与之相反,它是指在系统托盘区图标呈现动画效果的一类托盘程序.下面就来探讨一下VB.NET是如何实现静态托盘程序. .Net FrameWork SDK为编写托盘程序提供了一个组件:NotifyIcon组件.NotifyIcon组件是一个WinForm

Java游戏编程初步

编程 现在流行的游戏似乎都是用C或C++来开发的.在java平台上几乎没有很大型及可玩的流行游戏.由于java是个新生语言,他的许多特性还有待大家的发掘,但是我们不能否认Java在游戏编程方面的强大性.本文将带领大家一步一步学习编写Java游戏.最终打造属于自己的Java游戏. 在开始之前我们得确认你已经安装了Java JDK,并已经安装了浏览器软件如IE.本章是以Internet为开发对象,一步一步教大家认识Java的Thread.Applets-.以及游戏编程要注意的一些方方面面并在每一小部

25个不错PHP的游戏编程脚本代码分享

  本文介绍了25个不错PHP的游戏编程脚本代码,包括简单的掷骰器.随机名称生成器.场景生成器.牌组创建器(Deck builder)和装备(shuffler).简单的扑克发牌器.Hangman游戏.纵横字谜助手.米德里比斯.乐透机等.希望能够对你的工作有所帮助. 简单的掷骰器 许多游戏和游戏系统都需要骰子.让我们先从简单的部分入手:掷一个六面骰子.实际上,滚动一个六面骰子就是从 1 到 6 之间选择一个随机数字.在 PHP 中,这十分简单:echo rand(1,6);. 在许多情况下,这基本

VB编程中钩子的实现及应用

编程 前言 Windows系统中钩子具有相当强大的功能,通过这种技术可以对几乎所有的Windows 系统中的消息进行拦截.监视.处理.这种技术可以广泛应用于各种软件,尤其是需要有监控.自动记录等对系统进行监测功能的软件.本文针对这个专题进行了探讨,希望可以为读者朋友们起到抛砖引玉的作用. 一.钩子的机制及类型 Windows的应用程序都是基于消息驱动的,应用程序的操作都依赖于它所得到的消息的类型及内容.钩子与Dos中断截获处理机制有类似之处.钩子(Hook)是Windows消息处理机制的一个平台