请问怎样用flash制作连连看的游戏要具体步骤。谢谢!

请问怎样用flash制作连连看的游戏要具体步骤。谢谢!,第1张

在设计采用单机模式,当在规定的时间内消完全部的则当前关卡通过,若果在规定的时间内没能消完所有的则游戏结束,重新开始游戏。游戏规则是模仿普通的连连看游戏,主要是鼠标两次点击的是否消去的问题,当前,前提是点击两张相同的,若点击的是同一张或者两张不同的,则不予处理。在两张相同的用三根以内的直线连在一起,就可以消去;否则,不予处理。

游戏过程,如果玩家在一定的时间内消完则提示玩家胜利,并进入下一关。如果在一定的时间内没有消完则提示玩家时间到。每关以此类推。

一、 所有都是按约定好的种类数和在同一区域的重复次数随机出现,并且每张的出现次数为偶数,时间会有限制,每一关的数量或时间是不同的,这样就增加了游戏的难度。

二、 在同一区域中,出现的种类数和重复数是可以由玩家选择的,时间由游戏约定。不过玩家选择的种类数和重复次数必须是偶数才可以顺利完成游戏,否则游戏虽然可以正常运行,但无法完成游戏。

在一种方案中,由于出现的图像按种类数和重复数都由软件约定,这样就缺乏玩家自主选择的空间,只是在完系统已经是设定好的游戏,不能改变什么,这样就在无意中降低了玩家在游戏过程中的乐趣,最后致使玩家放弃继续玩下去。我们参考了网络上的连连看游戏,考虑到游戏的娱乐性。所以我们放弃第一种方案的设计思想,参考网络上流行的连连看游戏,设计第二种方案。

3主要问题

开始制作游戏时,主要解决问题有以下几个方面:如何设置整个游戏的界面;如何控制连连看游戏中随机的生成且每种必须为偶数个;游戏开始后,判断鼠标两次点击的能否消去,即是否相同且之间路径的判断;如何判断游戏是否结束以及输赢问题等。

34技术要求

本游戏软件可以再大多数计算机上运行,游戏中能正确判断鼠标两次点下的是否可以消去、能正确判断游戏是否已经结束。

4、 系统设计:

针对上面的需求分析,我们把整个软件分成两个模块:1、整体界面的设计和的随机生成;2、路径判断函数;

一下就是系统结构图:

41基本思路

411游戏画面问题的思路

画面,对于设计者来说,可以算是最简单的地方;但对于玩家,这却是最重要的,一般玩家不会关心你是怎么实现的,他所关心的是画面的美观,漂亮,是不是能让人赏心悦目。

2获取位置的思路

通过数组从库随即获取规定个数的,随机分布在画布上。个数一定是个偶数个。

413 路径判断的思路

连连看所要求的是:

1:两个目标是相同的

2:两个目标之间连线的折点不超过两个。(连接线由x轴和y轴的平行线组成)那么分析一下连接的情况可以看到,一般分三种情况

1:直线相连2:一个折点3:两个折点;

可以发现,如果有折点,每个折点必定有且至少有一个坐标(x或者y)是和其中一个目标点是相同的,也就是说,折点必定在两个目标点所在的x方向或y方向的直线上。

所以设计思路就是:

假设目标点p1,p2,如果有两个折点分别在z1,z2那么,所要进行的是

1:如果验证p1,p2直线连线,则连接成立

2:搜索以p1,p2的x,y方向四条直线(可能某两条直线会重合)上的有限点,每次取两点作为z1,z2,验证p1到z1/z1到z2/z2到p2是否都能直线相连,是则连接成立。

414其他问题的思路

其他功能将在后面的具体各个部分的设计过程当中分别进行介绍。

42主界面的设计

由于这个程序的界面并不是很复杂,所以用到的控件也不多,主要核心内容还是后台的代码设计。的随机生成主要是用到一个random()函数将随机数赋值给flag[ ]数组中的每个元素,然后根据数组元素值,来显示。

421界面的设计

1、色彩上:总结人们的视觉习惯和色彩对眼睛的健康影响,决定对于画布采用黑色背景,神秘而大方;右边的控制区采用天蓝色,配合左边纯黑的背景,就像黑夜中的蓝天,纯洁而大方。

2、功能上:背景就是窗体,右侧是一个groupbox控件,用来放置控制按钮,下方是一个grogressbar控件,用来显示时间条。

422的随机生成

实现这个功能要分很多个步骤:

1 程序运行时即载入游戏需要的N张,默认情况下种类是18,重复数是4(重复数必须是偶数),并且可以选择是否重列。通过一个循环,加载随机的选择N种。具体载入的代码如下:

private void InteBmp(int maxnum)

{

g_g=thisCreatphics();

for(int i=0;i<MAPWIDTH;i++)

for(int j=0;j<WAPHEIGHT;j++)

gamp[i,j]=0;

IniteRandoMap(ref gamp,maxnum);

AI=new Kernal(ref gmap);

for(int i=0;i<maxnum;i++)

{

ResourceManager rm=new ResourceManager(“LLK data”,Assembly,GetExecut ingAssembly() );

img[i]=(Image)rmGetObject(iToString( )+”bmp”);

//img[i]=(Image)BitmapFormFile(“Images\\”+(i+1) ToString( )+”bmp”);

}

for(int i=0;i<6;i++)

{

//bombimg[i]=(Image)BitmapFromFile(“Image\\B”+(i++) ToString( )+”bmp”);

}

}

2 当确认游戏开始时,通过画图过程完成生成,画图的过程代码如下

private bool CheckWin(ref int[,]map)

{

Bool Win=true;

for(int i=0;i0)

{

for(int i=0;i<multipic;i++)

{

Int xrandom=rNext(19);

Int yrandom=r,Next(11);

If(map[xrandom,yrandom]==0)

{

map[xrandom,yrandom]=num;

}

else

i--;

}

num--;

}

}

private void FreshMap(ref int[,]map)

{

random r=new Random();

for (int i=0;i<MAPWIDTH;i++)

for(int j=0;j<MAPHEIGHT;j++)

{

if(gmap[i,j]!=0)

{

int x=rNext(19);

int y=rNext(11);

int temp=gmap[x,y];

gmap[x,y]=gmap[i,j]

gmap[i,j] =temp;

}

TransportMap(ref gmap);

}

private void TransportMap(ref int[,]map)

{

for (int i=0;i<MAPWIDTH;i++)

for(int j=0;j<MAPHEIGHT;j++)

{

AIGiveMapValue(i,j,map[i,j]);

}

}

//在指定位置画指定图

private void Draw(Graphics g,Image scrImg,int PicxX,int PicV)

{

gDrawImage(scrImg,new Point(PicX,PicV));

}

private void Forml_Paint(object sender,PaintEventArg e)

{

g_gDrawLine(newPen(newSolidBrush(ColorDeepSkyBlue),5),0,1134+5,1934

,1134+5);

If(bStart)

{

For(int i=0;i209)

{

MessageBoxShow(“游戏区域内最多只有209个孔,您选的数据太多!请重新选!”);

textBox1Text=”18”;

textBox2Text=”4”;

return;

}

IniteBmp(picnum);

If(bStart)

{

MessageBoxShow(“游戏已在运行!”);

return;

}

else

{

bStart=true;

thisInvalidate();

musicPlay(“Sounds\\ bg-03mid”);

}

}

重新实现代码如下:

Private void RefreshMap(ref int[,] map)

{

if ( int i=0;i<MAPWIDTH;i++)

for(int j<MAPHEIGHT;j++)

{

If(gmap[I,j]!=0)

{

Draw(g_g,img[gmap[I,j]-1],iPICWIDTH,jPICHEIGHT);

}

}

}

private void FreshMap(ref int[,] map)

{

Random r=new Random();

for(int i=0;j<MAPWIDTH;i++)

for(int j=0;j<MAPHEIGHT;j++)

{

if(gmap[I,j]!=0)

{

int x=r,Nex(19);

int y=r,Nex(11);

int temp=gmap[x,y];

gmap[x,y]=gmap[I,j];

gmap[I,j]=temp;

}

}

TransportMap(ref gmap);

}

Private void button2_Click(object sender,EventArgs e)

{

RefreshplayerPlay();

FreshMap(ref gmap);

ThisInvalidate();

}

424得分设置

本游戏一改前人风格,采用全新计分方式,使人们在寻找相同的同时还注意路径的选择,更增加了游戏的趣味性,具体规则:直连得10分,一个拐点的20,两个拐点得40用一个Label控件存储得分。

实现代码:

Switch(corner[2]X)

{

Case1;

Score+=20;//一个拐点加20;

g_gDrawLine(pen,new Point(p1X31+15,p1Y34+17),new

Point(corner[0]X31+15,corner[0],Y34+17)),;

g_gDrawLine(pen,new point(p2X31+15,p2Y34+17),new

Point(corner[0]X31+15,corner[0],Y34+17));

ThreadSleep(100);

EraseBlock(g_g,p1,p2);

g_gDrawLine(bkpen,new Point(p1X31+15,p1Y34+17)new

Point(corner[0]X31+15,corner[0],Y34+17);

g_gDrawLine(bkpen,new Point(p1X31+15,p2Y34+170new

Point(corner[0]X31+15,corner[0],Y34+17);

break;

case 2;

score+=40;

Point[ ]ps={new Point(p1X31+15,p1Y34+17),new<br/> Point(corner[1]X31+15,corner[1],Y34+17),new<br/> Point(corner[0]X31+15,corner[0],Y34+17),newPoint(p2X31+15,p2Y34+17));<br/> g_gDrawLine(pen,ps);<br/> ThreadSleep(100);<br/> EraseBlock(g_g,p1,p2);<br/>//foreach(Point mp in ps)<br/>//{<br/> //MessageBoxBoxShow(“+mpXToString( )+”,”+mpYToString( )+”)”));<br/>//}

break;

case 0;

score+=10;

g_gDrawLine(pen,ps);Point(corner[0]X31+15,corner[0],Y34+17),newPoint(p2X31+15,p2Y34+17));

ThreadSleep(100);

EraseBlock(g_g,p1,p2);

g_gDrawLine(pen,ps);Point(corner[0]X31+15,corner[0],Y34+17),newPoint(p2X31+15,p2Y34+17));

break;

default:break;

}

//RefreshMap(ref gmap)

Label5Text=scoreToString( );

下面还有

1点击“开始”后,屏幕的下半块是呈**的,这样那些图标就看不出来是什么

答:网络原因或者机器显卡出现问题,建议重新安装显卡驱动。

2“打开游戏客户端失败,如果由此问题而不能进行游戏,请尝试重新安装连连看游戏”

答:游戏客户端问题,建议退出房间,重新进入,或者重新下载安装连连看客户程序。

3“由于未知原因与服务器失去联络”

答:网络原因,建议玩家换一个游戏服务器登陆。也可能是玩家使用了外挂程序导致系统将其踢出。

4为什么有时候是第一个连完却还总是扣分?

答:网络问题,由于网速慢的原因,导致你本地的资料上传不到服务器上,所以你只看到了在你电脑上连完了,而服务器主机接受不到信息。

5“为什么我已经下载了游戏大厅,也下载了连连看这个游戏,但总也连不上游戏大厅,总是说无法连接密码库”

答:服务器原因,建议玩家换一个游戏服务器登陆。

6“我打连连看是总会卡住

出现什么切换到

重试让你选择”

答:内存或游戏客户端问题,建议玩家狂按切换到或者退出游戏大厅重新进入。

1点击“开始”后,屏幕的下半块是呈**的,这样那些图标就看不出来是什么

答:网络原因或者机器显卡出现问题,建议重新安装显卡驱动。

2“打开游戏客户端失败,如果由此问题而不能进行游戏,请尝试重新安装连连看游戏”

答:游戏客户端问题,建议退出房间,重新进入,或者重新下载安装连连看客户程序。

3“由于未知原因与服务器失去联络”

答:网络原因,建议玩家换一个游戏服务器登陆。也可能是玩家使用了外挂程序导致系统将其踢出。

4为什么有时候是第一个连完却还总是扣分?

答:网络问题,由于网速慢的原因,导致你本地的资料上传不到服务器上,所以你只看到了在你电脑上连完了,而服务器主机接受不到信息。

5“为什么我已经下载了游戏大厅,也下载了连连看这个游戏,但总也连不上游戏大厅,总是说无法连接密码库”

答:服务器原因,建议玩家换一个游戏服务器登陆。

6“我打连连看是总会卡住

出现什么切换到

重试让你选择”

答:内存或游戏客户端问题,建议玩家狂按切换到或者退出游戏大厅重新进入。

『连连看』游戏问题经典解答

1 我的连连看无法运行,表现为黑窗口一闪而过(501及以下版本)或d出提示信息(502及以上)

连连看5运行失败的主要原因是没有安装正确的显卡驱动程序或者DirectX 81(或以上)。

1) 没有安装正确的显卡驱动程序:d出的提示文件中有“D3D Driver: vgadll” 字样,表示没有安装正确的显卡驱动,显卡驱动一般在买电脑附送的驱动光盘中,如果没有则请安装“驱动精灵”协助安装。

2) 没有安装DirectX:连连看需要DirectX 81以上的支持,Windows Xp和Vista的 *** 作系统自带,如果DirectX已被删除或 *** 作系统版本为Win2000以下的,请先安装DirectX。

相关提示:开始->运行->输入dxdiag->回车 可以知道当前系统的DirectX版本

3) 系统设置不正确:右键点桌面--->设置--->高级-->硬件加速,调至完全。

开始-->运行输入dxdiag显示dirextX启用DirectDraw、Direct3D、AGP纹理加速。如无法启用,一般是显卡驱动有问题,请重新安装显卡的驱动程序。

4) 以上说明没有帮助,则请在 连连看5无法运行的详细说明及官方解答贴 中提问,我们会尽量帮助玩家解决。

2 为什么我玩了一阵连连看后会死机?

连连看不会直接导致系统死机,请检查以下可能原因:

1) CPU占用率太高:如果在Windows任务管理器中发现LinLink5exe CPU占用率太高(50%或以上),则请在连连看“游戏设置”中调低FPS。

2) 系统散热问题:CPU风扇是最容易损坏的部件,如果风扇转动不正常,则电脑会因CPU过热而自动重启。

3) 显卡驱动问题:如果显卡驱动和系统不兼容,则可能导致死机,解决办法是安装最新且正确的显卡驱动。

3 为什么我的机器配置不差,但是FPS(每秒帧数)却很低?

一般60帧以上即可较流畅的进行游戏,而30帧以下有时候会感觉到画面跳跃。连连看5对硬件要求比较低,经过测试,在2000年购置的赛扬533/内存192M/显卡TNT2 32M 的机器上就可以获得基本的30FPS(每秒30帧)。

下面一些 *** 作可以提高连连看5的FPS:

1) 请关闭其他占用大量CPU时间的程序。

2) 请打开连连看5->游戏设置,检查性能设置中的游戏帧数是否设置过低。

3) 点击连连看5右上角全屏按钮进行全屏游戏可以提高FPS。

4) 请确认 桌面右键->属性->设置->高级->显卡设置->疑难解答 中的硬件加速设置为全开。

5) 把屏幕属性的颜色从32位色设为16位色也可以提高FPS,但是某些场景可能无法进入。

4 连连看5游戏过程中何时会奖励生命及提示?

连连看5每过一小关会自动奖励一条生命及一次提示。同时,游戏过程中15连击奖励一次提示;25和40连击各奖励一条生命,另外10连击以后每一连击奖励一秒游戏时间。

5 为什么我分数够了却无法进入排行榜?

只有经典模式和大师模式的分数才有可能进入排行榜,因为主题模式和地图模式都是可以自定义的,其中大师模式的起评分是100000分。

6 为什么Windows Server 2003或2008无法播放游戏音乐?

因为Windows Server不带DirectMusic组件,下载DirectMusic补丁,解压运行 SETUP x86CMD 或者SETUP x64CMD即可。

我还有其他问题无法解决,怎么办?

请访问连连看官方论坛,那里一定有热心的连友帮你解答。

以上就是关于请问怎样用flash制作连连看的游戏要具体步骤。谢谢!全部的内容,包括:请问怎样用flash制作连连看的游戏要具体步骤。谢谢!、打开连连看客户端失败,如果由于此问题不能进行游戏,请尝试重新安装该游戏、连连看5的常见问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9311328.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存