说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB游戏写作技巧(1)秀图篇

HTML文档下载 WORD文档下载 PDF文档下载
VB游戏写作技巧(1)秀图篇
一开始,我想先从游戏的图形先讲起好了,毕竟游戏最重要的就是画面,一个没有漂亮图形的游戏,我连碰都不想去碰。那该怎么处理游戏的图形呢?VB提供了一个非常好用的控制项--PictureBox,有了这个控制项我们才能轻松的在程式中秀出图形,现在就来看看PictureBox有那些特性可以让我们在游戏中使用。

Picture 属性:只要将这个属性填入正常的图形档名,VB就会自动帮我们载入图形档。

Visible 属性:这个属性可以让图形消失或让图形出现在画面上。
用法:Form1.Picture1.Visible = False '消失
Form1.Picture1.Visible = True '出现

Left 属性:表示图形的位置的X座标。
Top 属性:表示图形的位置的Y座标。
用法:改变这两个属性就可以改变图形的位置。

ScaleMode 属性:设定PictureBox所使用的座标单位,一般都设为"3-像素"

知道了PictureBox的特性後,要怎么样把它应用到游戏中呢?举个例子好了,我现在要做一个打砖块的游戏,需要用到那些图片呢?砖块、球、击球的板子,一共有三张图,所以我们就使用三个PictureBox,将图片载入到PictureBox里面,如下面所示:

Picture1 砖块的图片
Picture2 球的图片
Picture3 板子的图片

接著我就可以写,当我按下方向键的右键时,Picture3的left属性+1,按下左键则-1,这样一来不就可以控制板子的左右移动了吗?球也是一样,只要每隔一段时间更改一次Picture2的left和top 属性,就可以做出球移动的效果了。

或许有人会觉得奇怪,一张图就要用到一个PictureBox,小游戏的图不多还没关系,如果是RPG的话不就要动用到几千个甚至几万个PictureBox?岂不是麻烦死了?所以如果图片很多的时候,我通常都是把图全部都放在同一个图形档里面,这样就只要用到一个PictureBox了,要用图片时从里面把它抓出来就好了,不过要怎么抓呢?我建议使用函数BitBlt()来做图形的搬移。

使用BitBlt函数前要先宣告:

Declare Sub 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)

hDestDC 目的地的DC
x 目的地的座标x
y 目的地的座标y
nWidth 来源图片的宽度
nHight 来源图片的高度
hSrcDC 来源图片的DC
xsrc 来源图片的座标x
ysrc 来源图片的座标y
dwrop 运算方法:&HCC0020 PUT
&H8800C6 AND
&HEE0086 OR
&H660046 XOR

现在有两个PictureBox
Picture1 AutoRedRaw 属性设为Ture
ScaleMode 属性设为"3-像素"
Picture2 AutoRedRaw 属性设为Ture
ScaleMode 属性设为"3-像素"

若想将Picture2里(10,10)-(100,100)区域内的图形拷贝到Picture1的(0,0)
可以这样写:

BitBlt Picture1.hdc,0,0,90,90,Picture2.hdc,10,10,&HCC0020

这样子平常写游戏时就只要设两个PictureBox,一个专门用来显示,另一个则用来放图形资料,需要时再用BitBlt函数覆制过去就好了,不是很方便吗?
find(expr) -JQuery API is(expr) -JQuery API next(expr)-JQuery API not(elems)-JQuery API not(expr)-JQuery API not(el)-JQuery API parent(expr)-JQuery API parents(expr)-JQuery API prev(expr)-JQuery API siblings(expr)-JQuery API Events事件-JQuery API bind(type,data,fn)-JQuery API blur(fn) -JQuery API blur() -JQuery API change(fn) -JQuery API click(fn)-JQuery API click()-JQuery API dblclick(fn) -JQuery API error(fn) -JQuery API focus(fn)-JQuery API focus() -JQuery API hover(over,out)-JQuery API keydown(fn) -JQuery API keypress(fn)-JQuery API keyup(fn)-JQuery API load(fn)-JQuery API mousedown(fn)-JQuery API mousemove(fn)-JQuery API mouseout(fn)-JQuery API mouseover(fn)-JQuery API mouseup(fn)-JQuery API 如何制作下拉菜单 请高手指点:好猫为何不工作? 一种设想,20台电脑5根电话线上网,如何达到较快的速度? 对话框程序调试时的问题?!!!! 请介绍几本好用的自学C语言的书籍好吗?? 紧急求救,请高手来看看 .NET和JAVA到底哪个好? 谁来救我?ISequentialStream::write()为何不好使? 定义类型的困惑 大虾们,如何做一个图标选择框!!!(详情见内) ADO编程问题求解!!!!!!!!!!! ****************简单问题,高分求救??????????????????????? 请问怎样在TabStrip中的选项卡中增加图片?谢了 工程如何能建的工整一些? www.alldas.de为什么无法访问了? 关于动态控件的问题 ADO编程问题求解 怎么编程产生1MHz甚至更高频率的周期信号? 紧急求助—有关JMail4.1附件问题 挥泪大送分!!!!! 怎样才能让自己变胖? 做个仅有对话框的应用,但想把它放到托盘, 给ASP爱好者提个建议! 关于SQLserver2000“视图“的两个问题,请教高手! 好久没上网了,送分以庆祝再回csdn!!!!! 做浏览器,如何实现 “后退”,“前进”,这二个功能? 如何使C:盘,D盘的根目录不共享? 用resin时,是否需要jdk,如何配置?分必给! SDI中的某一个子视图里怎样对主窗口的状态栏进行更改?? ◇◆◇ 失恋代表什么? ◇◆◇ 我英语不懂,想考高程.行吗 ◇◆◇ 学生生涯快完了,大家来说说对学生生涯的感受,特别是什么最深刻的! ◇◆◇ 求救!如何把SQL命令从前端应用程序传给应用程序服务器 要去招商行笔试了,有参加过的兄弟给点建议。 ###############讨论一下->微软全力推出.NET技术和C#语言的出现,VC++还有多久的寿命??? 要去招商行笔试了,有参加过的兄弟给点建议 如何发一消息,帮别人问的 高手帮助!!! 要去招商行笔试,有参加过的兄弟给点建议。 要去招商行笔试,有参加过的兄弟给点建议 我配置的IIS,为什么只能读数据库,不能写入?为什么? 我要去招商行笔试了,有参加过的兄弟给点建议。 好久没发帖了……………… 请问LINUX/UNIX下那种扩展名的文件是可执行的?DOS的。EXE对应的格式是什么? C++入门看什么书好? c++一问题 20分呀!!!!!谁有BIG5到GB的好方法!(除了用码表文件) 请介绍一下FREENET中所谓“寻找最近主机”的算法。 isapiapp的问题?如何定义一个全局变量,使后一个运行的程序不会更改前一个程序的变量 请问response.buffer = true 有什么用? 简单问题: 无论x取何值,多项式(m-1)x的3次方+2mx的2次方+(m+1)x+p都等于px的2次方-qx+p,求(m+p)的p-q的值? 已知x1,x2是方程x^2+px+q=0的两个实数根,且x1^2+x1x2+x2^2=5,求q能取最大值. 设函数f(x)=ax2+bx+c(c>0),且f(1)=-a/2 求证:函数f(x)有两个零点 设x1,x2是函数f(x)的两个零点,求|x设函数f(x)=ax2+bx+c(c>0),且f(1)=-a/2 1.求证:函数f(x)有两个零点2.设x1,x2是函数f(x)的两个零点,求| 当x等于3时,代数式px的3次方+qx+1的值为2002,当x等于-3时,求代数式px的3次方+qx+1的值 (x1,x2,x3)乘行列式a11,a12,a13 a21,a22,a23 a31,a32,a33再乘x1,x2,x3.感激不尽x1,x2,x3是一列的,应该可以叫一阶行列式吧, 求函数f(x)=e^x+2x+3的零点所在的区间以及零点的个数 设x1、x2是关于x的方程x²+px+q=0的两根,x1+1、x2+1是关于x的x²+qx+p=0的两根,求p、q的值 行列式计算 形如向量A(a,b.c)或 a 的行列式怎么求?b c 和 a11 a12 a13 a21 a22 a23 的行列式怎么求呢?说白了就是单向量α β 和矩阵(不是方阵) 可以求其行列试吗?怎么求? 函数f(x)=xcosx^2在区间[0,4]上的零点个数为? 已知X²+PX+q=O的两根之差等于方程X²+qX+P=0的两根之差那么除去P²-4q>0与q²-4P>0之外,P与q还应具有关系式 设行列式|a11 a12#a21 a22|=m |a13 a11#a23 a21|=n 则行列式|a11 a12+a13#a21 a22+a23| 等于? 已知函数f(x)=1/3ax^3+1/2bx^2+cx.(I)若f'(1)=-1/2a,3a>2c>2b,试问:导函数f'(x)在区间(0,2)内是否有零点,并说明理由.(II)在上面条件下,若导函数f'(x)的两个零点之间的距离不小于根号3,求b/a的取值范围 关于x的一元二次方程x²+px+q=0的两根分别为x1=-3 x2=1,求p和q的值? 行列式第一行X1^2-1 X1X2 ...X1Xn 第二行X2X1 X^2-1 ...X2Xn 最后行XnX1 XnX2 ...Xn^2-1的值 ∑Xi^2=1 已知定义在R上的函数f(x)=1/3ax^3+1/2bx^2+cx(a<b<c)在x=1时取得极值,且y=f(x)的图象有一点处的切线斜率为-a(1)求证:0≤b/a<1(2)若f(x)在区间(s,t)上为增函数,求证:-2 如果关于x的一元二次方程x的平方+px+q=0的两根分别为x1=2,x2=1,那么p、q的值分别是A 、3,2 B、3,-2 C、2,-3 D、2,3应该选哪个我想知道过程是如何解 计算行列式,第一行:x,y.y,第二行:y,x...y中间几行省略号,最后一行:y y.x 已知函数f(x)=1/3ax^3+1/2bx^2+cx(a>0).若函数f(x)有三个零点分别为x1,x2,x3,且x1+x2+x3=-3,x1x2=-9,求函数f(x)的单调区间;(2)若f'(1)=-1/2a,3a>2c>2b,证明:函数f(x)在区间(0,2)内一定有极值点;(3)在(2)的条件下,若函数 已知、x1=2+3i是实系数一元二次方程x²+px+q=0的一个根求实数p,q及另一个跟x2 计算行列式|1+x1^2 x1x2...x1xn,x2x1 1+x2^2...x2xn.xnx1 xnx2...1+xn^2| 已知函数f(x)=3ax²+2bx+c,a+b+c=0,且f(0)·f(1)>0.若x1、x2是方程f(x)=0的两个实根,求|x1-x2|的取值范围. 如果关于x的一元二次方程x2+px+q=0的两根分别为x1=3、x2=1,那么这个一元二次方程是( )A.x2+3x+4=0 B.x2-4x+3=0 C.x2+4x-3=0 D.x2+3x-4=0 数列满足x1=1,x2=2/3,且1/xn-1+1/xn+1=2/xn(n>=2),则xn等于多少 已知函数f(x)=x3+bx2+cx+d的零点x1,x2,x3满足-2 已知关于x的方程x²+px+q=0的两个根为x1=3,x2=4,则二次三项式x²-px+q可分解为: 有一列数x1,x2,x3······xn已知x1=1,x2-x1=3,x3-x2=5,···,xn-x n-1=2n-1,当xn+x n-1=181,n的值是 已知函数f(x)=│lgx│-(1/2)^x有两个零点x1,x2则有A.x1x21 D.0 若二次三项式x²-px+q可以分解为(x-1)(x+2),那么方程x²-px+q=0的两个实数根是 有一列数,第一个位x1=1.第二个为x2=3,从第三个数开始依次为x3、x4、xn,从第二个数有一列数,第一个位x1=1.第二个为x2=3,从第三个数开始依次为x3、x4、xn,从第二个数开始,每个数是相邻两个数的一 已知函数f(x)=x^3+bx^2+cx+d,f(x)的三个零点x1,x2,x3分别为公差为3的等差数列{an}的前三项,f'(x)/3+3=0有唯一解(1)求数列{an}的通项公式(2)设数列{an}的前n项和为Sn,数列{Sn}的前n项和为Tn 已知关于x的方程x²-px+q的两个根是x₁=1,x₂=-2,则二次三项式x²-px+q请用语言说明为什么 一列数:X1、X2、X3、.、Xn、Xn+1、.,其中X1=3 (1)如果对任意的n,有Xn+1=Xn+2 计算X2=( )一列数:X1、X2、X3、......、Xn、Xn+1、......其中X1=3(1)如果对任意的n,有Xn+1=Xn+2计算X2=( )X3=( )X4=( 设定义域为R的函数f(x)=lg/x-1/,(x不=1) 0 ,(x=1) 则使关于x的方程f^2(x)+bf(x)+c=0有5个不同实数解的条件是(A)b0 (B)b>0且c0且c=0 (D)b>=0且c=0 若多项式x²+px+q可分解为(x+a)(x+b)则方程x²+px+q=0的根为x1 x2 设X1、X2、X3……Xn是整数,并满足:(1)-1≤Xi≤2 i=1、2、.n;(2)X1+X2+……+Xn=19 (3)X1的平方+X2的平方+……+Xn的平方=99求X1的立方+X2的立方+……Xn的最大值与最小值 设定义域为R的分段函数f(x)=|lg|x-1||,x≠1;0,x=1,若关于x的方程a[f(x)]2-f(x)+1=0有8个不同的实数解求a的取值范围 已知关于x的方程2x²+px+q=0的两根为x=2,x=-3,则二次三项式2x²+px+q可以因式分解为 已知X1,X2,X3,...Xn中每一个数值只能取-2,0,1中的一个,且满足:X1+X2+X2+...+Xn=-17,X1²+X2²+X3²+...+Xn²=37求X1³+X2³+X3³+...+Xn³的值当X=1+√2002/2时,代数式(4X³-2005X-2001)^2009的 已知函数f(x)=lg(ax^2+2ax+1)的定义域为R.则实数a属于_? 已知关于x的方程x^2+px+q=0的两根为x1=3,x2=-4,则二次三项式x^2+px+q可分解为 有一列数X1 X2 X3 .XN XN+1 X1=3 如果对任意的N 有XN+1=2XN 试着 把 XN用N表示出来 定义域为R的函数f(x)={lg|x-2|,x不等于2; 1,x=2}若关于x的方程f(x)^2+bf(x)+c=0有五个不同实根x1x2x3x4x5求f(x1+x2+x3+x4+x5)=? 已知关于x的一元二次方程kx²-px-3=0的二根分别为x1,x2,其中(1/x1+1/x2)²=4,求k,q的值 若一组数据X1,X2,X3,X4,…,Xn的方差为0,则表示( )A.X拔=0B.X1=X2=…=Xn=0C.X1=X2=…=XnD.无法确定 设定义在R上的函数f(x)=根号下[x2-2lxl+1],则关于x的方程f2(x)+bf(x)+c=0有八个不同实数解的充要条件是 关于x的一元二次方程x^2-px-p=0有两实数根x1,x2,若x1^2+x2^2=3,则p的取值是 有一列数:X1、X2、X3……XN……其中X1等于31 如果对任意的N,有XN+1=2XN.计算X2=( ),X3=( ),X4=( ),根据上面一小题的结果,请试着把XN用N表示出来:XN=( ),计算X6=( ) 函数f(x)=(2x次方-1)的绝对值,则关于x的方程f2(x)=bf(x)+ 有3个不同实数解的充要条件是函数f2(x),则关于x的方程 有3个不同实数解的充要条件是A.-1 0 B.1>b > 0且c < 0 C.-1b≥0且c=0 已知x1x2是关于一元二次方程x的平方-6x+k=0的俩个实数根,且x1的平方x2的平方-x1x2=115(1)求k的值 (2)求x1的平方+x2的平方+8 的值 设函数f(x)=ax2+bx+c(a>0),且f(1)=-a/2 设x1x2是函数f(x)的两个零点,求|X1-X2|的取值范围 已知函数y=3-(x-m)(x-n),且a,b是方程3-(x-m)(x-n)=0的两个根,则实数m,n,a,b的大小关系可能是A.m<a<b<nB.m<a<n<bC.a<m<b<nD.a<m<n<b 一元二次方程x2+Px+q=0(如果有实数根)两根的和为? 设函数f(x)=ax2+bx+c(a>0),且f(1)=-a/2,求证函数有两个零点 已知函数f(x)=|x^2+2x|,若关于x的方程f^2(x)+bf(x)+c=0有七个不同的解,则b,c大小关系为?答案是b 如果x=3时,代数式px的3次方+qx+1的值为2008,则当x等于-3时px的3次方+qx+1 若关于x的一元二次方程x2+px+1=0的一个实数根的倒数恰是它本身,试求p的值 已知函数f(x)=ax2+bx-1(a,b∈R且a>0)有两个零点,其中一个零点在区间(1,2)内,则a-b的取值范围是A(-1,1) B(-1,+~)C(-2,1)D(-2,+~)答案为B。急需过程,谢谢。 当x=-2时,代数式px的3次方+qx+1的值等于2012,那么当x=2时,代数式px+qx+1的值为多少?错了,当x=-2时,代数式px的3次方+qx+1的值等于2012,那么当x=2时,代数式px的3次方+qx+1的值为多少?四个选项A.2010 B.-201 设x1,x2是方程x^2-x-1=0的两个根,则x1+x2是多少?x1×x2是多少?(韦达定理)抱歉方程打错 X^2-x=2 设函数f(x)={2(x>0),x2+bx+c(x≤0),若f(-4)=f(0),f(-2)=-2,求函数g(x)=f(x)-x的零点的个数.设函数f(x)={2(x>0),x2+bx+c(x≤0),若f(-4)=f(0),f(-2)=-2,求函数g(x)=f(x)-x的零点的个数.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn