完整程序

控件:显示分数的TextBox1,玩家的pictureBox1,区域的panel1,操作提示的label1,爆炸图片集imageList1 ,定时器Timer1

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 飞机大战
{public partial class Form1 : Form{private int score = 0;private int speed = 5;//速度private List<PictureBox> bullet = new List<PictureBox>();//我方子弹private List<PictureBox> e_bullet = new List<PictureBox>();//敌方子弹private List<PictureBox> enemy = new List<PictureBox>();//敌人private List<PictureBox> Lboom = new List<PictureBox>();//爆炸框private List<int> boom_inT = new List<int>();public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){Form1 f = new Form1();f.KeyPreview = true;Point p = pictureBox1.Location;p.Y -= 1;pictureBox1.Location = p;}//按键移动private void Form1_KeyDown(object sender, KeyEventArgs e){Point p = pictureBox1.Location;switch (e.KeyCode){case Keys.W: if (p.Y >= 0) p.Y -= speed; break;case Keys.A: if (p.X >= 0) p.X -= speed; ; break;case Keys.S: if (p.Y <= 560) p.Y += speed; break;case Keys.D: if (p.X <= 370) p.X += speed; ; break;case Keys.Space: fire(p); break;}pictureBox1.Location = p;}//开火private void fire(Point p, bool isenemy = false){PictureBox bullet = new PictureBox();p.X = p.X + 18;bullet.Size = new Size(10, 10);if (isenemy == false){bullet.Image = System.Drawing.Image.FromFile(@"..\\..\\Resources\\子弹.png");this.bullet.Add(bullet);}else{bullet.Image = System.Drawing.Image.FromFile(@"..\\..\\Resources\\子弹1.png");this.e_bullet.Add(bullet);}bullet.Location = p;panel1.Controls.Add(bullet);//显示子弹}//主时间计时器private void timer1_Tick(object sender, EventArgs e){//子弹飞行for (int j = 0; j < this.bullet.Count; j++){Point p1 = bullet[j].Location;p1.Y -= speed * 3;bullet[j].Location = p1;if (p1.Y <= -10) { panel1.Controls.Remove(bullet[j]); this.bullet.RemoveAt(j); };//清除过界子弹}for (int j = 0; j < this.e_bullet.Count; j++){Point p2 = e_bullet[j].Location;p2.Y += speed * 4;e_bullet[j].Location = p2;if (p2.Y > 800) { panel1.Controls.Remove(e_bullet[j]); this.e_bullet.RemoveAt(j); };//清除过界子弹}//敌人移动for (int i = 0; i < this.enemy.Count; i++){int random = (UInt16)DateTime.Now.Ticks % 100;Point p3 = enemy[i].Location;//随机左右移动if (random <= 10 & p3.X >= 0) { p3.X -= speed * 4; }else if (random >= 90 & p3.X <= 370) { p3.X += speed * 4; }else { p3.Y += speed + 3; }enemy[i].Location = p3;if (p3.Y >= 800) { panel1.Controls.Remove(enemy[i]); this.enemy.RemoveAt(i); };//清除过界敌人//敌人子弹if ((UInt16)(random % (25 - score / 5)) == 0) fire(p3, true);}//敌人生成int random1 = (UInt16)DateTime.Now.Ticks % 100;if (random1 < (int)(5 + score / 10)) { e_appera(); }//碰撞检测check();//爆炸特效Random random2 = new Random();int k = random2.Next(1, 100);if (k > 50) boom();}//碰撞检测public void check(){   //  子弹与敌人for (int i = 0; i < bullet.Count; i++){Point p_bullet = bullet[i].Location;for (int j = 0; j < enemy.Count; j++){Point p_enemy = enemy[j].Location;if (p_bullet.X - p_enemy.X > -10 & p_bullet.X - p_enemy.X < 38 & p_bullet.Y - p_enemy.Y < 35 & p_bullet.Y - p_enemy.Y > -10){PictureBox boom1 = new PictureBox();boom1.Location = p_enemy;boom1.Image = imageList1.Images[0];boom_inT.Add(0);panel1.Controls.Add(boom1);Lboom.Add(boom1);panel1.Controls.Remove(enemy[j]); this.enemy.RemoveAt(j);panel1.Controls.Remove(bullet[i]); this.bullet.RemoveAt(i);score++;speed = 5 + score / 15;textBox1.Text = Convert.ToString(score);}}}//子弹与子弹for (int i = 0; i < bullet.Count; i++){Point p_bullet = bullet[i].Location;for (int j = 0; j < e_bullet.Count; j++){Point p_e_bullet = e_bullet[j].Location;if (p_bullet.X - p_e_bullet.X > -10 & p_bullet.X - p_e_bullet.X < 10 & p_bullet.Y - p_e_bullet.Y > -20 & p_bullet.Y - p_e_bullet.Y < 10){panel1.Controls.Remove(bullet[i]); this.bullet.RemoveAt(i);panel1.Controls.Remove(e_bullet[j]); this.e_bullet.RemoveAt(j);}}}//检测自己与敌人和敌人子弹for (int i = 0; i < e_bullet.Count; i++){Point p_e_bullet = e_bullet[i].Location;Point p_my = pictureBox1.Location;if (p_my.X - p_e_bullet.X > -30 & p_my.X - p_e_bullet.X < 10 & p_my.Y - p_e_bullet.Y > -30 & p_my.Y - p_e_bullet.Y < 10){panel1.Controls.Remove(e_bullet[i]); this.e_bullet.RemoveAt(i);if (p_my.Y != 535 & p_my.X != 158) { end(); };}}for (int i = 0; i < enemy.Count; i++){Point p_e = enemy[i].Location;Point p_my = pictureBox1.Location;if (p_my.X - p_e.X > -38 & p_my.X - p_e.X < 38 & p_my.Y - p_e.Y > -38 & p_my.Y - p_e.Y < 38){panel1.Controls.Remove(enemy[i]); this.enemy.RemoveAt(i);if (p_my.Y != 535 & p_my.X != 158) { end(); };}}if (score == 100) win();}//结束游戏private void end(){panel1.Controls.Remove(pictureBox1);timer1.Stop();MessageBox.Show("你死亡了,你的得分是:" + score);Application.Exit();}//获胜private void win(){timer1.Stop();MessageBox.Show("恭喜你获胜了!!!!!");}//敌人生成private void e_appera(){PictureBox enemy = new PictureBox();//敌人外观及位置enemy.Image = System.Drawing.Image.FromFile(@"..\\..\\Resources\\航空航天-隐形飞机飞船.png");enemy.BackColor = Color.Transparent;System.Random random_p = new System.Random();int random_j = (UInt16)DateTime.Now.Ticks % 370;int x = (int)(random_p.Next(-40, 370) * 0.5 + random_j * 0.5);enemy.Location = new Point(x, 0);enemy.Size = new Size(38, 38);panel1.Controls.Add(enemy);this.enemy.Add(enemy);}//爆炸特效-定时器private void boom(){for (int i = 0; i < Lboom.Count; i++){int index = boom_inT[i];if (index >= imageList1.Images.Count){panel1.Controls.Remove(Lboom[i]);Lboom.RemoveAt(i);boom_inT.RemoveAt(i);}else{Lboom[i].Image = imageList1.Images[index++];boom_inT[i] = index;}}}}
}

c#.NET窗口飞机大战小游戏(独立游戏1)相关推荐

  1. python 飞机大战小游戏

    飞机大战小游戏,这里需要下载pygame模块 这是需要的素材,需要的自取: 上代码: import time import pygame from pygame.locals import *#检测事 ...

  2. 点击list view中一行内容可以在combox中显示_java版飞机大战小游戏详细教程(零基础小白也可以分分钟学会!)...

    一:游戏展示 飞机大战小游戏我们都玩过,通过移动飞机来打敌机,这里给大家展示一下游戏成果:呜呜呜由于gif只能上传5M大小,所以就不能给大家展示操作了,如果大家有兴趣可以自己自己做出来再玩哟. 这里面 ...

  3. 飞机大战小游戏(超详细)

    偷学Python之最后的项目二:飞机大战小游戏(超详细) 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志.--苏轼 甜甜先说 这次用Python中的pygame模块来完成一个飞机大战的小游戏:基本思 ...

  4. 基于Java语言在窗体上实现飞机大战小游戏

    全套资料下载地址:https://download.csdn.net/download/sheziqiong/85594271 项目介绍 飞机大战:用 Java 语言在窗体上实现飞机大战小游戏,运行程 ...

  5. 【Java代码实现飞机大战小游戏】简单理解

    飞机大战 飞机大战小游戏历经10天完成,主要用到的就是我们面向对象部分的知识:类,封装,继承,多态,静态代码块等等内容+swing部分内容.所以即使你是java小白,也不用担心欧! 游戏说明:游戏有3 ...

  6. 用C语言实现飞机大战小游戏

    我的个人博客:谋仁·Blog 该项目已上传至GitHub:点击跳转 文章目录 摘要 运行环境 整体功能思维导图 效果预览 具体功能的实现 图形界面:EasyX EasyX图形库简介 EasyX图形库的 ...

  7. Qt学习总结——飞机大战小游戏制作

    Qt学习总结--飞机大战小游戏制作 1. 需求分析 这篇文章写于2020年暑假,完成学校实训项目之后,对自己的项目实践做了一个总结,回顾整个项目的制作过程,同时也复习一下Qt的相关知识,总结项目制作过 ...

  8. python小游戏——飞机大战小游戏(附源码)

    写在前面的一些P话: 大家之前用python编写过飞机大战的部分代码, 只能够展示英雄飞机,背景,敌机和发射子弹, 今天把背景音乐,击毁敌机,爆炸特效,得分等等相关功能一并加入进来, 代码有点长,三百 ...

  9. 【python】飞机大战小游戏练习

    飞机大战小游戏练习 一.前提准备 二.制作步骤 1.库的导入与初始化 2.窗口操作 3.键盘按键监听相关操作 4.添加游戏背景 5.加载玩家飞机 6.获取玩家飞机矩阵 三.完整代码编写 游戏背景类编写 ...

最新文章

  1. Kaggel实战:识别手写体[knn改进算法]
  2. windows操作系统的日志类型
  3. 如何去应付你的上司给你一个变化无常的需求?
  4. 微信跳转手机默认浏览器打开的实现方式
  5. python3 类的一个实例
  6. JavaScript初学者必看“new”
  7. Chrome source code map - fail - cannot debug
  8. 宏观经济学思维导图_2019中央财经大学803经济学经验分享|三跨考生
  9. Visual Studio Code 编辑器使用
  10. colorpix取色小工具_Python版的取色器
  11. 拿什么拯救你,程序新丁?
  12. 图:Flash渲染控件安装失败原因所在.
  13. 这8个MySQL经典错误
  14. Gcode命令【转】
  15. EndNote X8参考文献样式下载与自定义
  16. 无root权限怎么完全卸载系统自带软件(捆绑软件)
  17. 酒馆指南:小白开店必备
  18. MTK平台修改开机动画,开机logo
  19. 绘制中国近海的sst分布图
  20. 区块链之java(六) 合约监听

热门文章

  1. StringBuilder清空
  2. 程序员有用网站集(干货)
  3. 业界 | 数据科学家“恐怖故事”
  4. WARNING *** file size (1080329) not 512 + multiple of sector size (512)
  5. 总结--linux命令总结
  6. 关闭酷狗右下角的弹窗
  7. Nest.js 从零到壹系列(六):用 15 行代码实现 RBAC 0
  8. 路由器端口镜像含义与镜像配置
  9. python3全栈开发-面向对象、面向过程
  10. 百度SEO站群2020粉影音资源网emlog模板