Game设计
VB.Net游戏编程入门经典(3)
Kalet 发表于2009-03-20 浏览329 评论0
1.3 创建梯度在前面的章节中,我们给出了一些通过SolidBrush对象创建红色实心长方形的代码示例。GDI+允许程序员使用特殊的梯度画笔来创建线性和路径梯度以产生丰富的色彩,从而避免了程序只是使用单调色彩的情形,梯度画笔可以带来非常有趣的效果。GDI+具有创建水平的、垂直的和倾斜的线性梯度的特点。可以创建色彩变化均一(默认行为)的线性梯度,也可以使用梯度画笔的Blend属性创建色彩变化不均一的梯度。VB.Net游戏编程入门经典(3)下面的示例代码展示了如何创建色彩变化均一的梯度画笔,并使用该画笔从左上角到右下角绘制了一个色彩从红色变换到蓝色的长方形。DimGraphasG...
Game设计
VB.Net游戏编程入门经典(2)
Kalet 发表于2009-03-20 浏览316 评论0
1.2 使用Graphics对象执行图形操作使用GDI+的第一步总是先创建一个Graphics对象,它有助于图形操作的执行。Graphics类提供了在特定的设备上下文中进行画图的方法。有四种方法可以获得适当的Graphics对象:从使用Paint事件接收到的e参数获得、从窗口句柄中获得、从图像中获得,或者从指向设备上下文的特定句柄中获得。这些不同的方法实际上没有本质的区别,我们可以根据程序需要使用其中任何一种方法。例如,如果在窗体的Paint事件中编写画图函数的话,则可以使用e参数获得Graphics对象。但是,如果希望编写一个类实现在窗体上画图的话,则可能需要使用窗口句柄来创建G...
Game设计
VB.Net游戏编程入门经典(1)
Kalet 发表于2009-03-20 浏览306 评论0
本章我们将介绍GDI+的基本概念、Windows系统下本地图形操作的扩展库,并讨论游戏开发中的最重要方面之一:冲突检测算法(collisiondetectionalgorithm)。尽管游戏开发者使用GDI+函数在屏幕上绘制图像,然而图像之间的交互作用却是由冲突检测算法决定的。这将使得程序能够判断何时一个图像位于另一个图像之上,并采取合适的操作。比如:当一个球撞击一面墙时,球将产生弹跳行为。为了达到这些目标并阐明这些概念,我们将演示如何创建一个名为.Nettix的游戏。学习一门新的编程语言时,一般都会先编写“HelloWorld”程序。学习编程游戏时,Tetris是首先要尝试编写的最佳游...
Game设计
GDI+编程的10个基本技巧
Kalet 发表于2009-03-20 浏览259 评论0
创建绘图表面创建绘图表面有两种常用的方法。下面设法得到PictureBox的绘图表面。GDI+编程的10个基本技巧privatevoidForm1_Load(objectsender,System.EventArgse){//得到pictureBox1的绘图表面Graphicsg=this.pictureBox1.CreateGraphics();}privatevoidpictureBox1_Paint(objectsender,System.Windows.Forms.PaintEventArgse){//得到pictureBox1的绘图表面G...
Game设计
【翻译】GDI+系列教程(三):GDI+中的坐标系(VB.NET)
Kalet 发表于2009-03-20 浏览325 评论0
在大部分的图像系统中,元素的位置都是通过X,Y坐标表示的。一对坐标有两个数字组成,他们分别代表从左到右和从上到下的距离。例如,我们可以使用下面的语句来绘制一条直线: g.DrawLine(Pens.Black,0,0,100,200);后四个参数就是坐标,代表从0,0到100,200绘制两点之间绘制直线,结果如图1:【翻译】GDI+系列教程(三):GDI+中的坐标系(VB.NET)默认情况下,GDI+中使用的坐标是指像素点的位置,不过GDI+是一个独立于绘图系统的解决方案。也就是说,你可以直接使用像素点或真实世界中的英寸、毫米等单位。和整数说再见许多图像系统,尤其是一些老的Windo...
Game设计
【翻译】GDI+系列教程(二):Graphics对象(VB.NET)
Kalet 发表于2009-03-20 浏览337 评论0
所有通过GDI+绘制的工作都会涉及到Graphics对象,下面列举几种使用到它的场景:1.在绘制过程中,WindowsForm控件会通过OnPaint和OnPaintBackground方法传递PaintEventArgs参数,而Graphics对象就包括在其中;2.同样,该参数也被OnPaint事件引发的其它Paint事件所传递和处理;【翻译】GDI+系列教程(二):Graphics对象(VB.NET)3.打印的时候,PrintPage事件提供了PrintPageEventArgs参数,它也包括了操作打印机的Graphics对象,你可以直接操作这个对象绘制各种图形,它们会和显示在屏幕...
Game设计
【翻译】GDI+系列教程(一):在.NET程序中使用GDI+(VB.NET)
Kalet 发表于2009-03-20 浏览289 评论0
为了在基于.NET的程序中使用GDI+,你需要在开始做实际的相关编码之前完成两件事情。一、你需要引用System.Drawing程序集【翻译】GDI+系列教程(一):在.NET程序中使用GDI+(VB.NET)二、你需要引用System.Drawing命名空间在VisualStudio中添加一个System.Drawing的dll引用是非常容易的。在解决方案浏览器中右键工程,选择“AddReference”,下面的对话框就会出现了。图1添加引用对话框在每一个代码文件的顶部,你需要声明你所使用的命名空间。 ImportsSystem【翻译】GDI+系列教程(一):在.NET程序中...
Game设计
RPG游戏引擎的设计原理
Kalet 发表于2009-03-20 浏览263 评论0
角色扮演游戏(RPG)是深受广大游戏迷们喜爱的一种游戏,它以独特的互动性和故事性吸引了无数的玩家。它向人们提供了超出现实生活的广阔的虚拟世界,使人们能够尝试扮演不同的角色,去经历和体验各种不同的人生旅程或奇幻经历。这些体验都是在现实生活中无法实现的。在玩过许多游戏后,许多玩家都不再仅仅满足于一个游戏玩家的身份,而会思考游戏是如何制作的,并且打算制作一个自己的游戏,网上的各种游戏制作小组更是如雨后春笋般涌现。下面我就给大家介绍一下角色扮演游戏引擎的原理与制作,希望能对游戏制作爱好者有所帮助。 一游戏引擎的原理 说到引擎,游戏迷们都很熟悉。游戏引擎是一个为运行某一类游戏的机器设计的能够...
Game设计
网络游戏中的数据包设计与定义(初论)
Kalet 发表于2009-03-20 浏览316 评论0
接触了一段时间的网游封包设计,有了一些初步的思路,想借这篇文章总结一下,同时也作个记录,以利于以后更新自己的思路。 网络游戏的技术研发,分为三个主要的方面:服务器设计,客户端设计,数据库设计。而在服务器和客户端之间实现游戏逻辑的中介则是游戏数据包,服务器和客户端通过交换游戏数据包并根据分析得到的数据包来驱动游戏逻辑。网络游戏的实质是互动,而互动的控制则由服务器和客户端协同完成,协同就必然要依靠数据来完成。 当前网络游戏中的封包,其定义形式是各种各样的,但归纳起来,一般都具有如下要素:封包长度,封包类型,封包参数,校验码等。网络游戏中的数据包设计与定义(初论) 封包长度用于确定当前游戏数据...
Game设计
游戏外挂设计技术探讨
Kalet 发表于2009-03-20 浏览333 评论0
一、前言 所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。游戏外挂设计技术探讨 不管游戏外挂程序是不是“合法”身份,但是它却是具有一定的技术含量的,在这些小小程序中使用了许多高端技术,如拦截Sock技术、拦截API技术、模拟键盘与鼠标技术、直接修改程序内存技术等等。本文将对常见的游戏外挂中使用的技术进行全面剖析。 二、认识外挂 游戏外挂的历史可以追溯到单机版游戏时代...