有御剑倾城这个游戏吗 坦克

这个游戏和以前那个疯狂坦克一样吗?
《宝贝坦克》是一款由韩国softnyx公司制作的休闲网游。据调查,在《宝贝坦克》韩服与国际服,女性玩家比率一直保持50%以上,是当之无愧的网游女儿国,因此被海外玩家冠以“美女网游”的荣誉头衔。
宝贝坦克》是来自于遥远遥远的隆德大陆、有三个强大种族,由于它们有着完全不同的地域和文明,所以常常爆发矛盾(好象很老套的故事)。可这三个种族却没有因此而发生战争,而是利用一种叫做宝贝坦克的战斗机甲互相战斗来化解争端。作为宝贝坦克驾驶员的您,就是要利用这些威力强大的宝贝们来参加战斗游戏。由于宝贝们都有着各自不同的功能,也有着不同的适应区域,所以如何扬长避短就成为玩好这款游戏的第一要义了。
其他答案(共1个回答)
有啊,现在听说出了个手机版本的疯狂坦克,我记得好象捉鱼上有
单机:战场(超专业的装甲对战游戏,如果你是专业军事迷,强烈推荐)
网络:钢甲洪流
宝贝坦克(休闲的)
补充:即时战略的也可以玩英雄连,...
.7.0版本的涂装完全依据历史还原而来,目前主要为了提高玩家对于自身坦克的热爱程度,增加游戏的历史真实感。未来会考虑给不同的涂装增加一些特有的属性。您可以购买喜...
这游戏没了啊?``N年前在玩``玩得一般还能冒充高手``呵呵``
答: 我的b超nt怎样这样?位置欠清,约厚2.5mm,显示孕周是14W。医生说太厚了,要再观察。
答: 朋友相处要严以律己,宽以待人。
朋友出去玩,AA制最好。如果不是,自己要抢先付钱,不要斤斤计较。你就是不坐船也要抢先付钱才对。
意欲取之,必先予之。其实朋友只是...
答: 我跟你一样啊!!进不去高手解决下
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415C#开发-----坦克大战游戏 - CSDN博客
C#开发-----坦克大战游戏
转载请标明是引用于
&例子代码:
玩家操作一辆坦克,必须消灭所有电脑控制的10辆敌军坦克。本游戏的背景墙砖为金属,不可以被击毁。在游戏中,玩家通过键盘的方向键控制己方坦克的行进方向,并可以按空格键发射子弹,当对方坦克被中,产生爆炸图案和音效。如果玩家的坦克被销毁或敌方坦克全部被击毁,游戏便告终止。游戏运行界面如图11-1所示。
程序设计的思路
A、游戏画面看成10*10的方格,窗体中Map[10, 10]保存游戏砖块位置的地图,其中0代表空地,1代表墙砖。TMap[10, 10]保存坦克位置和砖位置的地图,其中0代表空地,1代表墙砖;2到5为敌方坦克,6为己方坦克。游戏面板重画时,TMap保存的信息传入,便于判断子弹是否击中坦克和墙砖。
B、游戏画面的刷新采用2个定时器控件timer1和timer2。timer1控件定时控制敌方坦克的移动并刷新游戏面板,timer2控件定时产生新的敌方坦克直到达到敌方坦克最大量。
<span style="color:#. 坦克类Tank设计——重点讲解
A、坦克类Tank:游戏中,主要角色是坦克,设计的坦克类Tank需要实现坦克发射子弹,显示坦克图案,坦克爆炸,改变方向,产生子弹,控制子弹的移动功能。
定义以下描述坦克特征的字段。
&&&&&& //坦克的宽度
&&&&& //坦克的高度
&&&&&&&& //坦克位置的纵坐标
&&&&&&& //坦克位置的横坐标
&&&&&&& //坦克的类型(2---5敌方,6己方)
&&&&&& //0--上,1--下,2--左,3--右
&&& public ArrayList bList=new ArrayList();//子弹序列
B、每辆坦克发射的子弹序列采用ArrayList列表数组bList,可以动态的增删。
坦克类Tank构造函数
坦克类Tank构造函数,随机产生坦克的方向代号以及坐标,类型代号由参数传入。
&&& public Tank(int tank_type)//构造函数
&&&&&&& Random r = new Random();
&&&&&&& this.direct = r.Next(0, 4);//产生0—3的数
&&&&&&& this.width = 32;
&&&&&&& this.height = 32;
&&&&&&& this.left = r.Next(0, 10);//产生0—9的数
&&&&&&& this.top = r.Next(0, 10);//产生0—9的数
&&&&&&& this.type = tank_
设计访问坦克的5个私有字段的相应属性
&&&&&&&&&& 设计访问坦克的宽度,高度,位置坐标,类型,方向5个私有字段的相应属性。用private会使得它们不能被类外访问,于是就设计了有可供外部访问相应属性,以使得那些不能和外界接触的变量有被访问渠道。
&&& public int Top//Top属性
&&&&&&& get
&&&&&&&&&&&
&&&&&&& set
&&&&&&&&&&& if (top &= 0 && top &= 9)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& top =
&&&&&&&&&&& }
&public int Left//Left属性
&public int Type//坦克的类型属性
&public int Direct//Direct属性(坦克方向)
改变坦克移动方向
当坦克遇到障碍物时,需要改变方向。newDirect()方法根据随机产生新的坦克移动方向。
&&& public void newDirect()
&&&&&&& Random r = new Random();
&&&&&&& int new_Direct=r.Next(0, 4);//产生0—3的数
&&&&&&& while(this.direct == new_Direct)
&&&&&&&&&&& new_Direct = r.Next(0, 4);//产生0—3的数
&&&&&&& this.direct = new_D
&& //0--上,1--下,2--左,3--右
绘制坦克在游戏面板中
public void Draw(Graphics g,int type)//根据坦克类型选择不同图片
&&&&&&& Image tankImage = Image.FromFile(&BMP/ETANK1.BMP&);
&&&&&&& if (type == 2) tankImage = Image.FromFile(&BMP/ETANK2.BMP&);
&&&&&&& if (type == 3) tankImage = Image.FromFile(&BMP/ETANK3.BMP&);
&&&&&&& if (type == 4) tankImage = Image.FromFile(&BMP/ETANK4.BMP&);
&&&&&&& if (type == 5) tankImage = Image.FromFile(&BMP/ETANK1.BMP&);
&&&&&&& if (type == 6) tankImage = Image.FromFile(&BMP/MYTANK.BMP&);
&&&&& //得到绘制这个坦克图形的在游戏面板中的矩形区域
&&&&&&& Rectangle destRect = new Rectangle(this.left * width, this.top& * height, width,height);
&&&&&&& Rectangle srcRect = new Rectangle(direct * width, 0, width, height);
&&&&&&& g.DrawImage(tankImage, destRect,srcRect,GraphicsUnit.Pixel& );
Explore(Graphics g)在屏幕上画出坦克爆炸动画
坦克被击中,Explore(Graphics g)在屏幕上画出坦克爆炸动画。
&&& public void Explore(Graphics g)//坦克爆炸动画
&&&&&&& //得到绘制这个坦克图形的在游戏面板中的矩形区域
&&&&&&& Rectangle destRect = new Rectangle(this.left * width, this.top * height, width, height);
&&&&&&& Rectangle srcRect = new Rectangle(0, 0, width, height);
&&&&&&& Image tankImage = Image.FromFile(&BMP/explode1.bmp&);
&&&&&&& g.DrawImage(tankImage, destRect, srcRect, GraphicsUnit.Pixel);
&&&&&&& tankImage = Image.FromFile(&BMP/explode2.bmp&);
&&&&&&& g.DrawImage(tankImage, destRect, srcRect, GraphicsUnit.Pixel);
&&&&&&& PlaySound.Play(&Sound/Explode.wav&);
敌我不同坦克,发射不同样式的子弹,发射的子弹加入每辆坦克的子弹序列bList中,如果己方发射子弹并产生发射子弹声音效果。Fire方法实现此功能。
&&& public void fire()
&&&&&&& bullet b = new bullet(this.type);//根据坦克产生不同子弹
&&&&&&& b.Direct = this.D//坦克的朝向
&&&&&&& b.Top = this.T
&&&&&&& b.Left = this.L
&&&&&&& bList.Add(b);
&&&&&&& if(this.type==6) PlaySound.Play(&Sound/Shoot.wav&);//己方发射声音效果
& public void MoveBullet(ref int [,]Map)
&&&&&&& for (int i = bList.Count-1; i&=0; i--)//遍历子弹序列
&&&&&&&&&&& bullet t = ((bullet)bList[i]);
&&&&&&&&&&& t.move();//移动子弹
&&&&&&&&&&& if (t.Left & 0 || t.Left & 9 || t.Top & 0 ||t.Top & 9)
&&&&&&&&&&& //超出边界
&&&&&&&&&&& {
&&&&&&&&&&&&&&& bList.RemoveAt(i);//删除此颗子弹
&&&&&&&&&&& }
&&&&&&&&&&& if (Map[t.Left, t.Top] != 0)//已遇到物体
&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&& bList.RemoveAt(i); //删除此颗子弹
&&&&&&&&&&&&&&&&&&& if (t.hitE(Map[t.Left, t.Top]))//击中对方坦克
&&&&&&&&&&&&&&&&&&&&&&& Map[t.Left, t.Top] = -1;//此处坦克被打中
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&& }&&&&&&&&&&&&&&&
&&&&&&& }&&&&&&&&&&&
画子弹DrawBullet( )方法
public void MoveBullet(ref int [,]Map)
&&&&&&& for (int i = bList.Count-1; i&=0; i--)//遍历子弹序列
&&&&&&&&&&& bullet t = ((bullet)bList[i]);
&&&&&&&&&&& t.move();//移动子弹
&&&&&&&&&&& if (t.Left & 0 || t.Left & 9 || t.Top & 0 ||t.Top & 9)
&&&&&&&&&&& //超出边界
&&&&&&&&&&& {
&&&&&&&&&&&&&&& bList.RemoveAt(i);//删除此颗子弹
&&&&&&&&&&& }
&&&&&&&&&&& if (Map[t.Left, t.Top] != 0)//已遇到物体
&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&& bList.RemoveAt(i); //删除此颗子弹
&&&&&&&&&&&&&&&&&&& if (t.hitE(Map[t.Left, t.Top]))//击中对方坦克
&&&&&&&&&&&&&&&&&&&&&&& Map[t.Left, t.Top] = -1;//此处坦克被打中
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&& }&&&&&&&&&&&&&&&
&&&&&&& }&&&&&&&&&&&
画子弹DrawBullet( )方法
&&&&& DrawBullet方法中遍历子弹序列,并调用子弹的Draw方法将子弹显示在屏幕上。
&&& public void DrawBullet(Graphics g, int[,] Map)//画子弹
&&&&&&& MoveBullet(ref Map);
&&&&&&& foreach (bullet t in bList)//遍历子弹序列
&&&&&&&&&&& t.Draw(g);
2.子弹(bullet)类设计
&&&& 子弹类比较简单,主要完成子弹的移动和在屏幕上的显示。子弹类型type有两种:敌方子弹和己方子弹,从而使用bool类型。己方子弹&#20540;为true,敌方子弹&#20540;为false。
&&& 定义以下描述子弹特征的字段。
&&& && //子弹坐标(Top,Left)
&&& //子弹行进方向
&&& private int width = 32;
&&& private int height = 32;
//己方子弹true,敌方子弹false
&&& public bullet(int type) // 子弹类构造函数
&&&&&&& if (type == 6)//己方
&&&&&&&&&&& this.type =
&&&&&&& else
&&&&&&&&&&& this.type =
子弹的显示
n子弹类的Draw方法根据传入的游戏面板图形对象g,在游戏面板根据子弹坐标显示子弹图案。
&&& public void Draw(Graphics g)
&&&&&&& Image bulletI
&&&&&&& if (type == true)//己方
&&&&&&&&&&& bulletImage = Image.FromFile(&BMP/missile1.bmp&);
&&&&&&& else
&&&&&&&&&&& bulletImage = Image.FromFile(&BMP/missile2.bmp&);
&&&&&&& //得到绘制这个子弹图形的在游戏面板中的矩形区域
&&&&&&& Rectangle destRect = new Rectangle(left * width, top * height, width, height);
&&&&&&& Rectangle srcRect = new Rectangle(0, 0, width, height);
&&&&&&& g.DrawImage(bulletImage, destRect, srcRect, GraphicsUnit.Pixel);
n判断子弹行进方向Direct,修改坐标&#20540;。子弹行进方向是坦克在发射子弹时设置的,和坦克的行进方向一致。坦克的方向上下左右分别用数字0,1,2,3表示,子弹的方向同样表示。例如Direct属性&#20540;为0,表示向上行进,所以Top&#20540;减1。
&&& public void move()
&&&&&&& switch (Direct)
&&&&&&&&&&& case 0:& //向上
&&&&&&&&&&&&&&& Top--;
&&&&&&&&&&& case 1:
&&&&&&&&&&&&&&& Top&#43;&#43;;
&&&&&&&&&&& case 2:
&&&&&&&&&&&&&&& Left--;
&&&&&&&&&&& case 3:
&&&&&&&&&&&&&&& Left&#43;&#43;;
判断是否击中对方坦克
public bool hitE(int tanktype)//是否击中对方坦克
&&&&&&& if (type == false)//敌方子弹
&&&&&&&&&&& if (tanktype &= 2 && tanktype &= 5)// 敌方坦克
&&&&&&&&&&&&&&& //坦克的类型(2---5敌方,6己方)
&&&&&&&&&&&&&&&
&&&&&&&&&&& else
&&&&&&&&&&&&&&&
&&&&&&& if (type == true)//己方子弹
&&&&&&&&&&& if (tanktype == 6)//坦克的类型(2---5敌方,6己方)
&&&&&&&&&&&&&&&
&&&&&&&&&&& else
&&&&&&&&&&&&&&&
<span style="font-size:18 color:#.游戏窗体类设计
下面讲解游戏窗体代码
窗体Load的事件
窗体Load的事件中随机产生背景墙砖图案,保存Map[10, 10]中。同时将己方坦克定位到(4,9)坐标处,行进方向初始化为向上。
&&& private void Form1_Load(object sender, System.EventArgs e)
&&&&&&& pictureBox1.Width = 10 *
&&&&&&& pictureBox1.Height& = 10 *
&&&&&&& path = Application.StartupP
&&&&&&& Random r = new Random();
&&&&&&& for(int x=0;x&10;x&#43;=2)
&&&&&&&&&&& for (int y = 0; y & 10; y&#43;=2)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& //产生0,1数其中0代表空地,1代表墙砖&
&&&&&&&&&&&&&&& Map[x, y] = r.Next(0, 2);
&&&&&&&&&&& }
&&&&&&& Map[4, 9] = 0;
&&&&&&& MyTank.Top = 9;
&&&&&&& MyTank.Left = 4 ;
&&&&&&& MyTank.Direct = 0;
&&&&&&& lblX.Text = &X坐标:& &#43; MyTank.Left&#43;&& Y坐标:& &#43; MyTank.T
画游戏墙砖
&private void DragWall(Graphics g)//画游戏地图墙砖
&&&&&&& Image WallImage = Image.FromFile(&BMP/TQ.BMP&);
&&&&&&& for(int x=0;x&10;x&#43;&#43;)
&&&&&&&&&&&& for (int y = 0; y & 10; y&#43;&#43;)
&&&&&&&&&&&& {
&&&&&&&&&&&&&&& if (Map[x, y] == 1)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& //得到绘制这个墙砖块的在游戏面板中的矩形区域
&&&&&&&&&&&&&&& Rectangle Rect = new Rectangle(x * width, y * width, width, width);
&&&&&&&&&&&&&&& g.DrawImage(WallImage, Rect);
&&&&&&&&&&&&&&& }
&&&&&&&&&&&& }&&&&&&&&
定时产生新敌方坦克
&private void timer2_Tick(object sender, EventArgs e)//定时产生新敌方坦克
&&&&&&& if (eCount & eMaxCount)//eMaxCount敌方坦克最大量
&&&&&&&&&&& //敌方坦克类型为3,改变此数可以产生不同图案的地方坦克
&&&&&&&&&&& eTank = new Tank(3);
&&&&&&&&&&& eTanks.Add(eTank);// eTanks[eCount] = eT
&&&&&&&&&&& eCount&#43;&#43;;
&&&&&&& else
&&&&&&&&&&& timer2.Enabled =//不再产生新的敌方坦克
timer1控件定时控制敌方坦克的移动
timer1控件定时控制敌方坦克的移动并刷新游戏面板。
&private void timer1_Tick(object sender, EventArgs e)
&&&&&&& foreach (Tank t in eTanks)
&&&&&&&&&&& switch (t.Direct)//0--上,1--下,2--左,3--右
&&&&&&&&&&& {
&&&&&&&&&&&&&&& case 0:& //向上……
&&&&&&&&&&&&&&& case 1: //向下&&& ……
&&&&&&&&&&&&&&&&& case 2:  //向左& …..
&&&&&&&&&&&&&&& case 3: //向右
&&&&&&&&&&&&&&&&&&& if (t.Left == 9 || Map[t.Left&#43;1, t.Top ] == 1
&&&&&&&&&&&&&&&&&&&&&&& || Meet_Tank(t.Left&#43;1, t.Top))//遇到墙砖或坦克
&&&&&&&&&&&&&&&&&&&&&&& t.newDirect();//坦克转向
&&&&&&&&&&&&&&&&&&& else
&&&&&&&&&&&&&&&&&&&&&&& t.Left&#43;&#43;;
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&& }
&&&&&&&&&&& Random r = new Random();
&&&&&&&&&&& int fire_bool = r.Next(0, 8);//产生0—7的数
&&&&&&&&&&& if (fire_bool == t.Direct)& t.fire();
&&&&&&& pictureBox1.Invalidate();//重画游戏面板区域&&&&&&&&&&&
游戏面板pictureBox1的Paint事件
n游戏面板pictureBox1的Paint事件最复杂。
nPaint事件中完成以下任务:
<span style="color:#.完成修改TMap[10, 10] ,保存墙砖位置
<span style="color:#.完成重画墙砖,
<span style="color:#.画敌方坦克及子弹,
<span style="color:#.画己方坦克和己方子弹。
<span style="color:#.最后根据Tmap数组中某处的&#20540;是否为-1,处理坦克爆破。
<span style="color:#.当玩家自己的坦克被击中,timer1控件定时器无效,游戏结束。
<span style="color:#.调用CheckWin()检查是否敌方所有坦克被击毁,如果是则玩家胜利,游戏结束。
本文已收录于以下专栏:
相关文章推荐
1.学会用Resource管理资源
在properties下的Resource.resx添加资源
工程名.Properties.Resource....
在网上看到了这个材料,经过学习,发现真不错,特地与大家分享交流。
坦克大战第一天:点击打开链接
坦克大战第二天:点击打开链接
&#160;坦克大战全部: &#160;点击打开链接
视频已经看完,代码亲测可用,如有...
记得在大学学java时,同学在下载了很多java的视频,看到里面有些是介绍简单游戏开发的,马士兵老师讲的,挺感兴趣的。一起看了看视频写了写程序。现在毕业了,因为工作中用的是C#,最近很想拿C#把以前写...
对坦克大战情有独钟是因为大学时候第一次参加程序设计比赛就做的这个游戏。当时用的语言是Java,那个比赛让我悟出了面向对象的强大之处,我也是从那时开始接触设计模式的。对我而言,坦克大战有着非同寻常的意义...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)3D坦克-官方网站-网页版3D坦克大战
Português更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
按住视频可进行拖动
&正在加载...
收藏成功,可进入
查看所有收藏列表
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
用爱奇艺APP或微信扫一扫,在手机上继续观看
当前播放时间:
一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
正在检测客户端...
您尚未安装客户端,正在为您下载...安装完成后点击按钮即可下载
, 可在设置中重新打开噢!
30秒后自动关闭
这是一个打坦克的游戏">这是一个打坦克的游戏
请选择打赏金额:
播放量数据:快去看看谁在和你一起看视频吧~
更多数据:
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
本奖品由提供
红包雨下完了,下次早点来噢~

我要回帖

更多关于 甜蜜冲刺有这个游戏吗 的文章

 

随机推荐