- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小游戏坦克大战
非常简单的几个控件,实现了一个坦克移动,并打出子弹的小游戏.希望能给大家带来一点乐趣和知识.
注:本程序离真正的游戏差的很远,只用来让初学者对一些控件及线程更加深入的理解和应用才实现的.
所用控件及类:
Button,Label,ImageList,contextMenuStrip,Threading,ArrayList
所用事件:
Button :KeyPress事件.
注意:
在ImagesList控件中添加四张图片,分别是坦克的上下左右的四张图.然后用Button的ImageList属性绑定ImageList控件.
所用的四张图片:
Bullet是通过Lable类new出来的对象
线程调用方法时使用的是带参数调用ParameterizedThreadStart
contextMenuStrip右建菜单用来关闭程序
以下为游戏的源码:
坦克
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace 坦克大战
{
/**//// summary
/// 说明:在.net2.0及WinForm中坦克小游戏的示例
/// 作者:剑了
/// 日期:2008-10-02
/// 首发地址:a href=/////a
/// /summary
public partial class Form1 : Form
{
private static int screenWidth;//屏幕宽度
private static int screenHeight;//屏幕高度
private string Direction;//定义当前方向
public Form1()
{
InitializeComponent();
screenHeight = Screen.PrimaryScreen.Bounds.Height;//获取屏幕宽度
screenWidth = Screen.PrimaryScreen.Bounds.Width;//获取屏幕高度
Control.CheckForIllegalCrossThreadCalls = false;//不捕获错误的线程
}
/**//// summary
/// 开炮的过程
/// /summary
/// param name=paramters/param
private void Fire(object paramters)
{
ArrayList al = (ArrayList)paramters;
Label Bullet = (Label)al[0];
string direction = (string)al[1];
bool outOfScreen = false;//子弹是否超出屏幕显示区域
while (!outOfScreen)//当子弹没有超出屏幕显示区域的时候,继续移动子弹
{
switch (direction)
{
case w:
Bullet.Top = Bullet.Top - 20;
break;
case s:
Bullet.Top = Bullet.Top + 20;
break;
case d:
Bullet.Left = Bullet.Left + 20;
break;
case a:
Bullet.Left = Bullet.Left - 20;
break;
}
//当子弹的顶点大于屏幕高度或者小于0时,子弹超出屏幕显示区域,不应显示
//当子弹的距离屏幕的左边距大于屏幕宽度或者小于0时,子弹超出显示区域,不应显示
您可能关注的文档
最近下载
- 外教社新世纪英专本科生系列(修订版):英语阅读 第1册 PPT课件Unit 3.pptx VIP
- 毕业论文的选题及开题报告的撰写.pptx VIP
- 初中语文2025届中考常考易错字词汇总(多音字+形声字+易错字形+易错成语).pdf VIP
- 4清洁生产的实施途径.pptx VIP
- 中视科华有限公司北京技术服务分公司招聘笔试题库2025.pdf
- JJG 1201-2024 数字式轮胎压力表.pdf
- 高标准农田建设项目监理实施细则.docx
- 四川省成都市2022-2023学年八年级下册期末物理试卷3(含答案).pdf VIP
- 钩端螺旋体病疫情应急处置技术方案.doc VIP
- GB 24430.1-2009 家用双层床安全第1部分:要求.docx VIP
文档评论(0)