×

VB.Net游戏编程入门经典(5) VB.Net游戏编程入门经典(5) VB.Net游戏编程入门经典(5) VB.Net游戏编程入门经典(5)

Game设计

VB.Net游戏编程入门经典(5)

Kalet Kalet 发表于2009-03-20 浏览357 评论0
1.5 优化计算量随着游戏中对象个数的增长,执行全部必需的计算工作将变得异常困难,因此有必要寻找一种加速计算的方法。对计算本身而言,可以进行简化的程度已经非常受限,因此就需要把计算量尽量保持在较低层次。首先需要考虑的方法是仅仅对当前屏幕上的那些对象进行计算。如果确实需要对屏幕外的对象进行计算的话,那就对它们尽量少做一些计算(相对于当前屏幕上的对象而言)。VB.Net游戏编程入门经典(5)接下来较为理性的做法是,努力确定哪些对象是较为邻近的,然后只对这些对象进行冲突计算,使用“分区方法”(zoningmethod)可以做到这一点。一种简单的方法是,把一个较大的区域分解为几个连续的较...
VB.Net游戏编程入门经典(4)

Game设计

VB.Net游戏编程入门经典(4)

Kalet Kalet 发表于2009-03-20 浏览320 评论0
1.4 冲突检测正如本章开头所阐述的,游戏开发中最重要的问题之一就是冲突检测算法。一些游戏之所以能够占有巨大的市场,正是因为它们的冲突检测例程运行较快,从而为其他的图形操作例程留出了充裕的时间,进而使得程序能够相应地进行更多的游戏操作。我们可以想像一下不具有冲突检测机制的游戏将会是什么样子:弹球游戏中,球不能进行弹跳;三维迷宫游戏中,游戏角色直接穿墙而过并且子弹不能击中敌人;探险游戏中,光标不知道自己是否在屏幕上的某个特定目标上。可见,如果没有冲突检测,游戏就将会失去任何实际的或可预知的感知能力。VB.Net游戏编程入门经典(4)冲突检测是一个常见的研究课题,在精度和性能之间取得某...
VB.Net游戏编程入门经典(3)

Game设计

VB.Net游戏编程入门经典(3)

Kalet Kalet 发表于2009-03-20 浏览348 评论0
1.3 创建梯度在前面的章节中,我们给出了一些通过SolidBrush对象创建红色实心长方形的代码示例。GDI+允许程序员使用特殊的梯度画笔来创建线性和路径梯度以产生丰富的色彩,从而避免了程序只是使用单调色彩的情形,梯度画笔可以带来非常有趣的效果。GDI+具有创建水平的、垂直的和倾斜的线性梯度的特点。可以创建色彩变化均一(默认行为)的线性梯度,也可以使用梯度画笔的Blend属性创建色彩变化不均一的梯度。VB.Net游戏编程入门经典(3)下面的示例代码展示了如何创建色彩变化均一的梯度画笔,并使用该画笔从左上角到右下角绘制了一个色彩从红色变换到蓝色的长方形。DimGraphasG...
VB.Net游戏编程入门经典(2)

Game设计

VB.Net游戏编程入门经典(2)

Kalet Kalet 发表于2009-03-20 浏览339 评论0
1.2 使用Graphics对象执行图形操作使用GDI+的第一步总是先创建一个Graphics对象,它有助于图形操作的执行。Graphics类提供了在特定的设备上下文中进行画图的方法。有四种方法可以获得适当的Graphics对象:从使用Paint事件接收到的e参数获得、从窗口句柄中获得、从图像中获得,或者从指向设备上下文的特定句柄中获得。这些不同的方法实际上没有本质的区别,我们可以根据程序需要使用其中任何一种方法。例如,如果在窗体的Paint事件中编写画图函数的话,则可以使用e参数获得Graphics对象。但是,如果希望编写一个类实现在窗体上画图的话,则可能需要使用窗口句柄来创建G...
VB.Net游戏编程入门经典(1) VB.Net游戏编程入门经典(1) VB.Net游戏编程入门经典(1) VB.Net游戏编程入门经典(1)

Game设计

VB.Net游戏编程入门经典(1)

Kalet Kalet 发表于2009-03-20 浏览323 评论0
本章我们将介绍GDI+的基本概念、Windows系统下本地图形操作的扩展库,并讨论游戏开发中的最重要方面之一:冲突检测算法(collisiondetectionalgorithm)。尽管游戏开发者使用GDI+函数在屏幕上绘制图像,然而图像之间的交互作用却是由冲突检测算法决定的。这将使得程序能够判断何时一个图像位于另一个图像之上,并采取合适的操作。比如:当一个球撞击一面墙时,球将产生弹跳行为。为了达到这些目标并阐明这些概念,我们将演示如何创建一个名为.Nettix的游戏。学习一门新的编程语言时,一般都会先编写“HelloWorld”程序。学习编程游戏时,Tetris是首先要尝试编写的最佳游...

Game设计

GDI+编程的10个基本技巧

Kalet Kalet 发表于2009-03-20 浏览277 评论0
创建绘图表面创建绘图表面有两种常用的方法。下面设法得到PictureBox的绘图表面。GDI+编程的10个基本技巧privatevoidForm1_Load(objectsender,System.EventArgse){//得到pictureBox1的绘图表面Graphicsg=this.pictureBox1.CreateGraphics();}privatevoidpictureBox1_Paint(objectsender,System.Windows.Forms.PaintEventArgse){//得到pictureBox1的绘图表面G...
【翻译】GDI+系列教程(三):GDI+中的坐标系(VB.NET)

Game设计

【翻译】GDI+系列教程(三):GDI+中的坐标系(VB.NET)

Kalet Kalet 发表于2009-03-20 浏览346 评论0
在大部分的图像系统中,元素的位置都是通过X,Y坐标表示的。一对坐标有两个数字组成,他们分别代表从左到右和从上到下的距离。例如,我们可以使用下面的语句来绘制一条直线: g.DrawLine(Pens.Black,0,0,100,200);后四个参数就是坐标,代表从0,0到100,200绘制两点之间绘制直线,结果如图1:【翻译】GDI+系列教程(三):GDI+中的坐标系(VB.NET)默认情况下,GDI+中使用的坐标是指像素点的位置,不过GDI+是一个独立于绘图系统的解决方案。也就是说,你可以直接使用像素点或真实世界中的英寸、毫米等单位。和整数说再见许多图像系统,尤其是一些老的Windo...
【翻译】GDI+系列教程(二):Graphics对象(VB.NET)

Game设计

【翻译】GDI+系列教程(二):Graphics对象(VB.NET)

Kalet Kalet 发表于2009-03-20 浏览358 评论0
所有通过GDI+绘制的工作都会涉及到Graphics对象,下面列举几种使用到它的场景:1.在绘制过程中,WindowsForm控件会通过OnPaint和OnPaintBackground方法传递PaintEventArgs参数,而Graphics对象就包括在其中;2.同样,该参数也被OnPaint事件引发的其它Paint事件所传递和处理;【翻译】GDI+系列教程(二):Graphics对象(VB.NET)3.打印的时候,PrintPage事件提供了PrintPageEventArgs参数,它也包括了操作打印机的Graphics对象,你可以直接操作这个对象绘制各种图形,它们会和显示在屏幕...
【翻译】GDI+系列教程(一):在.NET程序中使用GDI+(VB.NET)

Game设计

【翻译】GDI+系列教程(一):在.NET程序中使用GDI+(VB.NET)

Kalet Kalet 发表于2009-03-20 浏览311 评论0
为了在基于.NET的程序中使用GDI+,你需要在开始做实际的相关编码之前完成两件事情。一、你需要引用System.Drawing程序集【翻译】GDI+系列教程(一):在.NET程序中使用GDI+(VB.NET)二、你需要引用System.Drawing命名空间在VisualStudio中添加一个System.Drawing的dll引用是非常容易的。在解决方案浏览器中右键工程,选择“AddReference”,下面的对话框就会出现了。图1添加引用对话框在每一个代码文件的顶部,你需要声明你所使用的命名空间。 ImportsSystem【翻译】GDI+系列教程(一):在.NET程序中...

Game设计

RPG游戏引擎的设计原理

Kalet Kalet 发表于2009-03-20 浏览279 评论0
角色扮演游戏(RPG)是深受广大游戏迷们喜爱的一种游戏,它以独特的互动性和故事性吸引了无数的玩家。它向人们提供了超出现实生活的广阔的虚拟世界,使人们能够尝试扮演不同的角色,去经历和体验各种不同的人生旅程或奇幻经历。这些体验都是在现实生活中无法实现的。在玩过许多游戏后,许多玩家都不再仅仅满足于一个游戏玩家的身份,而会思考游戏是如何制作的,并且打算制作一个自己的游戏,网上的各种游戏制作小组更是如雨后春笋般涌现。下面我就给大家介绍一下角色扮演游戏引擎的原理与制作,希望能对游戏制作爱好者有所帮助。  一游戏引擎的原理  说到引擎,游戏迷们都很熟悉。游戏引擎是一个为运行某一类游戏的机器设计的能够...