English Sentence Loading...
英语句子加载中...
预览模式: 普通 | 列表

VGA10H如何编制RPG游戏

汇编语言实现篇
VGA的绘图模式中,最重要的是模式12和模式13(我想大部分玩家手上已经没有CGA、EGA显示卡了吧)。模式12H采用平面式对应的方法,支持640×480,视频内存起始地址为A0000H,和其它D、E、10H三种模式一样同为16色,只是分辨率有所不同。视频内存地址上,每一个字节代表8个像素,每一位又可对应到颜色平面中同样位置的4位上。当我们要在屏幕上绘出一个点时,就必须将数据分别存放到四个颜色平面中对应的位上。VGA提供了许多存取颜色平面数据的方法,如一次存取4个颜色平面数据或每次只对单一平面操作,哪种方法比较快呢?如果是图像方面的处理,选择第二种较理想;而对于画点方式的作图,第一种更快速一些。
模式13H是VGA卡中唯一可同显256的模式,支持分辨率320×200,视频内存起始地址A0000H,它采用的是线性对应的方法(SVGA的所有256色和真彩都是用这种方法)。线性对应将屏幕上每一点与视频内存地址按顺序一一对应起来,一个点对应一个字节,这样做的好处是:这种对应方式比颜色平面对应方式简单多了,因为我们只需直接对视频内存地址做存取即可,而不必理会颜色平面与内存地址的对应关系。大家不难看出,其实线性对应就是将四个颜色平面的内存串联在一起,而成为一种直线的排列。
MODE 13H模式

查看更多...

Tags: RPG 游戏 VGA10H

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1428

VB使窗体右上角的X按钮失效

窗体右上角的X按钮通常用来关闭一个程序,这个小X按钮实际上是和系统菜单的“关闭”菜单项关联在一起的,什么?不知道什么是系统菜单,系统菜单是指我们点击窗体左上角的小图标时所弹出的菜单,其中好象有“恢复”、“移动”、“最大化”、“最小化”、“关闭”这么几个按钮。这个菜单用普通的方法是不能编辑和改变的,但是我们可以通过API函数GetSystemMenu来得到它的句柄,然后通过菜单相关的API函数就能改变它了,下面一起看看怎么做吧。 为了学习方便,下面先给出源码,并且已经作了详细的中文注释: -------------------------------------------
使窗体右上角的X按钮失效-------------------------------------------
程序说明:
本例利用API函数GetSystemMenu得到系统菜单的句柄X按钮是系统菜单的一菜单项,然后用RemoveMenu函数删去这一菜单项,也就是使X按钮失效了。
-------------------------------------------

查看更多...

Tags: VB 按钮失效

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1546

VB制作特殊窗口

1.各种形状的窗口(仅给出了函数名,具体定义可以查阅API Viewer)
1)CreateEllipticRgn 建立一个椭圆形的区域;
2)CreateRoundRectRgn 建立一个圆角矩形的区域;
3)CreatePolygonRgn 建立一个多边形区域;
4)CreatePolyPolygonRgn建立多个可重叠的多边形区域;

查看更多...

Tags: VB 特殊窗口

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1468

VB托盘程序详解

很多软件运行时会在系统托盘区(就是桌面右下角显示时间的区域)出现一个小图标,它作为程序运行的一个标志,我们可以通过使用小图标所弹出的菜单来控制应用程序的状态。本例就给出了一个功能比较完整的托盘程序,我们可以看到怎样用API函数Shell_NotifyIcon来添加、删除、更改托盘图标;而且例中还演示了为托盘图标添加右键菜单和浮动提示的方法。 程序(附后)用到了Shell_NotifyIcon、SendMessage、CallWindowProc、SetWindowLong等API函数,其中Shell_NotifyIcon是主要的函数,它用来添加、删除、更改系统托盘区(taskbar status area)的图标,所以我们先来看看这个函数的声明和参数:
使用API函数之前必须先在程序中声明如下:
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long 其中各参数的意义如下表: 参数: 意义dwMessage 为消息设置值,它可以是以下的几个常数值:0、1、2 NIM_ADD = 0 加入图标到系统状态栏中NIM_MODIFY = 1 修改系统状态栏中的图标NIM_Delete = 2 删除系统状态栏中的图标LpData 用以传入NOTIFYICONDATA数据结构变量,其结构如下所示:
Type NOTIFYICONDATA
cbSize As Long 需填入NOTIFYICONDATA数据结构的长度HWnd As Long 设置成窗口的句柄Uid As Long 为图标所设置的ID值UFlags As Long 设置uCallbackMessage,hIcon,szTip是否有效UCallbackMessage As Long 消息编号HIcon As Long 显示在状态栏上的图标SzTip As String * 64 提示信息End Type 返回值Long,非零表示成功,零表示失败在使用这个API函数之前我们应该先定义结构类型NOTIFYICONDATA:

查看更多...

Tags: VB 托盘

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1548

用VB制作下雪的特技景象

对于下雪的景象大家可能都不陌生,我们还是用VB来制作一个下雪的景象吧。其实制作这样一个下雪的景象并不复杂,它的原理是首先在底色为黑色的屏幕上随机画出许多白点(雪花),然后使这些雪花不断地向下移动(重画),反复循环,就成功地模拟了下雪的景象。下面是这个小程序,你可以修改其中的一些数据调整雪花的密度和雪花落下的快慢。
Dim Snow(1000, 2), Amounty As Integer
Private Sub Form_Load()
     Form1.Show
     DoEvents

查看更多...

Tags: VB 下雪 特技

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1528

VB窗体特效---上深下浅的窗体背景

Private Sub Form_Paint()
        Dim i As Integer
        ScaleMode = 3
        For i = 0 To 255
              Line (0, i)-(Me.Width, i), RGB(i, i, 255)

查看更多...

Tags: VB 特效 窗体

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1688